Seedance 2.5
The current generation of Seedance by ByteDance. Clips up to 30 seconds, multimodal references (up to 20 images, 6 videos, 6 audio clips), strong character consistency, and better prompt adherence than Seedance 2.0.
seedance-2.5AsyncUp to 30sGenerate
/api/v1/generateReturns a task_id immediately. Poll /api/v1/status for the result. Credits are deducted upfront and auto-refunded if the generation fails. Requires a paid plan.
Parameters
modelseedance-2.5prompt@image1 @video1 @audio1 tags to reference attached media (see References below).duration5. Values outside the range are clamped.aspect_ratio16:9 9:16 1:1 4:3 3:4 21:9 9:21. Default: 16:9resolution480p 720p. Default: 720p. Higher resolutions are not available on this model; requests specifying one are served and billed at 720p.reference_imagesreference_videosreference_audiolast_framereference_modetrue to treat every reference image as a style/subject reference instead of pinning the first as a start frame.tagcharacter object style locationcurl -X POST https://www.lunostudio.ai/api/v1/generate \
-H "Authorization: Bearer $LUNO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "A lighthouse in a storm, waves breaking over the rocks",
"duration": 10,
"resolution": "720p",
"aspect_ratio": "16:9"
}'{
"task_id": "task_lb3mygsolx1zh14ylx4yve7r",
"credit_cost": 340,
"model": "bytedance/seedance-2.5",
"status": "pending"
}Pricing
Billed per second, by resolution. Attaching a reference video changes both the rate and the number of seconds counted.
Billable seconds
A billable second is a second the model processes, which is not always a second of the video you get back.
With no reference video, the two are the same. A 10-second request is 10 billable seconds.
With one or more reference videos, the model reads those clips in addition to producing yours, and every second it reads is billable:
billable seconds = duration + the full length of every reference videoEach length is rounded up to the next whole second and counted separately. The whole reference clip counts, not the portion that appears in the result — a 60-second reference contributes 60 seconds whether the model draws on all of it or one frame. Reference images and reference audio contribute nothing.
| Request (720p) | Billable seconds | Rate | Credits |
|---|---|---|---|
| 10s, no reference video | 10 | 34 | 340 |
| 10s, 4 reference images | 10 | 34 | 340 |
| 10s + one 5s reference video | 10 + 5 = 15 | 23 | 345 |
| 10s + one 20s reference video | 10 + 20 = 30 | 23 | 690 |
| 10s + two references, 12s and 31s | 10 + 12 + 31 = 53 | 23 | 1,219 |
The lower per-second rate offsets part of the extra seconds. A reference shorter than roughly half the output length costs less than the same clip would at the no-reference rate; beyond that it costs more.
Without a reference video
Billed on output duration only. This covers text-to-video, image-to-video, keyframe pairs, and audio references.
| Resolution | Per second | 5s clip | 10s clip | 30s clip |
|---|---|---|---|---|
| 480p | 16 credits | 80 | 160 | 480 |
| 720p | 34 credits | 170 | 340 | 1,020 |
With one or more reference videos
A lower per-second rate, applied to billable seconds = output duration + the full duration of every reference video, each rounded up to the next whole second.
| Resolution | Per billable second | 10s out + 5s ref | 10s out + 20s ref | 30s out + 30s ref |
|---|---|---|---|---|
| 480p | 11 credits | 165 | 330 | 660 |
| 720p | 23 credits | 345 | 690 | 1,380 |
Every response includes credit_cost, so you always know the exact charge before you poll. Failed generations are refunded in full. Reference-video durations are measured at submit time; a clip whose duration cannot be read is counted as the output duration.
References
Attach up to 20 images, 6 videos, and 6 audio clips. Reference them positionally in the prompt with @image1, @video1, @audio1, numbered in the order you supply them.
Keyframes vs references
With reference images and no @ tags, the first image is pinned as the start frame. Add last_frame to pin the end frame as well, and any remaining images are treated as references. Set reference_mode: true to skip pinning entirely and treat every image as a style or subject reference.
curl -X POST https://www.lunostudio.ai/api/v1/generate \
-H "Authorization: Bearer $LUNO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "@image1 walks toward the camera, matching the motion in @video1",
"reference_images": ["https://example.com/character.png"],
"reference_videos": ["https://example.com/walk-cycle.mp4"],
"duration": 8,
"resolution": "720p"
}'Poll for the result
/api/v1/statusPoll with the task_id returned by the generate call. Generations typically complete in 1-5 minutes depending on duration and resolution.
curl "https://www.lunostudio.ai/api/v1/status?task_id=task_lb3mygsolx1zh14ylx4yve7r" \
-H "Authorization: Bearer $LUNO_API_KEY"generatingsuccessoutput holds the video URL.failedrefunded confirms it.{
"task_id": "task_lb3mygsolx1zh14ylx4yve7r",
"status": "success",
"output": ["https://lunostudio.ai/storage/v1/object/public/generations/..."]
}The preview build
A separate preview build of Seedance 2.5 remains available as seedance-2.5-preview. It takes the same request schema and is billed at a flat per-second rate, with no reference-video surcharge. See Seedance 2.5 Preview.
seedance-2.5 model id now resolves to this model. It previously resolved to the preview build. The request schema is unchanged; the difference is billing on runs that include a reference video, which is flat on the preview build and billable-seconds here. To keep the previous behaviour, use seedance-2.5-preview explicitly.Need help?
Engineering team responds within 5 minutes.