Seedance 2.5
Adaptive framing and length, and a 480p draft before the 1080p final.
Adaptive aspect ratio
Set video_config.aspect_ratio to "adaptive" to let the model choose the
framing from your prompt and references. T2V and R2V also take the fixed
ratios. I2V follows the source image, so it takes "adaptive" only.
Adaptive duration
For T2V and I2V, set video_config.duration_secs to -1 to let the model
choose how long the video is, between 4 and 30 seconds. You are only charged
for what's generated.
For R2V, -1 instead edits the first reference video and keeps its length.
It needs a reference video and aspect_ratio: "adaptive".
Draft mode
Make a quick 480p draft to check the scene, shots, and motion. When it looks right, turn it into a 1080p final. The final reuses the draft's prompt, references, named subjects, duration, aspect ratio, seed, and audio.
Draft mode works for text-to-video, image-to-video, and reference-to-video
(T2V, I2V, R2V). The draft and the final are billed as normal videos at
480p and 1080p. See Pricing for the rates.
The Python client doesn't send these fields yet, so call
POST /api/v0/generate directly.
Parameters
| Field | Type | Description |
|---|---|---|
draft | boolean | true to make a 480p draft. |
draft_source_task_id | string | The draft's task_id, to make its 1080p final. |
1. Make the draft
Set draft to true and video_config.height to 480.
curl https://api.machgen.ai/api/v0/generate \
-H "Authorization: Bearer $MACHGEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Seedance-2.5",
"task_type": "T2V",
"prompt": "A paper boat crossing a rain-soaked neon street at night",
"draft": true,
"video_config": {
"duration_secs": 5,
"height": 480,
"aspect_ratio": "16:9"
}
}'For image-to-video and reference-to-video, pass src_image_urls (and
subject_to_image_ids for @ names) as you normally would.
Poll GET /api/v0/tasks/{task_id} until it's COMPLETED. A draft has
metadata.draft set to true:
{
"task_id": "t-draft",
"status": "COMPLETED",
"metadata": {
"model": "Seedance-2.5",
"task_type": "T2V",
"height": 480,
"draft": true
}
}2. Make the final
Send a new request with draft_source_task_id set to the draft's task_id.
Leave draft out.
prompt and video_config are still required, but the draft's settings
replace them and the video renders at 1080p. A fixed aspect ratio keeps its
shape, so 16:9 becomes 1920x1080. adaptive stays adaptive.
curl https://api.machgen.ai/api/v0/generate \
-H "Authorization: Bearer $MACHGEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Seedance-2.5",
"task_type": "T2V",
"prompt": "A paper boat crossing a rain-soaked neon street at night",
"draft_source_task_id": "t-draft",
"video_config": {
"duration_secs": 5,
"height": 1080,
"aspect_ratio": "16:9"
}
}'Poll the final like any other task. It doesn't have metadata.draft.
Error Codes
Each of these returns 400 Bad Request:
detail | When |
|---|---|
Draft is only available for Seedance 2.5 video | draft is true on another model, or on a task type other than T2V, I2V, or R2V. |
Draft videos are 480p | draft is true with a height other than 480. |
Draft task was not found | draft_source_task_id is missing or isn't one of your tasks. |
Final videos start from a Seedance 2.5 draft | The source task isn't a Seedance 2.5 draft. |
The draft video is not ready | The draft hasn't reached COMPLETED yet. |