Seedance publishes two token rates. Jobs that include an input video are billed at the lower one — about 40% below the text-only rate. It is right there in the rate card, it is the same on every provider that resells the model, and it looks like an easy way to spend less.
We ran the controlled test. A clip with an input video costs about 4.5% more, not 40% less. And once you follow the numbers down to the frame, the 40% turns out to be unreachable at every duration the model accepts — the best case is a rounding-level tie. Here is the measurement, and the arithmetic.
The test
One variable. Everything else held byte-for-byte identical: the same prompt string, 4 seconds, 480p, 16:9, no audio, same provider, same account.
| Tokens actually billed | What that converts to | |
|---|---|---|
| A — no input video | 38,830 | 97 frames = 4.04s |
| B — with a 2-second input video | 67,652 | 169 frames = 7.04s |
B was billed for 7.04 seconds. Two seconds of input plus four seconds of output is six seconds. The extra second is not a rounding artifact.
Where the extra second comes from
For jobs that include a video input, Seedance applies a minimum token charge, and that minimum is computed from the output duration:
minimum tokens = ceil(output seconds × 5 ÷ 3) × 24 × width × height ÷ 1024
For a 4-second clip: ceil(4 × 5 ÷ 3) = ceil(6.67) = 7 seconds. That floor takes over, and you are billed for 7 seconds regardless of the 6 you actually used.
Now put the two mechanisms side by side:
5/3 × (42/70) = 1.000000
The multiplier inside the minimum-charge formula and the discount ratio between the two rate tiers cancel exactly. Not approximately — to six decimal places. The cheaper tier and the higher floor are designed to offset each other.
Which raises the obvious question: if they cancel exactly, why did B cost 4.5% more? Because at 4 seconds the floor rounds up. 4 × 5/3 is 6.67, and you cannot bill two thirds of a second — ceil pushes it to 7. That rounding is the entire gap. On output lengths where out × 5/3 lands on a whole number, there is nothing to round and the two mechanisms really do cancel. We will come back to that.
Two independent providers, the same number
Before publishing this we checked it was not one provider's quirk. We ran the same parameter set through a second, unrelated API provider on a different date.
67,652 tokens. Digit for digit identical.
Two providers, no relationship to each other, same parameters, same number. This is not a billing implementation detail on someone's server — it is how the model itself meters. Which also means there is no arbitrage here: switching providers to escape the floor does not work, because the floor is not theirs.
So when does the discount actually show up?
Almost never — but "never" turns out to be the wrong word, and the reason is hiding in the two numbers above.
Look again at the frame counts. 97 frames for a 4-second clip, 169 for a 7-second one. Not 96 and 168. Billing is per frame, and a clip of T seconds is 24T + 1 frames — there is one extra head frame in every segment.
That single frame is what stops the two mechanisms from cancelling exactly. In seconds, 5/3 × 42/70 is precisely 1. In frames it is not, and the residue tips very slightly toward the input-video side.
Working it out across every output length the model accepts, with a 2-second input video:
| Output | Billed as | vs text-only |
|---|---|---|
| 4s | 7s | +4.5% |
| 5s | 9s | +7.6% ← worst case |
| 6s | 10s | −0.28% |
| 9s | 15s | −0.18% |
| 10s | 17s | +1.8% |
| 15s | 25s | −0.11% |
| 30s | 50s | −0.06% |
Nine of the twenty-seven valid output lengths come out marginally cheaper. All nine are multiples of three seconds — exactly the lengths where out × 5/3 lands on a whole number and the floor stops rounding up. Everything else costs between 1.8% and 7.6% more.
So the honest version of the finding:
- The 40% never arrives as 40%. Not at any duration.
- On most lengths you pay 2% to 7.6% more for attaching an input video.
- On multiples of three seconds with a short input, you break even — technically ahead by about a tenth of a percent, which is the head frame, not a discount.
We checked this against our own panel too: a 30-second output with a 4-second reference prices out at a multiplier of 0.9969 against the text-only equivalent. Three tenths of one percent. That is what the "40% cheaper tier" is worth in practice.
The cheaper tier is not a discount you can capture. It is the price of a longer meter.
Why we bothered
We are a platform. The rate card said one thing, and we were about to repeat it to our users. Repeating a vendor's rate card without testing it is how a platform ends up telling people something that is technically accurate and practically false.
The single-unit prices in that rate card are correct. The conclusion everyone draws from them is not.
If you are choosing between models on cost, do not compare rate cards — compare the token counts that come back from two identical jobs. That number is the only one that has your money in it.