Skip to content
ByteDance logo

Seedance 2.0 Fast

Text-to-Video • ByteDance

View as MarkdownAgent setup

Model ID

Use with the Workers AI binding, the AI Gateway REST API, or the Unified API.

Calling the provider directly? Use the provider's model name instead, including with provider-native endpoints or the provider's own SDK. For example, Anthropic's name for anthropic/claude-opus-4.8 is claude-opus-4-8.

  • Third-party

Faster variant of ByteDance's Seedance 2.0 video model. Trades some quality for speed while sharing the same multimodal architecture. Supports text-to-video, image-to-video, native audio generation, multimodal references (images, videos, audio), video editing, and video extension.

Model Info
More informationlink ↗
Pricing
  • @480p non-video input (per second)$0.06
  • @480p video input (per second)$0.132
  • @720p non-video input (per second)$0.12
  • @720p video input (per second)$0.286
  • Default (per second)$0.12

Usage

const response = await env.AI.run(
  'bytedance/seedance-2.0-fast',
  {
    prompt: 'A golden retriever running through a field of sunflowers on a sunny day',
    aspect_ratio: '16:9',
    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.0-fast",
  "input": {
    "prompt": "A golden retriever running through a field of sunflowers on a sunny day",
    "aspect_ratio": "16:9",
    "duration": 5,
    "resolution": "720p"
  }
}'
{
  "state": "Completed",
  "result": {
    "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.0-fast/quick-video.mp4"
  },
  "gatewayMetadata": {
    "keySource": "Unified"
  }
}

Examples

Portrait Video — Vertical video for social media
const response = await env.AI.run(
  'bytedance/seedance-2.0-fast',
  {
    prompt: 'A barista pouring latte art in a cozy coffee shop, close-up with shallow depth of field',
    aspect_ratio: '9:16',
    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.0-fast",
  "input": {
    "prompt": "A barista pouring latte art in a cozy coffee shop, close-up with shallow depth of field",
    "aspect_ratio": "9:16",
    "duration": 5,
    "resolution": "720p"
  }
}'
{
  "state": "Completed",
  "result": {
    "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.0-fast/portrait-video.mp4"
  },
  "gatewayMetadata": {
    "keySource": "Unified"
  }
}
Virtual Avatar Reference — Use a virtual character avatar from the trusted asset library
const response = await env.AI.run(
  'bytedance/seedance-2.0-fast',
  {
    image: 'https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic1.jpg',
    prompt: 'The scene gently animates with subtle motion',
    aspect_ratio: '16:9',
    duration: 5,
    resolution: '720p',
    use_virtual_avatar: true,
    generate_audio: false,
  },
)
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.0-fast",
  "input": {
    "image": "https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic1.jpg",
    "prompt": "The scene gently animates with subtle motion",
    "aspect_ratio": "16:9",
    "duration": 5,
    "resolution": "720p",
    "use_virtual_avatar": true,
    "generate_audio": false
  }
}'
{
  "state": "Completed",
  "result": {
    "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.0-fast/virtual-avatar-reference.mp4"
  },
  "gatewayMetadata": {
    "keySource": "Unified"
  }
}

Parameters

prompt
stringrequiredmaxLength: 10000Text prompt describing the video to generate
image
stringReference image (HTTP(S) URL or base64 data URI) for image-to-video
reference_video
stringReference video (HTTP(S) URL or base64 data URI) for style/motion guidance
last_frame_image
stringReference image (HTTP(S) URL or base64 data URI) for last-frame guidance. Only works if an image start frame is also given.
duration
integerrequireddefault: 5minimum: 4maximum: 12Video duration in seconds
resolution
stringrequireddefault: 720penum: 480p, 720pVideo resolution
aspect_ratio
stringrequireddefault: 16:9enum: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, 9:21Video aspect ratio. Ignored if an image is used.
fps
numberrequireddefault: 24const: 24Frame rate (frames per second)
camera_fixed
booleanrequireddefault: falseWhether to fix camera position
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 for reproducible generation
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?