Seedance 2.5 API

Long-form video model for coherent clips up to 30 seconds, with up to 50 reference images, videos, and audio clips, native audio, editing, and extension.

ByteDanceVideo GenerationReleased Aug 7, 2026MalaysiaProprietary EndpointNew

About Seedance 2.5

Long-form video model for coherent clips up to 30 seconds, with up to 50 reference images, videos, and audio clips, native audio, editing, and extension.

Also known as ByteDance Seedance 2.5

text to videoimage to videoreference to videovideo editingmultimodalaudio synccamera controlcharacter consistencydraft mode

Seedance 2.5 specs

Model ID
seedance-2-5
Author
ByteDance
Category
Video Generation
Released
Aug 7, 2026
Input
TextImageVideoAudio
Output
Video
Region
Malaysia
Endpoints
POST/v1/videos/generations
Alternate model IDs
bytedance/seedance-2.5seedance-2.5

Seedance 2.5 API pricing

Live pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.

Type
Spec
Rate
T2V/I2V 480P
per second
$0.206
T2V/I2V 720P
per second
$0.462
T2V/I2V 1080P
per second
$1.137
Video Input 480P
per second of input plus output
$0.123
Video Input 720P
per second of input plus output
$0.276
Video Input 1080P
per second of input plus output
$0.680
Compare on the full pricing page

How to call the Seedance 2.5 API

Seedance 2.5 runs through POST /v1/videos/generations. The request returns a job_id right away; poll GET /v1/jobs/{job_id} until the job completes and read the output URLs from the result. Get an API key from the EmpirioLabs dashboard.

cURL: submit the job
curl https://api.empiriolabs.ai/v1/videos/generations \
  -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-5",
    "prompt": "Describe what you want Seedance 2.5 to generate."
  }'
cURL: poll for the result
curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
  -H "Authorization: Bearer $EMPIRIOLABS_API_KEY"
Python
import requests

response = requests.post(
    "https://api.empiriolabs.ai/v1/videos/generations",
    headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
    json={
        "model": "seedance-2-5",
        "prompt": "Describe what you want Seedance 2.5 to generate.",
    },
)
job = response.json()

# Generation runs as an async job. Poll until it completes.
import time
while True:
    status = requests.get(
        f"https://api.empiriolabs.ai/v1/jobs/{job['job_id']}",
        headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
    ).json()
    if status.get("status") in ("completed", "failed"):
        print(status)
        break
    time.sleep(5)
Full Seedance 2.5 API reference

Seedance 2.5 API parameters

Request parameters supported by the Seedance 2.5 API on EmpirioLabs. Defaults apply when a field is omitted.

ParameterTypeDefaultRange / valuesDescription
promptstring--Scene description. Address a specific attachment inline as @Image1, @Video1, or @Audio1 to say which reference a shot should follow.
modeenumautoauto, t2v, i2v_first, i2v_both, referenceSelects how your inputs are used. auto detects it from what you attach. t2v is text to video. i2v_first animates a first frame. i2v_both animates between a first and...
resolutionenum720p480p, 720p, 1080pOutput resolution. Draft mode always renders at 480p, and a draft's final render is always 1080p, so this is ignored on both.
aspect_ratioenumadaptiveadaptive, 16:9, 9:16, 1:1, 4:3, 3:4, 21:9Output aspect ratio. adaptive lets the model choose. When you supply a first frame, the output follows that image's aspect ratio, so aspect_ratio must stay adaptive....
custom_durationbooleantrue-If false, the model decides clip length.
durationnumber54 to 30Clip length in seconds. Only used when custom_duration=true. Video editing always keeps the source clip length.
generate_audiobooleantrue-Generate native audio with the video.
output_formatenummp4mp4, movmp4 plays everywhere. mov carries higher color precision for color grading, keying, and compositing, and some players cannot open it.
draftbooleanfalse-Render a 480p draft to try the shot cheaply, then render the one you like at native 1080p from the same prompt, references and seed.
draft_task_idstring--The ID of a draft to render at native 1080p. The draft keeps its prompt, references, length, aspect ratio, seed and audio. Drafts stay available for 7 days, and each...
return_last_framebooleanfalse-Also return the final frame as a PNG, ready to use as the first frame of the next clip.
imagestring--Reference / first-frame image URL.
image_endstring--End-frame image URL for i2v_both.
videostring--Reference video URL for reference / edit / extend.
1 more parameter in the docs

