Seedance 2.0 at a Glance
Seedance 2.0 gives the highest quality in the Seedance 2.0 series and is the only Seedance model that renders 4K. It turns a prompt, first and last frames or reference assets into clips of 4 to 15 seconds, and costs less per second than Seedance 2.5 at every resolution they share.
| Model ID | seedance-2.0 |
|---|---|
| Clip length | 4–15 seconds |
| Resolutions | 480p · 720p · 1080p · 4K |
| Aspect ratios | 21:9 · 16:9 · 4:3 · 1:1 · 3:4 · 9:16 |
| Modes | Text to Video, Omni Reference, First & Last Frames |
| Reference assets | Up to 9 images, 3 videos and 3 audio clips, 15 in total |
| Sound | Native audio, on by default. Set generate_audio to false for a silent clip. |
| Videos per request | One |
Seedance 2.0 API Pricing
Official prices. Top up from $5. No time limit.
| Resolution | OnlySeedance | fal | Higgsfield | You Save |
|---|---|---|---|---|
| With Video InputOmni Reference with video. Billed per second of input video plus output. | ||||
| 480p | $0.043 /s | $0.084 /s | $0.084 /s | 49% |
| 720p | $0.093 /s | $0.181 /s | $0.181 /s | 49% |
| 1080p | $0.228 /s | $0.408 /s | $0.408 /s | 44% |
| 4K | $0.467 /s | $0.933 /s | $0.933 /s | 50% |
| Without Video InputText to Video, First & Last Frames, and Omni Reference with images or audio. Billed per second of output. | ||||
| 480p | $0.070 /s | $0.141 /s | $0.141 /s | 50% |
| 720p | $0.151 /s | $0.302 /s | $0.302 /s | 50% |
| 1080p | $0.374 /s | $0.680 /s | $0.680 /s | 45% |
| 4K | $0.778 /s | $1.555 /s | $1.555 /s | 50% |
- Competitors are shown at their public list prices, before temporary or negotiated discounts, as of October 2026.
Price by Mode
4–15 second clips. Prices in USD per second.
| Mode | 480p | 720p | 1080p | 4K | Billed Seconds |
|---|---|---|---|---|---|
| Text to Video | $0.070 /s | $0.151 /s | $0.374 /s | $0.778 /s | Output |
| Omni Reference, images or audio | $0.070 /s | $0.151 /s | $0.374 /s | $0.778 /s | Output |
| Omni Reference, with video | $0.043 /s | $0.093 /s | $0.228 /s | $0.467 /s | Input video + output |
| First & Last Frames | $0.070 /s | $0.151 /s | $0.374 /s | $0.778 /s | Output |
What a Clip Costs
Billed seconds times the price per second.
| Example | Billed Seconds | Price per Second | Total |
|---|---|---|---|
| Test clip: 4 seconds at 480p | 4 | $0.070 /s | $0.280 |
| 10 seconds at 720p | 10 | $0.151 /s | $1.510 |
| 15 seconds at 4K | 15 | $0.778 /s | $11.670 |
| 5 seconds at 720p with a 5-second reference video | 10 | $0.093 /s | $0.930 |
Seedance 2.0 Modes
Every mode uses the same endpoint.
Text to Video
Describe the subject, the action, the camera and the mood. Only prompt is required: a request that sets nothing else renders 5 seconds at 720p in 16:9.
{
"model": "seedance-2.0",
"prompt": "A slow aerial shot over a foggy pine forest at sunrise",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}Omni Reference
Send images, videos and audio for the model to follow: a subject's look, a motion, a beat. Name them in the prompt as @Image 1, @Video 1 or @Audio 1.
One request takes up to 9 images, 3 videos and 3 audio clips, 15 in total, and audio needs at least one image or video beside it. Reference videos bill their seconds along with the output's, at the with-video price; images and audio are free.
{
"model": "seedance-2.0",
"prompt": "The woman in @Image 1 dances to the beat of @Audio 1, moving like the dancer in @Video 1",
"duration": 10,
"resolution": "720p",
"reference_images": [{"url": "https://example.com/woman.png"}],
"reference_videos": [{"url": "https://example.com/dance.mp4"}],
"reference_audios": [{"url": "https://example.com/beat.mp3"}]
}First & Last Frames
start_image makes the video open on your image. Add end_image and the model fills in the motion between the two.
Set aspect_ratio to adaptive to take the ratio of the first frame, or to a fixed ratio, which crops the first frame to fit. Frames can't be combined with reference assets in the same request.
{
"model": "seedance-2.0",
"prompt": "Day turns into night over the same skyline as the lights come on",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "adaptive",
"start_image": {"url": "https://example.com/day.png"},
"end_image": {"url": "https://example.com/night.png"}
}Quick Start
Create an API key in the console and export it as ONLYSEEDANCE_API_KEY. These three calls submit a task, check it and save the video.
curl https://api.onlyseedance.com/v1/videos/generations \
-H "Authorization: Bearer $ONLYSEEDANCE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0",
"prompt": "A slow aerial shot over a foggy pine forest at sunrise"
}'curl https://api.onlyseedance.com/v1/videos/$REQUEST_ID \
-H "Authorization: Bearer $ONLYSEEDANCE_API_KEY"curl -L https://api.onlyseedance.com/v1/videos/$REQUEST_ID/content \
-H "Authorization: Bearer $ONLYSEEDANCE_API_KEY" \
-o output.mp4import os
import time
import requests
BASE = "https://api.onlyseedance.com"
headers = {"Authorization": f"Bearer {os.environ['ONLYSEEDANCE_API_KEY']}"}
job = requests.post(
f"{BASE}/v1/videos/generations",
headers=headers,
json={"model": "seedance-2.0", "prompt": "A slow aerial shot over a foggy pine forest at sunrise"},
timeout=60,
)
job.raise_for_status()
request_id = job.json()["request_id"]
while True:
task = requests.get(f"{BASE}/v1/videos/{request_id}", headers=headers, timeout=60).json()
if task["status"] != "pending":
break
time.sleep(10)
if task["status"] == "done":
video = requests.get(f"{BASE}/v1/videos/{request_id}/content", headers=headers, timeout=600)
video.raise_for_status()
with open("output.mp4", "wb") as f:
f.write(video.content)
else:
print(task.get("error"))Fields, task status, billing and errors are in the API documentation.
Compare Seedance Models
| Model | With Video Input | Without Video Input | Clip Length | Top Resolution | Best For |
|---|---|---|---|---|---|
| Seedance 2.5 | From $0.062 /s | From $0.099 /s | 4–30 seconds | 1080p | Long takes, real-person references, and editing or extending footage |
| Seedance 2.0 | From $0.043 /s | From $0.070 /s | 4–15 seconds | 4K | The highest quality in the 2.0 series, and 4K |
| Seedance 2.0 Fast | From $0.033 /s | From $0.056 /s | 4–15 seconds | 720p | A balance of speed and cost |
| Seedance 2.0 Mini | From $0.021 /s | From $0.035 /s | 4–15 seconds | 720p | The lowest price, for drafts and batches |
Seedance 2.0 FAQ
How much does the Seedance 2.0 API cost?
Seedance 2.0 costs $0.070 per second at 480p, $0.151 at 720p, $0.374 at 1080p and $0.778 at 4K, about 45% below fal and Higgsfield. With video input it costs $0.043, $0.093, $0.228 and $0.467, counted on input plus output seconds.
Does Seedance 2.0 support 4K?
Yes. Every mode can render 480p, 720p, 1080p or 4K: set resolution to 4k. 4K costs $0.778 per second, or $0.467 with video input.
Is this the official Seedance 2.0 model?
Yes. Every video is generated by ByteDance's official Seedance 2.0 model through the official Seedance API. We never swap in another model or alter the output. OnlySeedance is an independent provider, not affiliated with or endorsed by ByteDance.
How long can a Seedance 2.0 video be?
From 4 to 15 seconds, in whole seconds. Each request renders one video.
What is the difference between Seedance 2.0, 2.0 Fast and 2.0 Mini?
All three take the same inputs. Seedance 2.0 gives the highest quality and renders up to 4K. Seedance 2.0 Fast balances speed and cost, and Seedance 2.0 Mini has the lowest price. Both stop at 720p.
Should I use Seedance 2.0 or Seedance 2.5?
Use Seedance 2.0 for 4K, or when a lower price per second matters more. Use Seedance 2.5 for clips longer than 15 seconds, more than 15 reference assets, Video Edit, Video Extension or Draft Mode.
Do I pay for failed jobs?
No. Failed jobs and jobs refused by content review are never charged.