Short answer: Seedance 2.5 is ByteDance's next-generation video model, available on EmpirioLabs through one OpenAI-style endpoint. It generates a coherent clip of up to 30 seconds in a single request, takes up to 50 reference assets at once, and can edit or extend video you already have. Call it with model: "seedance-2-5" on POST /v1/videos/generations.
What is new in 2.5
| Capability | Seedance 2.0 series | Seedance 2.5 |
|---|---|---|
| Output length | 4 to 15 seconds | 4 to 30 seconds, in one request |
| Reference assets | 15 (9 images, 3 videos, 3 audio) | 50 (30 images, 10 videos, 10 audio) |
| Audio-only input | Not supported | Supported on its own |
| Output format | MP4 | MP4 or high color precision MOV |
| Resolution | 480p to 4K depending on tier | 480p and 720p |
| Prompt languages | English plus 3 | English plus 9, including Arabic, Thai, Korean, and Vietnamese |
Quickstart
Video generation is asynchronous. Submit the job, then poll it.
curl -X POST https://api.empiriolabs.ai/v1/videos/generations \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"prompt": "A lone lighthouse on a cliff at dusk, the beam sweeping out over heavy surf. Slow push in.",
"resolution": "720p",
"duration": 10,
"aspect_ratio": "16:9"
}'
# -> {"job_id": "...", "status": "processing", "poll_url": "/v1/jobs/..."}
curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY"
Five ways to drive it
The model picks its task type from the attachments you send plus the intent of your prompt. You can also set mode explicitly.
- Text to video. A prompt on its own.
- First frame, or first and last frame. Send
image, and optionallyimage_end, to animate from a still or to travel between two. - Multimodal reference. Send
images,videos, andaudiostogether. This is where the 50-asset ceiling matters, and audio works with no visual input at all. - Video editing. Attach a clip and say what to change: add, remove, or replace something in the footage.
- Video extension. Attach a clip and ask the model to continue it, forward or backward.
Addressing specific references in the prompt
With many assets attached, plain prose gets ambiguous fast. Seedance 2.5 lets the prompt point at an individual attachment by index, so you can say which reference governs which part of the shot.
{
"model": "seedance-2-5",
"prompt": "A product film for the bottle in @Image1. Open on the camera move from @Video1, then cut to a slow orbit lit like @Image2.",
"images": ["https://.../bottle.png", "https://.../lighting-ref.png"],
"videos": ["https://.../camera-move.mp4"],
"resolution": "720p"
}
Attachments are numbered in the order you send them, per type: @Image1, @Image2, @Video1, @Audio1.
Editing and extending
Both take an existing clip. The difference is entirely in what you ask for.
# Edit: keeps the source clip's length and aspect ratio
{"model": "seedance-2-5", "mode": "edit",
"prompt": "Remove the parked cars from the street.",
"video": "https://.../street.mp4"}
# Extend: you choose the new length, or let the model choose
{"model": "seedance-2-5", "mode": "extend", "duration": 8,
"prompt": "Continue the shot as the camera keeps drifting down the street.",
"video": "https://.../street.mp4"}
Two constraints are worth knowing before you build around them. Editing always returns a clip the same length as its source, so duration is not yours to set. Editing, extension, and first or last frame jobs all inherit their aspect ratio from the input, so aspect_ratio stays adaptive for those.
Operational notes
- Native audio is on by default. The model writes voice, effects, and music to match the footage. Put spoken lines in double quotes in the prompt. Set
generate_audio: falsefor a silent clip. - MOV is for post, not for the web.
output_format: "mov"gives higher color precision for grading, keying, and compositing, and some players cannot open it. MP4 is the default for a reason. - Reference uploads containing real human faces are rejected by the model. That is an upstream safety behavior, not an EmpirioLabs limit. Generating your starting frame first is the usual way around it.
- Reference video seconds are billable. When a request carries a reference video, the model prices the reference clip's duration alongside the generated duration, at a lower video-input rate. A short edit of a long clip therefore costs more than its output length suggests.
- Set an aspect ratio for text to video. Left adaptive, the model chooses one from the prompt, which is convenient for exploration and unhelpful when you need a fixed deliverable.
Pricing
Seedance 2.5 is pay as you go, billed per second of video at a rate that depends on the output resolution, with no pay-as-you-go minimum. Requests that include a reference video bill at a lower per-second rate that also covers the reference clip's seconds. The current rates are on the model page and on pricing, and both read from the live catalog.
Try it
Run it in the playground with no code, or read the API reference for the full parameter list. The other tiers in the family, Seedance 2.0 Pro, Fast, and Mini, remain available and still cover 1080p and 4K output.



