Seedance 2.0 vs Wan: Compare Video API Costs at the Same Resolution
Compare Seedance 2.0 and Wan 2.7 by resolution, input mode and supplier. Updated 1080p estimates, 4K pricing and code for testing both APIs.
Updated September 16, 2026: compare matching resolution and input mode. At 1080p text-to-video, Wan 2.7 is cheaper than Seedance 2.0; Seedance’s flagship instead offers a 4K option. Both use POST /v1/videos, so test your actual prompts before choosing on price alone.
Which One Should You Pick?
For a 1080p budget, start with Wan 2.7. For low-resolution drafts, compare Seedance Mini at the required resolution. For 4K, use the flagship Seedance 2.0 rate for 4K, not its 480p starting price.
| Scenario | Pick | Why |
|---|---|---|
| High-volume 1080p clips | Wan 2.7 | $0.15/s versus Seedance 2.0 list $0.34/s; text-to-video |
| Drafts at 720p | Seedance 2.0 Mini | $0.08/s list; primary Volcengine $0.04/s; text-to-video |
| Need 4K output | Seedance 2.0 | Only one of the two that lists 4K |
| Clips shorter than 4 seconds | Wan 2.7 | 2s minimum vs Seedance’s 4s |
| Already tuned to Alibaba motion behavior | Wan 2.7 | Migration cost outweighs price gap |
| Not sure yet | Run both | One endpoint, one string to swap |
Everything below is the math and the specs behind that table, plus the exact code to run both on one call.
Quick Specs Comparison
Prices were refreshed from the Ofox catalog resolution tiers on September 16, 2026. The remaining specification and sample sections retain their original scope. Prices below are USD per second and explicitly distinguish list rates from primary supplier quotes.
| Spec | Seedance 2.0 | Seedance 2.0 Fast | Seedance 2.0 Mini | Wan 2.7 | Wan 2.6 |
|---|---|---|---|---|---|
| Model ID | bytedance/seedance-2.0 | bytedance/seedance-2.0-fast | bytedance/seedance-2.0-mini | alibaba/wan-2.7 | alibaba/wan-2.6 |
| Text-to-video list USD/s | $0.07 (480p), $0.16 (720p), $0.34 (1080p), $1.37 (4K) | $0.06 (480p), $0.13 (720p) | $0.04 (480p), $0.08 (720p) | $0.086 (720p), $0.15 (1080p) | $0.086 (720p), $0.15 (1080p) |
| Max resolution | 4K | 720p | 720p | 1080p | 1080p |
| Default resolution | 1080p | 720p | 720p | 1080p | 1080p |
| Modes | t2v, i2v, v2v | t2v, i2v, v2v | t2v, i2v, v2v | t2v, i2v, v2v | t2v, i2v |
| Duration range | 4–15s | 4–15s | 4–15s | 2–15s | 2–15s |
| Audio | Yes | Yes | Yes | Yes | Yes |
| Aspect ratios | 16:9, 9:16, 1:1, adaptive | same | same | 16:9, 9:16, 1:1 | 16:9, 9:16, 1:1 |
| Endpoint | /v1/videos | /v1/videos | /v1/videos | /v1/videos | /v1/videos |
Seedance 2.0 reaches 4K; Wan 2.7 has a 2-second minimum. Neither capability makes a starting price valid at every resolution. At matched 1080p text-to-video, Wan has the lower rate.
Where Seedance and Wan Come From
The two models trace back to the two Chinese labs with the deepest video-generation research. Seedance is part of ByteDance’s Seed group, the same team behind the Seedream image models and the short-video pipeline that feeds Douyin and TikTok. Wan is Alibaba’s Tongyi line, developed alongside the Qwen family and the Model Studio platform. You can read the vendor material at ByteDance Seed’s Seedance page and the Wan project site.
For a developer, the lineage matters less than the access path. Both models are trained and hosted in China first, which historically meant separate consoles, separate billing, and phone-number verification that does not always accept a foreign number. Routing them through the ofox gateway collapses that into one key and one endpoint, which is the practical reason this comparison is about the models rather than the paperwork. The interesting decision is price and capability, not which console you can sign into.
That framing also sets up the honest limit of a spec sheet. ByteDance and Alibaba both tune for their home platforms, so motion style, default pacing, and prompt interpretation differ in ways a datasheet does not capture. The only way to see it is to run the same prompt through both, which is the next section.
Same-Prompt Test: What the Price Gap Buys
Price and spec sheets settle the easy part. The harder question is whether the cheaper model holds up on motion, prompt adherence, and audio sync. Spec parity does not mean output parity, so this section runs the same prompt through both flagships and compares the result rather than trusting the datasheet.
Test prompt one, held identical across models, 1080p, 16:9, 8 seconds, audio on:
“A ceramic coffee cup on a wooden table, morning light from a window, steam rising, a hand enters frame and lifts the cup. Ambient cafe sound.”