Good to know

Next-generation Seedance built for long-form storytelling: one request can produce a coherent clip of up to 30 seconds, draw on up to 50 reference assets, and edit or extend existing footage.

Modes

  • Text to video, first frame, or first and last frame.
  • Multimodal reference to video from up to 30 images, 10 videos, and 10 audio clips. Audio-only input works on its own.
  • To edit an attached clip or continue it, describe that in your prompt. The model reads the intent from your wording.

Output

  • 480p, 720p, and 1080p at 24fps, 4 to 30 seconds, with native synchronized audio.
  • MP4 by default. MOV carries higher color precision for grading and compositing, and some players cannot open it.
  • When you supply a first frame, the output follows that image's aspect ratio, so aspect_ratio stays adaptive. Reference jobs, including ones with a reference video, accept any ratio.

Draft mode

  • Set draft to true to render a 480p draft while you are still trying shots. Drafts render at 480p only.
  • The response returns the draft's id as usage.draft_task_id. Send that back as draft_task_id to render the same shot at 1080p.
  • The final render takes the prompt, reference assets, duration, aspect ratio, seed and audio setting from the draft, so anything you send alongside draft_task_id is ignored. A draft stays promotable for 7 days.

Input limits

  • Images: jpeg, png, webp, bmp, tiff, gif, heic, or heif, 300 to 6000 px per side, under 30 MB each.
  • Videos: MP4 or MOV, 2 to 30 seconds each and 30 seconds in total, under 200 MB each.
  • Audio: WAV or MP3, 2 to 30 seconds each and 30 seconds in total, under 15 MB each.
  • Reference uploads that contain real human faces are rejected by the model.

Billing

  • Without a reference video, you are billed per second of generated video at the rate for the output resolution.
  • With a reference video, the model prices the reference clip's seconds alongside the generated seconds, at the lower video-input rate. Billed seconds are therefore reference duration plus output duration, so a request that includes a reference video costs more in total than the same output generated from text alone.
  • Draft mode is not a discounted rate. A draft bills as a normal 480p generation and its final bills as a normal 1080p generation, so the saving comes from trying shots at 480p and rendering only your pick at 1080p.
  • Worked example at 480p: a 4 second clip from a text prompt bills 4 seconds. A 4 second clip generated from a 5 second reference video bills 9 seconds at the video-input rate.

Uploaded media preprocessing

  • Video inputs are capped to 30 seconds.
  • Uploaded video inputs are normalized to provider-compatible MP4 when needed. Set preprocess_video to false to send a clip through untouched.

Seedance 2.5 API: common questions

How much does the Seedance 2.5 API cost?

On EmpirioLabs, Seedance 2.5 is billed pay as you go: T2V/I2V 480P $0.206 per second; T2V/I2V 720P $0.462 per second; T2V/I2V 1080P $1.137 per second; Video Input 480P $0.123 per second of input plus output; Video Input 720P $0.276 per second of input plus output; Video Input 1080P $0.680 per second of input plus output. The live rate card on this page always matches what the API charges.

Which endpoint does Seedance 2.5 use?

Seedance 2.5 is served through POST /v1/videos/generations on api.empiriolabs.ai with standard bearer-token authentication.

Can I try Seedance 2.5 in the browser before integrating?

Yes. The EmpirioLabs playground runs Seedance 2.5 in the browser with the same parameters the API exposes, so you can test prompts before writing code.

How do I get a Seedance 2.5 API key?

Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.

Ready to use better endpoints?

Check out our pricing or reach out if you want your own model deployed on our stack.