Video Generation

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 30s

Generate

POST/api/v1/generate

Returns 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

model
stringrequired
Must be seedance-2.5
prompt
stringrequired
Text prompt describing the video. Supports @image1 @video1 @audio1 tags to reference attached media (see References below).
duration
number
Video length in seconds. Range: 4-30. Default: 5. Values outside the range are clamped.
aspect_ratio
string
16:9 9:16 1:1 4:3 3:4 21:9 9:21. Default: 16:9
resolution
string
480p 720p. Default: 720p. Higher resolutions are not available on this model; requests specifying one are served and billed at 720p.
reference_images
string[]
Up to 20 image URLs. Do not add billable seconds.
reference_videos
string[]
Up to 6 video URLs. Each one adds its full length to the billable seconds — see Pricing.
reference_audio
string[]
Up to 6 audio URLs. Do not add billable seconds.
last_frame
string
End-frame image URL. Used with the first reference image as a start/end keyframe pair.
reference_mode
boolean
Set true to treat every reference image as a style/subject reference instead of pinning the first as a start frame.
tag
string
Optional label applied to the resulting creation: character object style location
cURL
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": "A lighthouse in a storm, waves breaking over the rocks",
    "duration": 10,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'
Response
{
  "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 video

Each 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 secondsRateCredits
10s, no reference video1034340
10s, 4 reference images1034340
10s + one 5s reference video10 + 5 = 1523345
10s + one 20s reference video10 + 20 = 3023690
10s + two references, 12s and 31s10 + 12 + 31 = 53231,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.

ResolutionPer second5s clip10s clip30s clip
480p16 credits80160480
720p34 credits1703401,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.

ResolutionPer billable second10s out + 5s ref10s out + 20s ref30s out + 30s ref
480p11 credits165330660
720p23 credits3456901,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
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"
  }'
A reference video contributes its full length to the bill. On a 10-second 720p render, a 5-second reference costs 345 credits and a 60-second reference costs 1,610. Trim reference clips before uploading.

Poll for the result

GET/api/v1/status

Poll with the task_id returned by the generate call. Generations typically complete in 1-5 minutes depending on duration and resolution.

cURL
curl "https://www.lunostudio.ai/api/v1/status?task_id=task_lb3mygsolx1zh14ylx4yve7r" \
  -H "Authorization: Bearer $LUNO_API_KEY"
generating
status
Still running. Poll again in a few seconds.
success
status
Done. output holds the video URL.
failed
status
Failed. Credits are refunded automatically; refunded confirms it.
Response
{
  "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.

The 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.