Seedance 2.5
Seedance 2.5 (bytedance/seedance-2.5) is the ByteDance video model built for long-form storytelling: multimodal references, first-plus-last frame support, and native audio. Generation is asynchronous: POST /v1/videos returns a job, then you poll the status and download the mp4.
Parameters
Section titled “Parameters”| Field | Description |
|---|---|
model |
bytedance/seedance-2.5 (or the short seedance-2.5) |
prompt |
Scene description, required |
seconds |
Any integer from 4 to 30; defaults to 4 |
size |
A WxH size from the table below; defaults to 1280x720 |
input_reference |
Image-to-video: one image as the starting frame, {"image_url": "data:image/...;base64,..."} |
input_references |
Reference-to-video: 2 to 30 images as an array, also data: URLs only — 2.5 takes far more references than its siblings |
seed |
Reproducibility seed: an integer in 0…2147483647. The same prompt with the same seed yields the same clip; without it the upstream picks a random one |
Twelve allowed sizes — six aspect ratios at two resolutions:
| Aspect | 480p | 720p |
|---|---|---|
16:9 |
852x480 |
1280x720 |
9:16 |
480x852 |
720x1280 |
1:1 |
480x480 |
720x720 |
4:3 |
640x480 |
960x720 |
3:4 |
480x640 |
720x960 |
21:9 |
1120x480 |
1680x720 |
A value outside the list returns 400 with the allowed options listed — check the sizes field in the catalog when in doubt.
Examples
Section titled “Examples”Text-to-video
Section titled “Text-to-video”import requests
job = requests.post( "https://api.mixen.ai/v1/videos", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "model": "bytedance/seedance-2.5", "prompt": "A drone circles a lighthouse on a rocky shore, dawn, spray from the waves", "seconds": "8", "size": "1280x720", },).json()print(job["id"], job["status"])curl https://api.mixen.ai/v1/videos \ -H "Authorization: Bearer $MIXEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "bytedance/seedance-2.5", "prompt": "A drone circles a lighthouse on a rocky shore, dawn, spray from the waves", "seconds": "8", "size": "1280x720" }'Image-to-video from a starting frame
Section titled “Image-to-video from a starting frame”The image goes in as a single data: URL — external links are not accepted:
{ "model": "bytedance/seedance-2.5", "prompt": "The camera pulls back slowly, the city wakes up, natural motion", "seconds": "10", "size": "720x1280", "input_reference": {"image_url": "data:image/jpeg;base64,/9j/4AAQ..."}}Reference-to-video from several images
Section titled “Reference-to-video from several images”Two to nine references: the model assembles the scene while keeping the characters and style of the inputs:
{ "model": "bytedance/seedance-2.5", "prompt": "The girl from the first frame walks down the street from the second, evening lights", "seconds": "6", "size": "1280x720", "input_references": [ "data:image/png;base64,iVBORw0...", "data:image/png;base64,iVBORw0..." ]}From there it is the usual loop: GET /v1/videos/{id} every 5–10 seconds until completed, then GET /v1/videos/{id}/content for the mp4. Full cycle — video guide.
Billing is per second and depends on the resolution: 480p — 13.7436 ₽ ($0.1542) per second, 720p — 30.8991 ₽ ($0.3467). You are charged actual duration × the size’s rate. Current prices — catalog.
Strengths and limits
Section titled “Strengths and limits”- Long-form stories: durations from 4 to 30 seconds — a continuous range, not three fixed buttons.
- Six frame formats, including the cinematic
21:9, at 480p and 720p. - Native audio in the finished clip.
- Image-to-video from a starting frame and reference-to-video from 2–9 images.
- The first-to-last frame transition is available in the web cabinet and the bot; over
/v1only the starting frame can be passed. - 720p costs roughly twice as much as 480p — on a 30-second clip the difference adds up.
All models — in the catalog. The general video workflow — video guide.