Kwaivgi Kling V3.0 Pro Image To Video
Playground
Try it on WavespeedAI!Kling 3.0 Pro delivers top-tier image-to-video generation with smooth motion, cinematic visuals, accurate prompt adherence, and native audio for ready-to-share clips. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Features
Kling V3.0 Pro Image-to-Video
Kling V3.0 Pro Image-to-Video is Kuaishou’s premium image-to-video model, delivering the highest visual quality and motion realism in the V3.0 family. 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. Supports flexible duration from 3 to 15 seconds.
Why Choose This?
-
V3.0 Pro quality The highest visual fidelity and motion realism in the Kling V3.0 family.
-
Flexible duration Generate videos from 3 to 15 seconds — any length you need.
-
Start-end frame guidance Optional end image for controlled transitions between two frames.
-
Sound generation Optional synchronized sound effects generated alongside the video.
-
Negative prompt support Specify what you don’t want in the video for more precise control.
-
Multi-prompt support Add multiple prompts for complex scene compositions.
-
Prompt Enhancer Built-in tool to automatically improve your motion descriptions.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the desired motion and action |
| image | Yes | Start frame image to animate (URL or upload) |
| negative_prompt | No | Elements to exclude from the video |
| end_image | No | End frame image for guided transitions |
| duration | No | Video length: 3–15 seconds (default: 5) |
| cfg_scale | No | Prompt guidance strength (default: 0.5) |
| sound | No | Generate synchronized audio (default: disabled) |
| multi_prompt | No | Additional prompts for complex compositions |
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 you want to avoid.
- Upload end image (optional) — provide an end frame for guided transitions.
- Set duration — choose any length from 3 to 15 seconds.
- Adjust cfg_scale (optional) — control how closely the output follows your prompt.
- Enable sound (optional) — generate synchronized audio with the video.
- Run — submit and download your video.
Pricing
| Duration | Sound Off | Sound On |
|---|---|---|
| 3 s | $0.336 | $0.504 |
| 5 s | $0.56 | $0.84 |
| 10 s | $1.12 | $1.68 |
| 15 s | $1.68 | $2.52 |
Billing Rules
- Base rate: $0.56 per 5 seconds
- Sound multiplier: disabled = 1×, enabled = 1.5×
- Duration range: 3–15 seconds
Best Use Cases
- Premium Production — Cinematic scenes requiring the highest visual quality.
- 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.
- Long-Form Animation — Up to 15 seconds for extended scene development.
Pro Tips
- Use detailed, cinematic prompts for best results — 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 prompt and image are required fields.
- Duration supports any value from 3 to 15 seconds.
- Sound generation increases cost by 1.5×.
- Ensure uploaded image URLs are publicly accessible.
Related Models
- Kling V3.0 Std Image-to-Video — Standard tier at budget-friendly pricing.
- Kling V3.0 Pro Text-to-Video — Pro quality text-to-video.
- Kling Video O3 Pro Image-to-Video — Latest O3 generation with premium quality.
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-pro/image-to-video" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"duration": 5,
"cfg_scale": 0.5
}'
# 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 | Yes | - | 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. |
| 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 |