bytedance-seedance-2-0

v2026.09.24

Generate cinematic videos with native synchronized audio using ByteDance Seedance 2.0 (Fast) via EachLabs. Supports text-to-video (bytedance-seedance-2-0-text-to-video-fast) and image-to-video (bytedance-seedance-2-0-image-to-video-fast). Use when the user specifically asks for Seedance 2.0, wants native audio with the video, realistic physics, director-level camera control, or 4–15 second clips up to 720p.

GitHub
Install command
npx skhub add eachlabs/bytedance-seedance-2-0
Markdown
SKILL.md

ByteDance Seedance 2.0 (Fast)

ByteDance Seedance 2.0 on the EachLabs Predictions API. Seedance 2.0 generates cinematic video with native synchronized audio (sound effects, ambient sound, lip-synced speech), realistic physics, and director-level camera control.

Two model slugs:

SlugCategoryUse
bytedance-seedance-2-0-text-to-video-fastText to VideoGenerate a video from a prompt
bytedance-seedance-2-0-image-to-video-fastImage to VideoAnimate a starting frame (optionally to an end frame)

The "Fast" tier prioritizes rapid turnaround for high-throughput pipelines while keeping the family's character consistency and physics.

When to use

  • User asks for "Seedance 2.0", "ByteDance video", or wants a Seedance-style look.
  • Native audio required in the same pass (dialogue, SFX, ambience) — no separate TTS/lipsync step.
  • Cinematic motion, realistic physics, or director-level camera language ("slow push in", "rack focus").
  • Durations of 4–15 seconds at 480p or 720p.
  • Image-to-video with an end frame to control where the clip lands.

For a wider video-model comparison (Veo, Kling, Sora, Pixverse, Hailuo, etc.) see eachlabs-video-generation.

Authentication

Header: X-API-Key: <your-api-key>

Set the EACHLABS_API_KEY environment variable. Get your key at eachlabs.ai/dashboard/api-keys.

Prediction Flow

  1. (Recommended) Check schema — GET https://api.eachlabs.ai/v1/model?slug=bytedance-seedance-2-0-text-to-video-fast (or the i2v slug).
  2. POST https://api.eachlabs.ai/v1/prediction with model, version: "0.0.1", and input.
  3. Poll GET https://api.eachlabs.ai/v1/prediction/{id} until status is "success" or "error", or use a webhook.
  4. Extract the video URL from output (string).

Quick Start — Text to Video

curl -X POST https://api.eachlabs.ai/v1/prediction \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "model": "bytedance-seedance-2-0-text-to-video-fast",
    "version": "0.0.1",
    "input": {
      "prompt": "Cinematic slow push-in on a lone astronaut standing at the edge of a Martian canyon at dusk, dust drifting across their boots, distant wind, subtle helmet reflections",
      "resolution": "720p",
      "duration": "6",
      "aspect_ratio": "16:9",
      "generate_audio": true
    }
  }'

Typical processing time: ~120 seconds.

Quick Start — Image to Video

curl -X POST https://api.eachlabs.ai/v1/prediction \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "model": "bytedance-seedance-2-0-image-to-video-fast",
    "version": "0.0.1",
    "input": {
      "prompt": "Camera slowly pushes from wide to medium close-up as the lion roars at golden hour. Warm amber light rakes across the mane. Narrator (weathered British male, 50s): \"He has ruled this land for seven years.\"",
      "image_url": "https://your-cdn.example.com/lion.jpg",
      "resolution": "720p",
      "duration": "8",
      "aspect_ratio": "16:9",
      "generate_audio": true
    }
  }'

Typical processing time: ~150 seconds.

Start-to-end transition

Pass end_image_url to lock the final frame and let the model interpolate motion between the two:

{
  "model": "bytedance-seedance-2-0-image-to-video-fast",
  "version": "0.0.1",
  "input": {
    "prompt": "Smooth parallax zoom through the scene, crossfading into the second look",
    "image_url": "https://your-cdn.example.com/frame-start.jpg",
    "end_image_url": "https://your-cdn.example.com/frame-end.jpg",
    "duration": "6",
    "resolution": "720p"
  }
}

Polling

curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \
  -H "X-API-Key: $EACHLABS_API_KEY"
StatusMeaning
processingStill running — poll again
successDone — read output (video URL)
errorFailed — read message / details

Webhook (alternative to polling)

Pass "webhook_url": "https://your.host/path" in the create body. EachLabs POSTs:

{
  "exec_id": "prediction-uuid",
  "status": "succeeded",
  "output": "https://...",
  "error": ""
}

status is "succeeded" or "failed". Return 2xx within 30 seconds.

Parameters (both slugs share most of these)

ParameterTypeRequiredDefaultOptionsDescription
promptstringYes——Text prompt. For i2v, describes the motion/action; supports timeline prompting and dialogue lines for native audio.
image_urlstringYes (i2v only)—JPEG / PNG / WebP, max 30 MBStarting frame. Publicly reachable HTTPS URL.
end_image_urlstringNo (i2v only)—JPEG / PNG / WebP, max 30 MBFinal frame; model interpolates between image_url and this.
resolutionstringNo720p480p, 720p480p = faster/cheaper, 720p = balanced.
durationstringNoautoauto, 4…15Clip length in seconds. auto lets the model pick from the prompt.
aspect_ratiostringNoautoauto, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16For i2v, auto infers from the input image.
generate_audiobooleanNotrue—Synchronized SFX, ambience, and lip-synced speech. Cost is the same whether on or off.
seedstringNo——Reproducibility hint — results may still drift slightly.
end_user_idstringNo——Your end-user identifier.

Pricing

Dynamic, charged per second of output video:

ResolutionRate
480p$0.1129 / second
720p (default)$0.2419 / second

Audio generation does not change cost. A 6-second 720p clip ≈ $1.45; a 10-second 480p clip ≈ $1.13.

Prompt Tips

  • Timeline prompting: sequence beats with time or cut words — "Wide shot: … Cut to close-up: … Finally: …". Seedance 2.0 respects temporal structure better than single-sentence prompts.
  • Dialogue with native audio: write the line in quotes and describe the speaker ("Weathered British male narrator, 50s, calm authoritative voice, says: …"). Lip-sync and ambience are generated in the same pass.
  • Camera language: use real film vocabulary ("slow push-in", "rack focus", "dolly left", "handheld", "crane up"). The model follows director-level cues.
  • Physics cues: mention weight, momentum, and material interactions ("dust scatters as boot lands", "fabric settles after the spin") to unlock the realistic-physics behavior.

Rate Limits & Limits

LimitValue
Create requests100 / minute per key
Concurrent predictions10 per key
File inputsPublicly reachable HTTPS URLs only (JPEG/PNG/WebP, max 30 MB). No data-URIs, no localhost.

Errors

Error body: { "status": "error", "message": "...", "details": "..." }

CodeMeaning
400Invalid input
401Missing / invalid X-API-Key
404Unknown model or prediction id
429Rate limited — back off
5xxRetry with exponential backoff

Security Constraints

  • No arbitrary URL loading: image_url / end_image_url must point to your own HTTPS-reachable storage (S3, GCS, CDN). Do not forward user-pasted URLs without validation.
  • No third-party API tokens: never forward provider tokens through input — authentication is exclusively via the EachLabs API key.
  • Validate before calling: resolve the live request_schema via GET /v1/model?slug=<slug> before constructing input.

Parameter Reference

See references/MODELS.md for the full per-slug table with defaults and options.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

skills/bytedance-seedance-2-0

Default branch

main

Latest commit

dbd25b7

Tree SHA

8611943