Kandinsky5 Pro Text To Video
Playground
Try it on WavespeedAI!Kandinsky 5 Pro Text-to-Video turns natural-language prompts into coherent 5-second clips with strong prompt adherence and smooth motion. Choose 512p or 1024p output across common aspect ratios for social posts, ads, and concept shots. Built for stable production use with a ready-to-use REST API, no cold starts, and predictable pricing.
Features
Kandinsky 5 Pro Text-to-Video
Kandinsky 5 Pro Text-to-Video is a production-ready text-to-video model that generates dynamic 5-second MP4 clips from a single prompt. It’s optimized for fast iteration and clean, prompt-faithful motion, with simple controls for resolution and aspect ratio.
Why it stands out
-
5-second text-to-video generation Turn a prompt into a complete short clip—ideal for rapid concept testing and social-ready outputs.
-
Two resolution tiers Choose 512P for faster, cheaper drafts or 1024P for sharper detail.
-
Creator-friendly aspect ratios Built-in framing for 3:2, 1:1, and 2:3 to match common feed and creative formats.
-
Fast, stable inference Designed for predictable performance in real-world pipelines and batch experimentation.
Parameters
| Parameter | Description |
|---|---|
| prompt* | The text prompt describing subject, action, scene, and style. |
| resolution | Output resolution: 512P (default) or 1024P. |
| aspect_ratio | Output aspect ratio: 3:2 (default), 1:1, or 2:3. |
| duration | Fixed at 5 seconds. |
How to use
- Write a clear prompt describing the subject, action, environment, and style.
- Select aspect_ratio for your delivery format (landscape, square, or portrait).
- Choose resolution: 512P for quick drafts, 1024P for final detail.
- Run the model and download the generated MP4.
Prompt tips
- Use clear verbs for motion: “walks,” “turns,” “sparks fly,” “camera pans slowly.”
- Keep the structure simple: subject → action → scene → lighting → style.
- For stronger coherence, describe one main shot rather than multiple scene changes.
Pricing
All videos are 5 seconds.
| Resolution | Price per second | Price per 5s video |
|---|---|---|
| 512P | $0.04 | $0.20 |
| 1024P | $0.12 | $0.60 |
Use Cases
- Social media short clips and creative testing
- Storyboarding and previsualization
- Marketing concept drafts and ad iterations
- Stylized motion scenes for presentations and demos
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/text-to-video" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"resolution": "512p",
"aspect_ratio": "3:2",
"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 |
|---|---|---|---|---|---|
| prompt | string | Yes | - | The text prompt to guide video generation. | |
| resolution | string | No | 512p | 512p, 1024p | Video resolution quality. |
| aspect_ratio | string | No | 3:2 | 3:2, 1:1, 2:3 | Aspect ratio of the generated video. |
| duration | integer | No | 5 | 5 | Video duration in seconds (currently only 5s is supported). |
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 |