Recipe
The biggest change in Seedance 2.5 is the locked/unlocked task system: edit, first/last-frame, and extend tasks lock output parameters. Covers asset limits, the four-part structured prompt, timestamp rules, and a quick 2.0-vs-2.5 comparison — with an API example.
Seedance 2.5 pushes video generation into "long narrative × strong referencing × precise editing × multilingual": 30-second single takes, up to 50 reference assets per request, and native dialogue in 10+ languages. For prompt writers, the most important change is not those numbers but the new "locked / unlocked" task system— if you don't internalize this taxonomy, parameter errors and "the output ignores me" will eat half your debugging time. This post distills the official prompt guide into an actionable checklist.
2.5 splits tasks by whether the asset becomes part of the output video's timeline (2.0 has no such distinction):
| Class | Task | Locking rule |
|---|---|---|
| Locked | Video edit | Aspect ratio locked (ratio=adaptive) and duration locked (duration=-1), aligned to the video being edited |
| First / first+last frame | Aspect ratio locked to the first-frame image; duration is yours to choose. If first and last frames differ in aspect, the last frame gets stretched | |
| Video extend | Aspect ratio locked to the video being extended; duration is yours to choose; mov is recommended for both input and output | |
| Unlocked | Reference tasks / grid storyboards / keyframes | Aspect ratio and duration freely specified; grid storyboards guide the plot only and do not strictly align frame details |
Edit tasks are triggered by keywords (add/delete/modify/replace…), extension by "extend forward/backward, continue"; asset roles are set with content.role: first_frame / last_frame / reference_image / reference_video / reference_audio.
The officially recommended organization, written in order:
Realistic nature-documentary style, cinematic true-to-life lighting. On a warm afternoon forest slope, a chubby panda cub tumbles down the hill.
0s-3s: The panda cub lies on the grassy slope and slowly rolls sideways down it, clumsy in its movements, flattening blades of grass; sunlight filters through the trees from the upper left in dappled patches.
3s-8s: The panda rolls to a stop at the lower right of the frame, shifts from its side onto its belly, round face toward the camera, lifting and lowering its head slightly, <soft whimpering sounds>.
Low-angle medium-wide shot with a slight handheld feel, gently tracking the panda; foreground grass blurred, subject sharp; natural ambient sound, warm and realistic overall. No subtitles.| Dimension | Seedance 2.0 | Seedance 2.5 |
|---|---|---|
| Task locking | No locking concept | Edit/first-last-frame/extend lock aspect ratio (some lock duration) |
| Time control | Only "Shot N" recommended; exact seconds unstable | Continuous timestamp segments and point-in-time control |
| Asset ceiling | 4–5 recommended | Up to 50; binding asset numbers to roles in text is a hard requirement |
| Duration / language | — | 30s single takes; native dialogue in 10+ languages |
For regular text-to-video, drop the structured prompt into prompt and submit an async task through the OpenAI-compatible endpoint (submission is free; you are billed by duration only on success):
curl https://zerofa.ai/v1/videos \
-H "Authorization: Bearer sk-zerofa-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5",
"prompt": "(use the four-part structure above)",
"duration": 10,
"resolution": "720P",
"aspect_ratio": "16:9",
"enable_audio": true
}'
# → {"id":"<task-id>","status":"submitted"}, then poll GET /v1/videos/<task-id>When you need content.role (first/last frame, multi-asset referencing) or other native parameters, use the Volcano Ark /ark native passthrough — the request body matches the official docs exactly, with every advanced parameter preserved. Endpoint details are in the video generation API docs; the model and live pricing are on the Doubao Seedance 2.5 model page. For the older model's prompt style, see the Seedance 2.0 prompt guide.
Edit, first/last-frame, and extend are "locked" tasks: the input asset literally becomes part of the output timeline, so the output must adapt to the asset. Edit tasks require ratio=adaptive and duration=-1, aligning the output's aspect ratio and length to the video being edited; first/last-frame locks the aspect ratio but lets you choose the duration. Only reference-type tasks (including grid storyboards and keyframes) let you freely set both.
Up to 50 per request: at most 30 images (up to 4K), 10 video clips (30s combined), and 10 audio clips (30s combined). Don't max it out, though — 1-8 subject images and 1-5 subject video/audio clips work best; too many assets scrambles feature priority.
Use 1-second granularity and keep the timeline continuous (avoid jumping from 0-3s straight to 5-6s). Three forms are supported: ranges (0-3s… 3-7s), points in time (a fast lateral pan transition at 5s), and relative time (3 seconds later…). Do not use timestamps to control action frequency, e.g. "shakes the head 3 times in one second".
Three things: ① 2.5 introduces the locked/unlocked task taxonomy — edit, first/last-frame, and extend lock output parameters; ② 2.5 supports precise timestamp segmentation, while 2.0 only reliably handles shot numbers; ③ 2.5 raises the asset ceiling dramatically (50 assets), and explicitly binding asset numbers to their roles in the prompt text becomes a hard requirement.