- Third-party
ByteDance's next-generation video model with a unified multimodal reference-to-video architecture. Generates video from text, up to 30 reference images, 10 reference videos, and 10 reference audio clips — including audio-only input with no image or video required. Supports first/last-frame image-to-video, video editing, video extension, intelligent duration (including automatic selection), and adaptive aspect ratio.
const response = await env.AI.run(
'bytedance/seedance-2.5',
{
prompt: 'A golden retriever running through a field of sunflowers on a sunny day',
duration: 5,
resolution: '720p',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "bytedance/seedance-2.5",
"input": {
"prompt": "A golden retriever running through a field of sunflowers on a sunny day",
"duration": 5,
"resolution": "720p"
}
}'{
"state": "Completed",
"result": {
"video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/simple-video.mp4"
},
"gatewayMetadata": {
"keySource": "Unified"
}
}Cinematic Wide Shot — Longer cinematic video with an explicit 16:9 aspect ratio
const response = await env.AI.run(
'bytedance/seedance-2.5',
{
prompt:
'A dramatic drone shot flying through misty mountain peaks at sunrise, cinematic lighting with volumetric fog',
aspect_ratio: '16:9',
duration: 12,
resolution: '720p',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "bytedance/seedance-2.5",
"input": {
"prompt": "A dramatic drone shot flying through misty mountain peaks at sunrise, cinematic lighting with volumetric fog",
"aspect_ratio": "16:9",
"duration": 12,
"resolution": "720p"
}
}'{
"state": "Completed",
"result": {
"video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/cinematic-wide-shot.mp4"
},
"gatewayMetadata": {
"keySource": "Unified"
}
}First and Last Frame — Generate a video that transitions between a given first-frame and last-frame image
const response = await env.AI.run(
'bytedance/seedance-2.5',
{
image: 'https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic1.jpg',
last_frame_image: 'https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic2.jpg',
prompt: 'The character slowly turns to face the camera and smiles',
duration: 5,
resolution: '720p',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "bytedance/seedance-2.5",
"input": {
"image": "https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic1.jpg",
"last_frame_image": "https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic2.jpg",
"prompt": "The character slowly turns to face the camera and smiles",
"duration": 5,
"resolution": "720p"
}
}'{
"state": "Completed",
"result": {
"video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/first-and-last-frame.mp4"
},
"gatewayMetadata": {
"keySource": "Unified"
}
}Portrait Video with MOV Output — Vertical video for social media, encoded as mov for higher color fidelity
const response = await env.AI.run(
'bytedance/seedance-2.5',
{
prompt: 'Abstract ink drops spreading through water, vivid colors mixing in slow motion',
aspect_ratio: '9:16',
duration: 5,
resolution: '720p',
output_format: 'mov',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "bytedance/seedance-2.5",
"input": {
"prompt": "Abstract ink drops spreading through water, vivid colors mixing in slow motion",
"aspect_ratio": "9:16",
"duration": 5,
"resolution": "720p",
"output_format": "mov"
}
}'{
"state": "Completed",
"result": {
"video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/portrait-video-with-mov-output.mov"
},
"gatewayMetadata": {
"keySource": "Unified"
}
}prompt
stringmaxLength: 2000Text prompt describing the video to generate. Optional when at least one reference image, video, or audio clip is provided (Seedance 2.5 supports audio-only input).image
stringFirst-frame reference image (HTTP(S) URL or base64 data URI) for image-to-videolast_frame_image
stringLast-frame reference image (HTTP(S) URL or base64 data URI). Requires a first-frame image to also be given.▶reference_images[]
arraymaxItems: 30Reference images (0-30, HTTP(S) URLs or base64 data URIs) to guide multimodal video generation, editing, or extension.▶reference_videos[]
arraymaxItems: 10Reference videos (0-10, HTTP(S) URLs or base64 data URIs) for style/motion guidance, video editing, or video extension. Total duration of all reference videos must not exceed 30 seconds.▶reference_audios[]
arraymaxItems: 10Reference audio clips (0-10, HTTP(S) URLs or base64 data:audio/... URIs). Supports audio-only input (no image or video required). Total duration of all audio clips must not exceed 30 seconds.▶duration
one ofrequiredresolution
stringrequireddefault: 720penum: 480p, 720pVideo resolutionaspect_ratio
stringrequireddefault: adaptiveenum: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptiveVideo aspect ratio. "adaptive" automatically matches the aspect ratio of the provided reference image or video when applicable. First/last-frame generation always uses "adaptive"; any supplied value is overridden.fps
numberrequireddefault: 24const: 24Frame rate (frames per second)camera_fixed
booleanrequireddefault: falseWhether to fix camera position. Not currently supported by the provider; has no effect.generate_audio
booleanWhether to generate audio with the videowatermark
booleanrequireddefault: falseWhether to add a watermark to the output videoseed
integerminimum: -9007199254740991maximum: 9007199254740991Random seed. Passing this does not error, but reproducibility is not guaranteed and is not documented by the provider.output_format
stringrequireddefault: mp4enum: mp4, movOutput video container format. "mp4" offers the best compatibility and smaller file size; "mov" preserves higher color fidelity for professional post-production workflows at the cost of a larger file.use_virtual_avatar
booleanrequireddefault: falseRoute image reference inputs (image, reference_images, last_frame_image) through ByteDance's trusted virtual avatar asset library before generation. Intended for AI-generated/virtual character avatars that would otherwise be blocked by face or deepfake detectionvideo
stringformat: uriURL to the generated video