Kandinsky5 Pro Image To Video
Playground
Try it on WavespeedAI!Kandinsky 5 Pro Image-to-Video turns a single image into a coherent 5-second video guided by a natural-language prompt. It preserves subject and composition while adding smooth motion and cinematic dynamics. Output at 512p or 1024p in common aspect ratios for social posts, ads, and concept previews. Built for stable production use with a ready-to-use REST API, no cold starts, and predictable pricing.
Features
Kandinsky 5 Pro Image-to-Video
Kandinsky 5 Pro Image-to-Video turns a single image + text prompt into a 5-second MP4 video, adding natural motion and cinematic camera behavior while keeping the original composition anchored to your input frame. It’s built for fast iteration on short-form clips—ideal for ads, story beats, and social content.
Key Features
-
Image-to-Video animation (5s) Animate a static image into a short, coherent video clip.
-
Prompt-guided motion & camera Use text to direct what moves, how it moves, and how the camera behaves.
-
Resolution options Choose 512p for faster drafts or 1024p for sharper, higher-detail outputs.
-
Production-friendly output Returns an MP4 clip ready for publishing or post-production.
Parameters
| Parameter | Required | Description |
|---|---|---|
| image_url | Yes | Publicly accessible URL of the source image (the first frame / anchor). |
| prompt | Yes | Text instruction describing motion, camera, and style. |
| resolution | No | Output resolution: 512p (default) or 1024p. |
| duration | No | Fixed to 5 seconds in the current UI. |
How to use
-
Upload or paste your image URL into image_url (make sure it’s publicly accessible).
-
Write a prompt that describes:
- the subject and setting,
- the motion (clear verbs),
- the camera behavior (e.g., “slow dolly-in”, “subtle handheld”),
- the visual style (optional).
-
Select resolution:
- 512p for quick previews,
- 1024p for final quality.
-
Click Run to generate a 5-second MP4.
Prompt tips (works best)
- Keep grammar simple and direct.
- Prefer a “single-shot” instruction rather than multiple scene changes.
- Use explicit motion verbs: “turns”, “walks”, “breathes”, “waves”, “camera pushes in”.
- If you want a calmer clip, specify “subtle motion” or “minimal movement”.
Pricing
Based on your rate setup (512p baseline; 1024p uses a 3× resolution multiplier):
| Resolution | Price per second | Cost per 5s |
|---|---|---|
| 512p | $0.04 / s | $0.20 |
| 1024p | $0.12 / s | $0.60 |
Billing note: Duration is currently fixed at 5 seconds for this endpoint.
Use Cases
- Character animation and story beats from key art
- Product hero shots with subtle motion and camera moves
- Social media short clips from posters or stills
- Marketing creatives and quick concept previews
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/wavespeed-ai/kandinsky5-pro/image-to-video" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"resolution": "512p",
"duration": 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 | - | The URL of the image to use as a reference for the video generation. | |
| prompt | string | Yes | - | The prompt to generate the video from. | |
| resolution | string | No | 512p | 512p, 1024p | Video resolution. |
| duration | integer | No | 5 | 5 | The duration of the generated media in seconds. |
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 (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.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 |