Seedance 2.5 price by hand: width x height x seconds x 24 / 1024

Work out a Seedance 2.5 cost on Sume before you submit: count video tokens, apply the list rate, add the 1.25 margin, round up to the cent. Python included.

5 min readSume
All posts

To price a Seedance 2.5 clip on Sume by hand, count video tokens as width x height x seconds x 24 / 1024, multiply by the list rate per 1,000 tokens ($0.0214, or $0.0234 at 1080p), multiply by 1.25 and round up to the cent. A 5 s 1280x720 clip is 108,000 tokens, which comes to $2.89.

The four steps

The numbers come from packages/provider-pricing/src/pricing-tables.ts and pricing-normalize.ts on main. The catalog says the same in plain words: each row's billable_formula reads list x 1.25 -> ceil usd cents, and GET /v1/videos/models exposes the per-1,000-token rate under pricing_skus.

  • Pick the frame size Sume assumes for your resolution and aspect ratio. 16:9 is 864x496 at 480p, 1280x720 at 720p and 1920x1080 at 1080p.
  • Tokens = ceil(width x height x seconds x 24 / 1024). The 24 is the fixed fps in the estimator.
  • Provider cost = tokens / 1,000 x list rate. The rate is 21,400 micro-dollars per 1,000 tokens, except Seedance 2.5 at 1080p, which uses 23,400.
  • Billable = provider cost x 1.25, rounded up to the next cent.

Worked example

5 s at 720p, 16:9. Tokens: 1280 x 720 x 5 x 24 / 1024 = 108,000. Provider cost: 108 x $0.0214 = $2.3112. Times 1.25 is $2.889, which rounds up to $2.89.

30 s at 1080p, 16:9. Tokens: 1920 x 1080 x 30 x 24 / 1024 = 1,458,000. Provider cost: 1,458 x $0.0234 = $34.1172. Times 1.25 is $42.65.

A calculator you can run

The script below reproduces the three 16:9 frame sizes. It makes no network call and needs no key.

import math

SIZES = {"480p": (864, 496), "720p": (1280, 720), "1080p": (1920, 1080)}
RATE = {"480p": 21_400, "720p": 21_400, "1080p": 23_400}  # micro-USD per 1,000 tokens

def seedance_25_usd(resolution: str, seconds: int) -> float:
    w, h = SIZES[resolution]
    tokens = math.ceil(w * h * seconds * 24 / 1024)
    list_micros = math.ceil(tokens * RATE[resolution] / 1000)
    return math.ceil(list_micros * 1.25 / 10_000) / 100

for res in SIZES:
    print(res, [seedance_25_usd(res, s) for s in (4, 5, 10, 30)])

Where the estimate stops

Reference videos change the maths: see the 15-second assumption in our reference-video note. Non-16:9 ratios move the frame size slightly. Audio does not appear in the formula, because Seedance prices on video tokens.

Duration must be a whole number from 4 to 30 for seedance-2.5. Fast and Mini variants stop at 15 seconds. Always check the numbers against the live catalog, because list rates change and the repo is the only source this note reads.

Sanity checks

Two cross-checks keep you honest. First, tokens per second at 720p 16:9 are 21,600, so every extra second adds $0.578 billable. Second, 1080p 16:9 is 48,600 tokens per second, and at the 1080p rate that is $1.42 per second. Multiply by your length and compare with the table in the catalog or your last invoice line.

The rounding is applied once per job, at the end, not per second. A 4 s clip at 720p is 86,400 tokens and $2.31, while four separate 1 s clips are not possible at all, since the floor is 4 s. If you batch, expect each job to add up to one cent of rounding.

Related posts

More in Pricing

All Pricing posts

Written by Sume