Kwaivgi Kling V3.0 4k Image To Video
Playground
Try it on WavespeedAI!Kling V3.0 4K delivers top-tier 4K image-to-video generation with smooth motion, cinematic visuals, accurate prompt adherence, and optional audio. Supports start/end frame control, multi-prompt, and element references. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Features
Kling V3.0 4K Image-to-Video
Kling V3.0 4K Image-to-Video is Kuaishou’s premium image animation model delivering 4K output. Upload a reference image and describe the motion — the model generates cinematic video with superior detail, optional start-to-end frame guidance, and synchronized sound.
Why Choose This?
-
4K quality The highest visual fidelity and motion realism in the Kling V3.0 family.
-
Flexible duration Generate videos from 3 to 15 seconds.
-
Start-end frame guidance Optional end image for controlled transitions between two frames.
-
Sound generation Optional synchronized sound effects generated alongside the video.
-
Multi-prompt and element list support Chain prompt segments for scene transitions and lock in specific visual elements for consistency.
Parameters
| Parameter | Required | Description |
|---|---|---|
| image | Yes | Start frame image to animate (URL or upload). |
| prompt | Yes | Text description of the desired motion and action. |
| negative_prompt | No | Elements to exclude from the video. |
| end_image | No | End frame image for guided transitions. |
| duration | No | Video length in seconds (3-15, default: 5). |
| cfg_scale | No | Prompt guidance strength (0-1, default: 0.5). |
| sound | No | Generate synchronized sound alongside the video. Default: disabled. |
| shot_type | No | Editing mode: customize (default) or intelligent. |
| multi_prompt | No | Additional prompts for complex scene compositions. |
| element_list | No | List of visual elements to maintain consistency throughout the clip. |
How to Use
- Upload your image — provide the reference image to animate.
- Write your prompt — describe the motion, camera movement, and action.
- Add negative prompt (optional) — specify elements to exclude.
- Upload end image (optional) — provide an end frame for guided transitions.
- Set duration — choose any length from 3 to 15 seconds.
- Enable sound (optional) — generate synchronized audio alongside the video.
- Submit — generate, preview, and download your video.
Pricing
$0.42 per second of video, regardless of whether audio is on or off.
| Duration | Cost |
|---|---|
| 3s | $1.26 |
| 5s | $2.10 |
| 10s | $4.20 |
| 15s | $6.30 |
Best Use Cases
- Premium Production — Cinematic scenes requiring the highest visual quality in 4K.
- Scene Transitions — Use start and end frames for smooth cinematic transitions.
- Marketing & Ads — High-end promotional videos with professional polish.
- Character Animation — Animate portraits with superior motion and detail.
Pro Tips
- Use detailed, cinematic prompts — include lighting, camera angles, and motion descriptions.
- Add an end_image for controlled transitions between two visual states.
- Use negative_prompt to avoid common issues like blurry faces or unwanted motion.
- Enable sound for environmental audio like rain, city ambience, or action effects.
- Use high-quality source images for the best video output.
Notes
- Both image and prompt are required fields.
- Duration range: 3 to 15 seconds.
- Audio does not affect pricing — $0.42 per second regardless.
- Using element_list: First use Kling Elements to generate your element and note its name and ID. Then write the element name in your prompt and enter the element ID in the element_list field.
- Ensure uploaded image URLs are publicly accessible.
Related Models
- Kling V3.0 4K Text-to-Video — 4K text-to-video generation.
- Kling Video O3 4K Image-to-Video — Latest O3 generation with 4K quality.
- Kling Elements — Create reusable visual elements for consistent rendering.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/kwaivgi/kling-v3.0-4k/image-to-video" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"duration": 5,
"cfg_scale": 0.5,
"shot_type": "customize"
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| image | string | Yes | - | Supported image formats: .jpg/.jpeg/.png. The size of the image file should not exceed 10MB, the width and height of the image should be no less than 300px, and the aspect ratio of the image should be between 1:2.5 and 2.5:1. | |
| prompt | string | No | - | Text prompt for video generation. Either prompt or multi_prompt must be provided, but not both. Specify a element, image, or video in the format of<<<>>, such as<<element_1>>>,<<<image_1>>>,<<<video_1>>>. | |
| negative_prompt | string | No | - | The negative prompt for the generation. | |
| end_image | string | No | - | - | URL of the ending image. multi_shot is not supported with end image. |
| duration | integer | No | 5 | 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 | The duration of the generated media in seconds. |
| cfg_scale | number | No | 0.5 | 0.00 ~ 1.00 | Flexibility in video generation; The higher the value, the lower the model's degree of flexibility, and the stronger the relevance to the user's prompt. |
| sound | boolean | No | - | - | Whether sound is generated simultaneously when generating a video. |
| shot_type | string | No | customize | customize, intelligent | Shot type for the generation. |
| multi_prompt | array | No | - | - | List of prompts for multi-shot video generation. If provided, divides the video into multiple shots. |
| element_list | array | No | - | - | Element reference list. To get available elements and their IDs, visit: https://wavespeed.ai/models/kwaivgi/kling-elements |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |