Skip to content
ByteDance logo

Seedance 2.5

Text-to-Video • ByteDance

View as MarkdownAgent setup
  • 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.

Usage

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"
  }
}

Examples

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"
  }
}

Parameters

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-video
last_frame_image
stringLast-frame reference image (HTTP(S) URL or base64 data URI). Requires a first-frame image to also be given.
resolution
stringrequireddefault: 720penum: 480p, 720pVideo resolution
aspect_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 video
watermark
booleanrequireddefault: falseWhether to add a watermark to the output video
seed
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 detection
video
stringformat: uriURL to the generated video

API Schemas (Raw)

Input
Output

Was this helpful?