Same prompt, four frames per model — Seedance 2.0 (top) and Wan 2.7 (bottom). Both render the cup, steam, and warm window light; watch the hand across the four frames.
The same two clips in motion, side by side: Seedance 2.0 (left), Wan 2.7 (right), looping and muted. The hand enters and lifts the cup on the Seedance side; on the Wan side the cup and steam hold but the lift barely reads.
| Criterion | Seedance 2.0 | Wan 2.7 | Notes |
|---|---|---|---|
| Prompt adherence (objects, action) | Full — the hand enters and lifts the cup | Partial — cup and steam land, the lift barely reads | Does the hand actually lift the cup |
| Motion coherence (no warping) | Clean across the four frames | Clean across the four frames | Steam and hand physics across frames |
| Audio level (measured) | Full synced bed, -34 dB avg / -5 dB peak | Present but faint, -43 dB avg / -30 dB peak | Both ship a synced audio track; Wan’s runs ~9 dB quieter on this clip |
| Current estimated output cost (8s, 1080p) | $2.72 | $1.20 | 8 × USD/s |
The cost row is a current text-to-video list-rate estimate for an 8-second 1080p output, not the invoice for the historical samples: Seedance $2.72 versus Wan $1.20. At the current primary BytePlus quote, the Seedance estimate is $2.48. The original sample observations are unchanged.
A single calm prompt does not stress a video model, so a fair test also needs a motion-heavy prompt where cheaper models tend to break. Test prompt two, same settings:
“A skateboarder does a kickflip down a set of stairs, fast camera pan, crowd in the background, daytime.”

