Skip to content
RU

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.

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.

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"])

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..."}
}

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.

  • 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 /v1 only 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.