# Seedance 2 (`seedance_2`)

> ByteDance Seedance 2. High-quality video from text, images, or video editing.

- Capability: Video (tool `video`) — Text to video, Image to video, Video to video
- Price: from $0.23 per run (1 credit = $0.01). Exact price for a request: POST https://api.varg.ai/v2/estimate
- Typical time: ~2 min
- JSON Schema: https://api.varg.ai/v2/tools/video?model=seedance_2 (public, no key)
- Try it: https://varg.ai/dashboard/tools/playground?model=seedance_2

## Call it

REST: `POST https://api.varg.ai/v2/tools/video/call` with `Authorization: Bearer $VARG_API_KEY` (create a key at https://varg.ai/dashboard/api).
It answers `202` with a job right away. Poll `GET /v2/jobs/{id}` until `status` is `completed`, then read `output.outputs[0].url` — or pass `options.webhook_url` and get the finished job POSTed to you.

```bash
curl -X POST https://api.varg.ai/v2/tools/video/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "seedance_2",
  "prompt": "a cat jumping over a fence, cinematic",
  "aspect_ratio": "16:9",
  "duration": 5
}'
```

MCP: the varg server `https://mcp.varg.ai/mcp` (OAuth sign-in, no key) runs it with `call_tool`:

```json
{
  "tool": "video",
  "input": {
    "model": "seedance_2",
    "prompt": "a cat jumping over a fence, cinematic",
    "aspect_ratio": "16:9",
    "duration": 5
  },
  "wait": true
}
```

## Inputs

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `model` | string | yes | — | `seedance_2` or a route key below | Which model runs the job. |
| `prompt` | string | no | — | — | — |
| `files` | array of { url } | no | — | — | — |
| `aspect_ratio` | string | no | — | e.g. 16:9 \| 9:16 \| 1:1 \| 4:3 \| 3:4 \| 21:9 \| auto | — |
| `resolution` | string | no | — | 480p \| 720p \| 1080p \| 4k | Quality tier. Supported by this model: 480p, 720p, 1080p, 4k. Unsupported tiers fall back to the nearest available. |
| `audio` | boolean | no | — | — | Set true to generate the video with a native audio track. |
| `duration` | integer | no | — | 4–15 | Length in seconds. Supported by this model's routes: piapi: integer 4-15; byteplus: integer 4-15 or -1 or "auto"; fal: 4-15 or "auto". A non-numeric value such as "auto" is routed to a route whose schema accepts it; when none does, the request is rejected. |

Media inputs are URLs. Upload a local file first with `POST /v2/files` and pass the returned URL.

## Provider options

Optional, per provider, under `provider_options.<provider>`. Only the options of the provider that runs the job apply — pin a route to choose it.

### provider_options.piapi

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `input.mode` | string | no | — | text_to_video \| first_last_frames \| omni_reference | — |
| `input.audio` | boolean | no | — | — | No audio generated if false |
| `input.prompt` | string | no | — | — | — |
| `input.duration` | integer | no | — | 4–15 | — |
| `input.audio_urls` | array of URL strings | no | — | — | — |
| `input.image_urls` | array of URL strings | no | — | — | — |
| `input.resolution` | string | no | — | 480p \| 720p \| 1080p | — |
| `input.video_urls` | array of URL strings | no | — | — | — |
| `input.aspect_ratio` | string | no | — | 21:9 \| 16:9 \| 4:3 \| 1:1 \| 3:4 \| 9:16 \| auto | — |
| `input.auto_upload_assets` | boolean | no | — | — | -less-restriction only: auto-ingest raw URLs as ephemeral private assets |
| `input.asset_retention_hours` | integer | no | — | 3–8 | — |
| `task_type` | string | no | — | seedance-2-less-restriction \| seedance-2-fast-less-restriction \| seedance-2-mini-less-restriction \| seedance-2 \| seedance-2-fast \| seedance-2-mini | — |

### provider_options.byteplus

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `ratio` | string | no | — | 16:9 \| 4:3 \| 1:1 \| 3:4 \| 9:16 \| 21:9 \| adaptive | — |
| `duration` | integer | no | — | 4–15 | — |
| `watermark` | boolean | no | — | — | — |
| `resolution` | string | no | — | 480p \| 720p \| 1080p \| 4k | — |
| `generate_audio` | boolean | no | — | — | Generate a native audio track. |
| `return_last_frame` | boolean | no | — | — | Also return the last frame as an image URL (chain clips). |
| `safety_identifier` | string | no | — | — | — |
| `execution_expires_after` | integer | no | — | 3600–21600 | Seconds a task may wait in the queue before it expires unrun (default 1 h, the BytePlus minimum — an expired task fails over to the next provider; at most 6 h — the job times out at 7 h). |

### provider_options.fal

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `prompt` | string | no | — | — | The text prompt describing the desired motion and action for the video |
| `audio_urls` | array of URL strings | no | — | — | — |
| `image_urls` | array of URL strings | no | — | — | — |
| `video_urls` | array of URL strings | no | — | — | — |
| `duration` | string | no | — | 4 \| 5 \| 6 \| 7 \| 8 \| 9 \| 10 \| 11 \| 12 \| 13 \| 14 \| 15 \| auto | — |
| `image_url` | string (URL) | no | — | — | URL of the starting frame image to animate (JPEG/PNG/WebP, max 30 MB) |
| `resolution` | string | no | — | 480p \| 720p \| 1080p \| 4k | — |
| `end_user_id` | string | no | — | — | — |
| `aspect_ratio` | string | no | — | auto \| 21:9 \| 16:9 \| 4:3 \| 1:1 \| 3:4 \| 9:16 | — |
| `bitrate_mode` | string | no | — | standard \| high | — |
| `end_image_url` | string (URL) | no | — | — | Optional last-frame image; the video transitions from image_url to this |
| `generate_audio` | boolean | no | — | — | — |

## Routes

`"model": "seedance_2"` picks a route automatically (priority order, then the inputs you send). To pin one, pass its key as `model`.

| model key | provider | modality | price from | typical time |
|---|---|---|---|---|
| `piapi:seedance-2-less-restriction` | piapi | text-to-video, image-to-video | $0.44 | ~5 min |
| `piapi:seedance-2-fast-less-restriction` | piapi | text-to-video, image-to-video | $0.36 | ~4 min |
| `piapi:seedance-2-mini-less-restriction` | piapi | text-to-video, image-to-video | $0.31 | ~4 min |
| `byteplus:dreamina-seedance-2-0-260128` | byteplus | text-to-video, image-to-video, video-to-video | $0.29 | ~3 min |
| `fal:bytedance/seedance-2.0/fast/image-to-video` | fal | image-to-video | $0.43 | ~3 min |
| `fal:bytedance/seedance-2.0/fast/reference-to-video` | fal | image-to-video | $0.43 | ~3 min |
| `fal:bytedance/seedance-2.0/text-to-video` | fal | text-to-video | $0.54 | ~3 min |
| `piapi:seedance-2` | piapi | text-to-video, image-to-video | $0.40 | ~5 min |
| `piapi:seedance-2-fast` | piapi | text-to-video, image-to-video | $0.32 | ~4 min |
| `piapi:seedance-2-mini` | piapi | text-to-video, image-to-video | $0.28 | ~4 min |
| `byteplus:dreamina-seedance-2-0-260128-less-restriction` | byteplus | text-to-video, image-to-video, video-to-video | $0.29 | ~4 min |
| `byteplus:dreamina-seedance-2-0-fast-260128` | byteplus | text-to-video, image-to-video, video-to-video | $0.23 | ~2 min |
| `byteplus:dreamina-seedance-2-0-fast-260128-less-restriction` | byteplus | text-to-video, image-to-video, video-to-video | $0.23 | ~3 min |

## Example output

- video/mp4: https://s3.varg.ai/files/ee388aea-c8c3-41de-9345-24881cc87757/file_bb9e00703bf0.mp4

---

Catalog version 2026-11-11T12:59:09.901887+00:00. All models: https://varg.ai/models/llms.txt