The motion-heavy prompt: Seedance 2.0 (top) holds the board, feet, and background crowd coherent through the trick; Wan 2.7 (bottom) keeps the wide shots but drifts into a distorted close-up mid-sequence.
Motion tells the story the stills can’t: Seedance 2.0 (left), Wan 2.7 (right), looping. The board and feet stay locked through the flip on the Seedance side, while the Wan side snaps to a distorted close-up partway through before recovering the wide shot.
This is the prompt that separates the tiers. Fast camera motion plus a rigid-body trick plus background crowd is where warping, limb duplication, and physics drift show up. Judge both clips for whether the board and feet stay coherent through the flip and whether the pan smears the background. Run both prompts on bytedance/seedance-2.0 and alibaba/wan-2.7 and watch the two clips side by side before you commit a pipeline to either. Longer clips compound the effect: at 15 seconds, small per-frame drift accumulates, so if your format runs long, test at your real duration rather than a safe 5-second sample.
The Async Workflow: Submit, Poll, or Webhook
Video generation is not a single blocking request the way a chat completion is. The ofox POST /v1/videos call returns immediately with 202 Accepted and a polling_url. The clip renders in the background, and you find out it is ready one of two ways: poll the task, or register a webhook.
The task moves through a small state machine. You keep checking, or you get called back, until it reaches a terminal state.
The task moves through three live states, then stops at one of four terminal states. Poll GET /v1/videos/{id} or register a webhook; DELETE cancels, and results expire on a TTL.
| Field / state | Meaning | What to do |
|---|---|---|
202 + polling_url | Task accepted, rendering started | Save the URL, begin polling |
status: pending | Queued, not started | Keep polling, no faster than 1/s |
status: processing | Rendering in progress | Keep polling |
status: completed | Done, result URL attached | Download the clip |
status: failed | Generation error | Read error, retry or fall back |
status: cancelled | You called DELETE | Stop |
status: expired | Result TTL elapsed | Regenerate |
Two operational details save you a support ticket. First, poll no faster than once per second; the GET /v1/videos/{id} endpoint is rate-limit protected, and a tight loop will get throttled. Second, for production you usually want the webhook instead of polling. Pass a callback_url when you create the task and ofox posts an HMAC-signed payload when the clip finishes. The URL must be HTTPS and public: private, loopback, and cloud-metadata addresses are rejected by SSRF validation, and a bad address fails at creation time with 400 invalid_callback_url. If you need to abort a run, DELETE /v1/videos/{id} cancels it. All of this is identical for Seedance and Wan, which is the point: the operational surface does not change when you swap the model.
Common Errors and Gotchas
Most failures with either model come from the same handful of mismatches, not from the models themselves.
| Symptom | Cause | Fix |
|---|---|---|
400 on a 2–3s clip with Seedance | Seedance minimum duration is 4s | Use Wan (2s floor) or raise duration to 4s |
| Resolution rejected on Fast / Mini | Fast and Mini cap at 720p | Request 720p, or use flagship bytedance/seedance-2.0 for 1080p / 4K |
400 invalid_callback_url | Webhook not HTTPS or points to a private address | Use a public HTTPS endpoint |
| Task stuck polling forever | Polling too fast and getting throttled, or ignoring terminal states | Poll ≤1/s, break on completed / failed / cancelled / expired |
| Got t2v when you wanted i2v | No image in the payload | Pass frame_images (or input_references) to trigger image mode |
| Unexpected aspect ratio | Wan has no adaptive option | Set an explicit ratio; only Seedance supports adaptive |
The mode-inference behavior is the one that surprises people. The endpoint does not take a mode flag; it reads your payload. No images means text-to-video, frame_images means image or first/last-frame, and input_references means reference-guided. That keeps the call shape identical across both model families, but it also means a forgotten image field silently gives you the wrong mode instead of an error.
Prompting and Audio: Practical Notes
Neither model needs a special prompt dialect, but a few habits raise the hit rate on both. For text-to-video, describe the subject, the action, the camera, and the setting as separate clauses rather than one run-on sentence; both families parse “what, doing what, shot how, where” more reliably than a wall of adjectives. Keep the action singular. A prompt that asks for a kickflip and a crowd reaction and a lens flare in eight seconds usually gets one of the three, so if you need all three, chain shorter clips instead of overloading one generation.
Audio is on by default on every tier here, and that changes how you write. Because both models generate a synced audio bed, a prompt that mentions “ambient cafe sound” or “footsteps on gravel” gets a matching track, while a prompt that says nothing about sound gets whatever the model infers, which is not always what you want. Name the audio you expect, or you inherit a guess. If you are compositing the clip into a timeline with your own sound design, that generated bed is noise you have to strip, so treat audio as a decision, not a freebie.
For image-to-video, the frame you pass matters more than the prompt. A clean, high-resolution first frame with the subject already composed gives both models a stable anchor, and the prompt then only has to describe motion: “slow push in,” “hair moves in the wind,” “camera orbits left.” Seedance’s adaptive aspect ratio helps here, because it can match the frame you hand it instead of forcing a crop, which means one reference image can drive a 16:9 and a 9:16 output without re-framing. Wan needs an explicit ratio, so plan the crop before you submit.
Pricing Math: Estimates by Resolution
The table estimates 2,000 text-to-video outputs of 5 seconds each, with no input video or retries. Mini and Fast rows use 720p; the two other rows use 1080p, so do not interpret all four as equal-quality deliverables. These are estimates, not measured invoices.
| Model / resolution | List USD/s | 5s at list | 2,000 at list | Primary supplier USD/s | 2,000 at supplier quote |
|---|---|---|---|---|---|
| Seedance 2.0 Mini / 720p | $0.08 | $0.40 | $800 | $0.04 (Volcengine) | $400 |
| Seedance 2.0 Fast / 720p | $0.13 | $0.65 | $1,300 | $0.091 (Volcengine) | $910 |
| Seedance 2.0 / 1080p | $0.34 | $1.70 | $3,400 | $0.31 (BytePlus) | $3,100 |
| Wan 2.7 / 1080p | $0.15 | $0.75 | $1,500 | $0.15 (Aliyun) | $1,500 |
At matched 1080p, Seedance 2.0 costs $1,900 more than Wan at list rates, or $1,600 more at the quoted primary supplier rates. If you generate 2,000 Mini drafts at 480p and then separately render 200 selected clips at 1080p on Seedance 2.0, the list-rate estimate is 2,000 × 5 × $0.04 + 200 × 5 × $0.34 = $740; using the listed primary quotes gives $200 + $310 = $510. The selected drafts are still charged: do not count only the discarded ones.
At 1080p list rates, a 5-second text-to-video output is $1.70 on Seedance 2.0 versus $0.75 on Wan 2.7; at 15 seconds it is $5.10 versus $2.25. For 4K Seedance 2.0, the list rate is $1.37/s and the primary BytePlus quote is $1.24/s. Video input can change both the tier and billable seconds; do not reuse these text-only estimates for video-to-video.
When to Pick Seedance 2.0
Reach for Seedance 2.0 when volume and resolution both matter. The three-tier structure lets you meet cost to quality per job instead of paying one flat rate: Mini for throwaway variants and drafts, Fast for approved 720p output, flagship for hero clips that need 1080p or 4K. Because all three share one model-ID prefix and one endpoint, you can route by tier inside your own code without touching auth. If Seedance is settled and the only open question is which tier, Seedance 2.0 vs Fast vs Mini walks that choice resolution by resolution.
It is the right default for e-commerce product video, social ad variants, and any pipeline where you generate hundreds or thousands of short clips and iterate. The 4K ceiling on the flagship also means you do not outgrow it the moment a client asks for a higher-resolution master. The adaptive aspect ratio is a quiet convenience here too: for a mixed feed of 16:9, 9:16, and 1:1 placements, you can let the model fit the frame instead of maintaining three prompt variants.
Where it bites: nothing under 4 seconds, and the cheap tiers stop at 720p. If your whole business is 2-second loops or 1080p-minimum output on a budget, the tier math stops helping.
When to Pick Wan
Pick Wan 2.7 when the clip is short or when you are already invested in Alibaba’s stack. The 2-second minimum duration is a genuine capability Seedance does not have, and for loops, stingers, and micro-transitions that floor is the deciding factor, not the rate. Wan 2.7 also adds video-to-video, which Wan 2.6 lacks, so use 2.7 if you extend or restyle existing footage.
Prompt tuning, reference material and QA also affect the choice. Compare the same output requirements and include migration work and rejected generations in your budget.
When NOT to Pick Either (and What to Use Instead)
Neither Seedance nor Wan is the answer for every job.
- For a talking-head format: HappyHorse 1.1 lists $0.14/s at 720p and $0.18/s at 1080p. Match the model’s supported inputs and your output requirements before comparing costs.
- You need Western-market photorealism at scale, or Sora and Veo specifically. Those run on their own native APIs, not
/v1/videos. We compared them in AI Video Generation APIs Compared: Sora 2 Pro vs Veo 3.1 vs Kling 2.6 Pro, where the takeaway was the opposite of this post: three models, three separate SDKs, no shared endpoint. If Kling is on your list specifically, the Kling 2.6 Pro Video API guide covers it end to end. - Your workload is image, not video. For stills, the ByteDance image sibling is covered in Seedream 4.5 Doubao Image API.
Try Both via ofox: A/B on One Endpoint in 10 Lines
This is where Seedance vs Wan stops being a spec argument. Because both live behind ofox’s POST /v1/videos, you switch models by editing the model string. The call is async, exactly as described above: submit, get a polling_url, poll until completed.
For a low-resolution text-to-video trial, bytedance/seedance-2.0-mini lists $0.04/s at 480p; its primary Volcengine quote is $0.02/s as of September 16. Requests incur charges; this is not a free benchmark.
A/B both models in Python
import os, time, requests
OFOX = "https://api.ofox.run/v1"
HEAD = {"Authorization": f"Bearer {os.environ['OFOX_API_KEY']}"}
def generate(model, prompt):
r = requests.post(f"{OFOX}/videos", headers=HEAD, json={
"model": model,
"prompt": prompt,
"duration": 8,
"resolution": "1080p",
"aspect_ratio": "16:9",
})
r.raise_for_status()
poll = r.json()["polling_url"] # 202 + polling_url
while True:
s = requests.get(poll, headers=HEAD).json()
if s["status"] in ("completed", "failed", "cancelled", "expired"):
return model, s
time.sleep(2) # poll no faster than 1/s
prompt = "A ceramic coffee cup on a wooden table, morning light, steam rising."
for model in ("bytedance/seedance-2.0", "alibaba/wan-2.7"):
print(*generate(model, prompt)) # swap the string, same call
The same call in Node
const OFOX = "https://api.ofox.run/v1";
const HEAD = { Authorization: `Bearer ${process.env.OFOX_API_KEY}`,
"Content-Type": "application/json" };
async function generate(model, prompt) {
const res = await fetch(`${OFOX}/videos`, {
method: "POST", headers: HEAD,
body: JSON.stringify({ model, prompt, duration: 8,
resolution: "1080p", aspect_ratio: "16:9" }),
});
let { polling_url } = await res.json(); // 202 + polling_url
while (true) {
const s = await (await fetch(polling_url, { headers: HEAD })).json();
if (["completed", "failed", "cancelled", "expired"].includes(s.status))
return { model, s };
await new Promise(r => setTimeout(r, 2000)); // poll no faster than 1/s
}
}
const prompt = "A ceramic coffee cup on a wooden table, morning light, steam rising.";
for (const model of ["bytedance/seedance-2.0", "alibaba/wan-2.7"])
console.log(await generate(model, prompt)); // one string swaps the model
Image-to-video: same call, add a frame
To drive either model from a still, pass frame_images instead of relying on the prompt alone. The endpoint reads the payload and switches to image-to-video without a different route:
r = requests.post(f"{OFOX}/videos", headers=HEAD, json={
"model": "bytedance/seedance-2.0",
"prompt": "camera slowly pushes in, steam rises",
"frame_images": ["https://example.com/first-frame.png"],
"duration": 8,
"resolution": "1080p",
})
Two model families, one auth, one schema. That is the practical reason to A/B them instead of picking on the datasheet.
The Seedance API guide has the full Seedance side of this comparison, all four models with prices.
FAQ
Is Seedance 2.0 cheaper than Wan? Not at 1080p. For text-to-video, Seedance 2.0 lists $0.34/s versus Wan 2.7 at $0.15/s. A 5-second output estimate is $1.70 versus $0.75. Seedance’s primary BytePlus quote is $0.31/s, or $1.55 for 5 seconds; it is still higher. Mini and Fast are separate models capped at 720p.
What is the model ID for Seedance 2.0 on ofox?
bytedance/seedance-2.0, bytedance/seedance-2.0-fast, and bytedance/seedance-2.0-mini. Wan is alibaba/wan-2.7 and alibaba/wan-2.6.
Does Seedance 2.0 support 4K?
The flagship bytedance/seedance-2.0 tier lists 4K. Fast and Mini cap at 720p, and Wan caps at 1080p.
Can both generate audio? Yes. All Seedance 2.0 tiers and both Wan versions list synced audio. Wan starts at a 2-second minimum, Seedance at 4 seconds.
Do I need separate API keys?
No. Both run through one ofox key and POST /v1/videos. Swapping models is a one-string change.
Which is better for image-to-video? Both list i2v. Seedance adds v2v on all three tiers; Wan 2.7 adds v2v, Wan 2.6 does not.
What is the cheapest video model on ofox right now? For low-resolution drafts, Seedance 2.0 Mini lists $0.04/s at 480p and $0.08/s at 720p for text-to-video. The September 16 primary Volcengine quotes are $0.02/s and $0.04/s respectively. These are conditional supplier prices, not a universal rate for every mode.
Sources Checked for This Refresh
- Pricing refresh: Ofox catalog
pricing.video_pricing.tiersandprovider_price.pricing.video_pricing.tiers, September 16, 2026. Model resolution and input mode must match the tier; primary supplier offers may change. - ofox Video API reference,
POST /v1/videosasync submit and poll schema: https://ofox.run/docs/api/videos (verified 2026-07-19) - ofox model detail pages (all HTTP 200, verified 2026-07-19): https://ofox.run/models/bytedance/seedance-2.0 · https://ofox.run/models/alibaba/wan-2.7
- ByteDance Seed, Seedance overview: https://seed.bytedance.com/en/seedance
- Alibaba Wan project site: https://www.wan.video/
- ofox video product page: https://ofox.run/video
Frequently Asked Questions
- Is Seedance 2.0 cheaper than Wan?
- Not at 1080p. For text-to-video, Seedance 2.0 lists $0.34/s versus Wan 2.7 at $0.15/s. A 5-second output estimate is $1.70 versus $0.75. Seedance’s primary BytePlus quote is $0.31/s, or $1.55 for 5 seconds; it is still higher. Mini and Fast are separate models capped at 720p.
- What is the model ID for Seedance 2.0 on ofox?
- bytedance/seedance-2.0 for the flagship tier, bytedance/seedance-2.0-fast, and bytedance/seedance-2.0-mini. Wan is alibaba/wan-2.7 and alibaba/wan-2.6. All five run through the same POST /v1/videos endpoint, so switching is a one-string change.
- Does Seedance 2.0 support 4K video?
- The flagship bytedance/seedance-2.0 tier lists 480p, 720p, 1080p, and 4K. The Fast and Mini tiers cap at 720p. Wan 2.6 and 2.7 cap at 1080p. If you need 4K out of the box, Seedance 2.0 flagship is the only one of the two that does it.
- Can Seedance 2.0 and Wan generate audio?
- Both do. Seedance 2.0 (all three tiers) and Wan 2.6 / 2.7 all list supports_audio: true, so you get synced audio without a separate voice pass. Minimum clip length differs: Wan starts at 2 seconds, Seedance at 4 seconds.
- Do I need separate API keys for Seedance and Wan?
- No. Both are behind one ofox key and one endpoint (POST /v1/videos). You send model, prompt, duration, resolution, and aspect_ratio, get a 202 with a polling_url, then poll GET /v1/videos/{id} until status is completed. Swapping models means editing the model field.
- Which is better for image-to-video?
- Both list i2v. Seedance 2.0 also lists video-to-video across all three tiers; Wan 2.7 adds v2v while Wan 2.6 does not. For first-frame or reference-guided runs, the ofox /v1/videos schema infers the mode from whether you pass frame_images or input_references, so the call shape is identical for both models.
- What is the cheapest way to generate AI video in 2026?
- For low-resolution drafts, Seedance 2.0 Mini lists $0.04/s at 480p and $0.08/s at 720p for text-to-video. The September 16 primary Volcengine quotes are $0.02/s and $0.04/s respectively. These are conditional supplier prices, not a universal rate for every mode.


