Bytedance Seedance V1.5 Pro Text To Video
Playground
Try it on WavespeedAI!Seedance 1.5 Pro (Text-to-Video) generates cinematic, live-action–leaning clips from text with strong prompt adherence, expressive motion, and stable aesthetics. It supports 4–12s duration control (including Smart Duration), multiple aspect ratios (including adaptive), and reproducible generation via seeds—ideal for ads and short-drama workflows.
Features
bytedance/seedance-1.5-pro-t2v
Seedance 1.5 Pro (T2V) is ByteDance Seed’s production-oriented text-to-video model built for cinematic realism, strong prompt adherence, and high expressive motion. It is designed for ad creatives and short-drama workflows where aesthetic stability, emotion-rich acting, and controllable duration matter.
Key Features
-
High-quality prompt alignment
Accurately follows detailed scene descriptions, shot instructions, and emotional tone, producing coherent clips with stable subject and scene intent. -
Expressive motion and emotion
Natural motion amplitude and strong rhythm; fine-grained facial expressions and emotional delivery, suitable for drama-like performances and high-impact ads. -
Strong aesthetics with live-action realism
A “natural, live-action” leaning look with stable lighting, composition, and color harmony for premium-looking outputs. -
Rich effects via prompting
The base model supports a wide variety of visual effects achievable directly through prompting, enabling template-like creative effects without extra tooling. -
Flexible duration control (4–12 seconds)
Specify any integer duration from 4s to 12s. Supports Smart Duration (-1) where the model selects an appropriate length within the same range. -
Aspect ratio control
Choose eitheradaptive(model selects the best ratio from the prompt) or explicitly set one of:
16:9,9:16,4:3,3:4,1:1,21:9.
Parameters
-
prompt(required)
Text description of the scene, style, subject actions, camera motion, and overall mood. -
duration
Integer seconds in[4, 12]. Use-1for Smart Duration (model decides within[4, 12]). -
resolution
One of480p,720p. -
fps
Fixed at24. -
ratio
Useadaptive(model selects a suitable ratio) or set one of:16:9,9:16,4:3,3:4,1:1,21:9. -
fixed_camera
Boolean. Iftrue, the camera remains fixed; iffalse, camera motion is driven by the prompt. -
seed
Integer. Controls randomness; the same seed tends to produce more similar outputs. Set-1to cancel random seed.
Use Cases
- Performance-heavy ad creatives: emotion-forward acting beats with stable visual quality.
- Live-action style short drama clips: realistic lighting/composition and coherent storytelling moments.
- Template-like VFX content: prompt-driven effects for fast experimentation and iteration.
Notes
- For the cleanest motion, keep prompts specific but not overloaded: limit the number of primary subjects and simultaneous actions, especially in short clips.
- If you see shaky composition or drifting framing, set
camera_fixed = trueand describe motion using subject movement rather than camera movement. - When using
duration = -1, write prompts with a clear narrative “end beat” (a natural stopping point) so the model has a reason to conclude.
Related Models
- ByteDance Seedance V1 Pro Fast (Text-to-Video) – Faster Seedance variant for quick iterations and previews.
- ByteDance Seedance V1 Pro (T2V 480p) – A lower-res option for budget-friendly testing and rapid prompt iteration.
- WaveSpeedAI HunyuanVideo-1.5 (Text-to-Video) – Lightweight T2V model with strong motion coherence and efficient inference.
- WaveSpeedAI HunyuanVideo (T2V) – Another T2V option for broader experimentation across styles and pacing.
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/bytedance/seedance-v1.5-pro/text-to-video" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"aspect_ratio": "16:9",
"duration": 5,
"resolution": "720p",
"generate_audio": true,
"camera_fixed": false,
"seed": -1
}'
# 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 positive prompt for the generation. | |
| aspect_ratio | string | No | 16:9 | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | The aspect ratio of the generated media. |
| duration | integer | No | 5 | 4 ~ 12 | The duration of the generated media in seconds. |
| resolution | string | No | 720p | 720p, 480p | Video resolution. |
| generate_audio | boolean | No | true | - | Whether to generate audio. |
| camera_fixed | boolean | No | false | - | Whether to fix the camera position. |
| seed | integer | No | -1 | -1 ~ 2147483647 | The random seed to use for the generation. -1 means a random seed will be used. |
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 |