Seedance 2 at $0.014 per 1,000 tokens: read pricing_skus first
fal lists Seedance 2 at $0.014 per 1,000 tokens, not per second. Read Sume's pricing_skus from GET /v1/videos/models, then budget from one real job.

Some video models are priced per second and some per token, and mixing them in one budget is how a bulk run goes over. fal's pricing page, read 2026-10-05, lists H3 Max at $0.05 per second, Kling Video v3 at $0.14 per second and Seedance 2 at $0.014 per 1,000 tokens. Sume's GET /v1/videos/models returns pricing_skus for each model as decimal-USD strings, in the same format OpenRouter uses, so you can read the unit from the catalog instead of from a blog table.
Per second versus per token
A per-second row is easy: seconds times rate. A token row needs a token count, which depends on resolution and duration, so the cost of two clips with the same length can differ. fal's page notes that settings such as resolution, duration and quality may affect the final cost. For a budget, use the catalog's SKU name (for example per-1000-video-tokens) as the unit, and estimate tokens per clip from one real job's usage rather than from a formula you remember.
| Model | fal price | Unit |
|---|---|---|
| H3 Max | $0.05 | per second |
| H3 Max Turbo | $0.025 | per second |
| Kling Video v2.5-turbo | $0.07 | per second |
| Kling Video v3 | $0.14 | per second |
| Seedance 2 | $0.014 | per 1,000 tokens |
Read the SKU from the catalog
Sume's catalog values are Sume billable rates, which are provider list times 1.25 for the Video Router rows. This script prints each model id with its SKU map. It needs a key in SUME_API_KEY.
import json, os, urllib.request
req = urllib.request.Request(
"https://api.sume.com/v1/videos/models",
headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"]},
)
with urllib.request.urlopen(req) as resp:
models = json.load(resp)["data"]
for m in models:
print(m["id"], m.get("pricing_skus"))A budget method that survives token pricing
Run one clip, read its usage.cost from the poll response, and divide by the seconds to get an effective per-second figure for that exact recipe. Multiply by the batch and add headroom. As an illustration only, a clip that consumed 100,000 tokens at $0.014 per 1,000 tokens would be $1.40 before any margin. The point is the method: take the unit from the catalog, take the quantity from a real job, and let the per-item generation_spend_cap_usd on a Format bulk run catch the outliers.
- Do not compare a per-token model to a per-second model on the headline rate alone.
- Re-read the catalog on each batch day; the notes in docs carry the date they were read.
- Record
usage.costfor every job so next month's estimate starts from your data.
Sources
Related posts
More in Pricing
- Seedance reference video: 0.6x rate, but 15 s of input assumed
Seedance reference video bills at 0.6x the token price, but the estimator counts 15 extra input seconds: a 5 s clip with a reference costs 2.4x one without.
- Seedream failed generations: free on that route, free on Sume too
OpenRouter's Seedream 5.0 Flash page says failed generations are not charged. Sume's Image API docs say failed or cancelled generations get no charge either.
- Shortest Sume TTS job: a 1 cent minimum and a 95 cent ceiling
Sume TTS costs $0.0475 per 1,000 characters, 1 cent minimum, 95 cents for 20,000. Cost by length, and why 100 short lines cost more than one job.
- Six AI video test clips under $3 across four Sume models
Six short clips, four Sume video models, one prompt: the grid costs $2.58 and shows which model and resolution is worth a bigger top-up.
Written by Sume