Seedance 2.5
Generate videos from text, frames, or multimodal references.
/api/v1/generationsExample request
Set your FLUX_API_KEY before running. See the parameters below for supported settings.
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-5",
"input": {
"mode": "text-to-video",
"prompt": "A calm seaside sunrise with gentle camera movement",
"resolution": "480p",
"duration": 4,
"sound": false,
"aspect_ratio": "16:9"
}
}'Parameters
Set model to seedance-2-5. These fields belong inside input.
| Parameter | Description |
|---|---|
draft_task_idstring · Optional | Flux generation ID of your successful API preview. This is a separate request branch; omit all inherited generation fields. |
resolutionstring · Optional | Output resolution tier. Values are case-sensitive.480p720p1080p |
output_formatstring · Optional | Output file format.mp4Default: mp4 |
watermarkboolean · Optional | Whether to request a watermark. Default: false |
aspect_ratiostring · Optional | Output proportions; see mode constraints below.auto1:13:44:39:1616:921:9Default: auto |
soundboolean · Optional | Generate sound with the video. This is not a reference audio input. Default: true |
modestring · Optional | Choose a supported generation mode.text-to-videofirst_and_last_framesomni_reference |
promptstring · Optional | Describe the desired output. Minimum 1 characters. Maximum 5,000 characters. |
draftboolean · Optional | Create a 480p preview. Omit for direct generation. |
image_urlsstring[] · Optional | Public HTTPS reference images. Video image order and count depend on mode. Up to 30 items. |
video_urlsstring[] · Optional | Public HTTPS MP4 or MOV references. Flux measures duration before charging. Maximum file size 200 MiB. Up to 10 items. |
audio_urlsstring[] · Optional | Public HTTPS MP3, WAV or M4A references. Flux measures duration before charging. Maximum file size 15 MiB. Audio is not billed separately. Up to 10 items. |
reference_intentstring · Optional | Generate new content or edit a reference video. See model constraints for duration behavior.generateeditDefault: generate |
durationinteger · Optional | Output duration in seconds. See model constraints for editing and automatic duration. Range: 4–30. Additional values (see constraints):-1Default: 5 |
Reference media
Use your own publicly accessible HTTPS media URLs. Links must remain valid throughout queueing and generation. Base64 and file upload bodies are not supported by this endpoint.
first_and_last_frames
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-5",
"input": {
"mode": "first_and_last_frames",
"prompt": "A calm seaside sunrise with gentle camera movement",
"resolution": "480p",
"duration": 4,
"sound": false,
"aspect_ratio": "auto",
"image_urls": [
"https://example.com/front.jpg",
"https://example.com/back.jpg"
]
}
}'omni_reference
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-5",
"input": {
"mode": "omni_reference",
"prompt": "A calm seaside sunrise with gentle camera movement",
"resolution": "480p",
"duration": 4,
"sound": false,
"aspect_ratio": "auto",
"image_urls": [
"https://example.com/front.jpg",
"https://example.com/back.jpg"
]
}
}'Video and audio references
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-5",
"input": {
"mode": "omni_reference",
"prompt": "A calm seaside sunrise with gentle camera movement",
"resolution": "480p",
"duration": 4,
"sound": false,
"aspect_ratio": "auto",
"image_urls": [
"https://example.com/front.jpg"
],
"video_urls": [
"https://example.com/reference.mp4"
],
"audio_urls": [
"https://example.com/reference.mp3"
]
}
}'Edit a video
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-5",
"input": {
"mode": "omni_reference",
"prompt": "Edit the video to use a warm sunset background",
"resolution": "480p",
"duration": -1,
"sound": false,
"aspect_ratio": "auto",
"image_urls": [
"https://example.com/front.jpg"
],
"video_urls": [
"https://example.com/reference.mp4"
],
"audio_urls": [
"https://example.com/reference.mp3"
],
"reference_intent": "edit"
}
}'480p preview (charged separately)
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-5",
"input": {
"mode": "text-to-video",
"prompt": "A calm seaside sunrise with gentle camera movement",
"resolution": "480p",
"duration": 4,
"sound": false,
"aspect_ratio": "16:9",
"draft": true
}
}'1080p final from a successful preview — replace the Flux generation ID
curl https://api.flux-context.org/api/v1/generations \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-5",
"input": {
"draft_task_id": "00000000-0000-4000-8000-000000000000"
}
}'Credits
| Resolution | Without video / second | With video / second |
|---|---|---|
| 480p | 15 | 9 |
| 720p | 33 | 20 |
| 1080p | 82 | 50 |
Video reference seconds are included in the billable duration. See the model-specific rounding and editing rules below. Sound does not change the price. Confirmed failed requests are refunded.
Without video references, credits = ceil(output seconds × rate). With video references, new tasks cost ceil((output seconds + max(measured total input video seconds, ceil(output seconds × 2/3))) × rate). Images and audio add no billable seconds.
Editing reserves ceil((max(input video seconds, 20) + 30 + 1) × rate). The extra second is a Flux settlement reserve, not provider output. Final cost uses ceil(final total billable seconds × the saved rate); the difference is returned or charged. Historical tasks retain their saved rule. If final billing is unavailable, the precharge is retained and results are delivered; billing is marked for review. If the available balance cannot cover an additional charge, only the available credits are charged and results are delivered.
Constraints
Set draft: true for a 480p preview at the normal 480p price. Then submit only draft_task_id (the Flux generation id, not provider_task_id) to create a separately billed 1080p final. The source must be your successful API preview, created within 7 days. Inherited fields must be omitted. Each new Idempotency-Key creates independent paid work.
Normal generation and preview inputs require a prompt and retain the ordinary mode rules. A final request inherits prompt, references, duration and sound from its source; do not send those fields.
Preview: 15 credits/second without video references, 9 with video references. Final: 82 credits/second without video references, 50 with video references. New video-reference tasks bill output seconds + max(actual total reference seconds, ceil(output seconds × 2/3)); apply the minimum once and round total credits up. A new final uses the original actual reference duration, even from an older preview. Preview charges are not deducted from final charges. A dynamic source needs authoritative final billing; DRAFT_BILLING_PENDING means check again later.
Responses include workflow.stage (draft or final), workflow.sourceId for a final, workflow.expiresAt for a preview, and workflow.can_finalize. A website creation cannot be used as an API source. A source is reusable for multiple independent paid finals; retries of one operation must reuse its Idempotency-Key.
First/last frames use 1–2 images and aspect_ratio auto. Omni reference supports up to 30 images, 10 videos and 10 audio files.
Each video/audio reference must be 2–30 seconds; video total and audio total must each be at most 30 seconds.
For explicit editing use reference_intent edit, duration -1 and aspect_ratio auto. Other requests use a fixed duration of 4–30 seconds.
Use returned dimensions when available. Unverified video dimensions are null. Videos are delivered as MP4. Reference and editing rules depend on the model.
Response
A successful submission returns HTTP 202 and a request ID. Response excerpt:
{
"id": "REQUEST_ID",
"model": "seedance-2-5",
"status": "processing"
}