Seedance 2.0
Seedance 2.0 (bytedance/seedance-2.0) is ByteDance’s flagship video model: strong character consistency, frame transitions, native audio. The family also has a fast tier, Seedance 2.0 Fast (bytedance/seedance-2.0-fast) — cheaper and quicker, for drafts and iteration; the parameters and sizes are the same across tiers. 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.0 (the short seedance-2.0; the alias seedance) or bytedance/seedance-2.0-fast |
prompt |
Scene description, required |
seconds |
One of 5, 10, 15; defaults to 5 |
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 9 images as an array, also data: URLs only |
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 |
Nine allowed sizes — three aspect ratios at three resolutions:
| Aspect | 480p | 720p | 1080p |
|---|---|---|---|
16:9 |
852x480 |
1280x720 |
1920x1080 |
9:16 |
480x852 |
720x1280 |
1080x1920 |
1:1 |
480x480 |
720x720 |
1080x1080 |
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.0", "prompt": "A girl walks through an evening market, garland lights reflected in shop windows, the camera follows alongside", "seconds": "10", "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.0", "prompt": "A girl walks through an evening market, garland lights reflected in shop windows, the camera follows alongside", "seconds": "10", "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:
import base64import requests
with open("scene.jpg", "rb") as f: img = "data:image/jpeg;base64," + base64.b64encode(f.read()).decode()
job = requests.post( "https://api.mixen.ai/v1/videos", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "model": "bytedance/seedance-2.0", "prompt": "The camera pulls back slowly as the hero takes in the panorama, even motion", "seconds": "5", "size": "1280x720", "input_reference": {"image_url": img}, },).json()print(job["id"], job["status"])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. To rough out the same scene cheaper, run bytedance/seedance-2.0-fast:
{ "model": "bytedance/seedance-2.0-fast", "prompt": "The character from the first frame gets into the car from the second, a night courtyard", "seconds": "5", "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. Seedance 2.0: 480p — 8.9922 ₽ ($0.1009) per second, 720p — 20.2144 ₽ ($0.2268), 1080p — 45.4823 ₽ ($0.5103). Fast is roughly 40% cheaper at the same parameters: 480p — 5.3948 ₽ ($0.0605), 720p — 12.1286 ₽ ($0.1361), 1080p — 27.2894 ₽ ($0.3062). You are charged actual duration × the size’s rate. Current prices — catalog.
The family also includes the budget Seedance 2.0 Mini (bytedance/seedance-2.0-mini): short clips of 4–15 seconds, seven frame formats, only 480p and 720p, with references and the first-to-last frame transition; 480p — 4.4996 ₽ ($0.0505) per second, 720p — 10.1072 ₽ ($0.1134).
Strengths and limits
Section titled “Strengths and limits”- Strong character consistency: the same hero holds up across frames and references.
- The first-to-last frame transition is available in the web cabinet and the bot; over
/v1only the starting frame can be passed. - Native audio in the finished clip — no separate voiceover needed.
- Image-to-video from a starting frame and reference-to-video from 2–9 images.
- Three resolutions up to 1080p, but only three frame formats:
16:9,9:16,1:1. For the cinematic21:9and durations up to 30 seconds — Seedance 2.5. - Durations are fixed: only 5, 10, or 15 seconds — no continuous range like Seedance 2.5’s.
All models — in the catalog. The general video workflow — video guide.