Loading model…正在加载模型详情…
Loading model…正在加载模型详情…
Turn a text prompt into a short cinematic video with ByteDance's Seedance 2.0, in a standard variant for quality or a Fast variant for quicker, lower-cost iteration.
Reference @Image1 @Image2 for the spear-wielding character, @Image3 @Image4 for the scene. Generate a martial arts action sequence where the character performs fluid spear techniques. Use multi-angle tracking shots to capture the power and beauty of martial arts.
Replace the character in @video1 with @image1, with @image1 as the first frame. The character should wear virtual sci-fi glasses. Refer to the camera movement and close-up surround shots of @video1, changing from a third-person perspective to the character's subjective perspective. Travel through AI virtual glasses and arrive at the deep blue universe of @image2 where several spaceships are seen traveling into distance.
Seedance 2.0 is a video generation model from ByteDance. ByteDance describes it as a multimodal model built for fast, realistic video, with consistent characters and motion across shots.
UniRoute offers standard, Fast and Mini variants. Seedance 2.0 is the standard variant, aimed at output quality and control. Seedance 2.0 Fast gives up some options for lower cost and quicker iteration, which suits testing prompts. All take a text prompt and a catalog option; standard and Fast expose resolution and duration, while Mini exposes duration, and every request is quoted and charged as a whole.
Seedance 2.0 follows Seedance 1.5 Pro. ByteDance’s description of Seedance 2.0 highlights multimodal references, native audio and stronger multi-shot consistency. On UniRoute today, Seedance 2.0 is used as text to video with a resolution and duration option; the reference and audio inputs are not exposed yet.
What you can do with Seedance 2.0 through UniRoute today.
Describe the subject, action, camera movement and mood in a prompt, choose a resolution and duration, and run. All callable variants accept a text prompt, and each request is quoted before it is charged.
Other Seedance 2.0 modes (image to video, reference video and audio, lip sync and video editing) are not yet available through UniRoute.
The variants you can call, with their options and prices.
| Variant | Model ID | Modes | Inputs | Output | Price |
|---|---|---|---|---|---|
| Seedance 2.0 Fast | bytedance/seedance-2-fast | Text to video | Text prompt and a size option | Resolution: 480p, 720p; Duration: 5s, 10s | $0.37 to $1.55 per request |
| Seedance 2.0 | bytedance/seedance-2 | Text to video | Text prompt and a size option | Resolution: 480p, 720p, 1080p; Duration: 5s, 10s | $0.59 to $6.38 per request |
| Seedance 2.0 Mini | bytedance/seedance-2-mini | Text to video | Text prompt and an option for duration | Duration: 5s, 10s | $0.12 to $0.24 per request |
Priced per request. The option you choose sets the price.
| Seedance 2.0 Fast | |
|---|---|
| 480p · 5s | $0.37 |
| 480p · 10s | $0.73 |
| 720p · 5s | $0.78 |
| 720p · 10s | $1.55 |
| Seedance 2.0 | |
|---|---|
| 480p · 5s | $0.59 |
| 480p · 10s | $1.19 |
| 720p · 5s | $1.28 |
| 720p · 10s | $2.56 |
| 1080p · 5s | $3.19 |
| 1080p · 10s | $6.38 |
| Seedance 2.0 Mini | |
|---|---|
| 5s | $0.12 |
| 10s | $0.24 |
Rounded to the cent; the live quote in the workspace shows the exact amount. Prices updated 2026-11-08.
Pay as you go from a single USD wallet balance. You see the quote before each request.
Call Seedance 2.0 from your own code with the media API.
# Requires bash, curl and jq. Set API_KEY to your own unified UniRoute Key.set -euo pipefail: "${API_KEY:?Set API_KEY first}"BASE='https://api.uniroute.app/v1/media'MODEL='bytedance/seedance-2'OPTION='480p:5'PROMPT='A calm sunrise over a mountain lake'curl -fsS --max-time 60 "$BASE/catalog" -H "Authorization: Bearer $API_KEY" | jq -e '.data.models'BODY=$(jq -n --arg model "$MODEL" --arg option "$OPTION" --arg prompt "$PROMPT" '{model:$model,option:$option,prompt:$prompt}')QUOTE_BODY=$(printf '%s' "$BODY" | jq '{model,option}')QUOTE=$(curl -fsS --max-time 60 "$BASE/quote" -H "Authorization: Bearer $API_KEY" -H 'Content-Type: application/json' -d "$QUOTE_BODY")CAP=$(printf '%s' "$QUOTE" | jq -er '.data.quoted_usd')BODY=$(printf '%s' "$BODY" | jq --arg cap "$CAP" '. + {max_cost_usd:$cap}')IDEMPOTENCY="example-$(date +%s)-$$"create() { curl -fsS --max-time 60 "$BASE/tasks" -H "Authorization: Bearer $API_KEY" -H "Idempotency-Key: $IDEMPOTENCY" -H 'Content-Type: application/json' -d "$BODY"; }TASK_ID=$(create | jq -er '.data.task_id')# The same request and idempotency key must return the original task without charging again.REPLAY_ID=$(create | jq -er '.data.task_id')[ "$TASK_ID" = "$REPLAY_ID" ]for attempt in $(seq 1 120); do TASK=$(curl -fsS --max-time 60 "$BASE/tasks/$TASK_ID" -H "Authorization: Bearer $API_KEY") printf '%s' "$TASK" | jq -e '.data | {task_id,status,billing}' if printf '%s' "$TASK" | jq -e '.data.status == "success" and .data.billing.state == "charged"' >/dev/null; then index=0 while IFS= read -r url; do index=$((index+1)) curl -fL --max-time 120 "$url" -o "$TASK_ID-$index.bin" done < <(printf '%s' "$TASK" | jq -er '.data.urls[].url') break fi if printf '%s' "$TASK" | jq -e '.data.status == "failed" and .data.billing.state == "released"' >/dev/null; then exit 1; fi if [ "$attempt" = 120 ]; then echo "Polling limit reached. Keep task ID $TASK_ID and query it later; do not create a new task." >&2 exit 1 fi sleep 5donecurl -fsS --max-time 60 "$BASE/tasks?limit=20" -H "Authorization: Bearer $API_KEY" | jq -e '.data'# Check this task and the caller Key in Console usage; billing.charged_usd is the actual USD charge.| Name | In | Description |
|---|---|---|
model | Body | Model ID to run. |
option | Body | One of the options offered for the model: 480p:5, 480p:10, 720p:5, 720p:10, 1080p:5, 1080p:10, 5, 10. |
prompt | Body | Text prompt describing what to generate. |
max_cost_usd | Body | Maximum cost in USD for this task, taken from the quote. |
Idempotency-Key | Header | A unique key per task, so a repeated request returns the original task instead of charging again. |
Typical ways to put Seedance 2.0 to work.
Turn an idea into a short clip for social posts. Try several prompt wordings with the Fast variant, then render the version you like with the standard variant.
Draft product teasers, ad concepts and campaign moodboards as moving images without a shoot, and refine the prompt until the motion and mood fit the brief.
Preview camera moves and scene pacing from a written shot description before you plan a full production.
Call the API from your product to generate clips on demand. Each request is quoted up front and its status can be polled until the result is ready.
Common questions about Seedance 2.0.
Seedance 2.0 is ByteDance's AI video generation model. On UniRoute you can use it from this page or through the API to turn a text prompt into a short video.
Seedance 2.0 is the standard variant and offers more resolution choices. Seedance 2.0 Fast has fewer options and a lower price per request, which makes it a good fit for trying prompts. The specs and pricing tables on this page list the exact options and prices.
From $0.12 / clip. Each request is priced for the whole clip at the resolution and duration you choose. The full price table is in the Pricing section (prices updated 2026-11-08).
Not yet. ByteDance describes support for them, but UniRoute currently accepts a text prompt plus a resolution and duration option. The API section of this page lists the inputs that are available now.
Use the media API: request a quote for your model and option, create a task with an Idempotency-Key and a maximum cost, then poll the task until the result is ready. The API section shows a complete example and the parameters.
Video generation is asynchronous. After you submit a request its status updates while it runs, and the result appears when it is ready. The time varies with the variant, the options you choose and current load, so poll the task instead of submitting it again.
No. Generation is paid from your wallet balance. You can open the workspace and review the price without paying, create an account to see a live quote for your exact settings, and you are charged only for requests that are accepted.