Pick seedance-2 or seedance-2.5 in code by clip length, with price

A small Python helper that sends clips up to 15 s to seedance-2 and longer ones to seedance-2.5, with the 720p price from Sume token math. Runs as written.

4 min readSume
All posts

Seedance 2.0 on Sume tops out at 15 seconds and Seedance 2.5 reaches 30, so a simple rule routes clips of 15 seconds or less to seedance-2 and longer clips to seedance-2.5. At 720p that is $5.67 against $8.67 for 15 seconds. The helper below applies the rule and prints an estimate from Sume's token formula. It chooses by length and price only; it does not claim either model looks better.

The limits behind the rule

The Video generation docs list seedance-2 durations from 4 to 15 seconds, and the Video Router docs say seedance-2.5 accepts 4 to 30. BytePlus describes Seedance 2.5 as 4 to 30 seconds natively (BytePlus: Dreamina Seedance 2.5). Read supported_durations from the catalog if you want the rule to follow the live data.

The helper

Sume's pricing is video tokens: width x height x seconds x 24 / 1024, at a list rate per 1,000 tokens, times 1.25. The rates below are the 720p list rates in the pricing code read on 2026-10-04; the 2.5 list rate for 1080p is higher, so this helper is for 720p only.

import math

LIST_PER_1000_TOKENS = {"seedance-2": 0.014, "seedance-2.5": 0.0214}


def pick_model(seconds: int) -> str:
    if not 4 <= seconds <= 30:
        raise ValueError("Seedance accepts 4 to 30 seconds")
    return "seedance-2" if seconds <= 15 else "seedance-2.5"


def price_720p(model: str, seconds: int) -> float:
    tokens = math.ceil(1280 * 720 * seconds * 24 / 1024)
    return round(tokens / 1000 * LIST_PER_1000_TOKENS[model] * 1.25, 2)


for seconds in (5, 15, 16, 30):
    model = pick_model(seconds)
    print(seconds, model, price_720p(model, seconds))

What it prints

Run it and compare against the table. Prices are estimates from Sume's list x 1.25 rule; the live number is in the catalog and on the job.

Helper output at 720p, Sume list x 1.25, computed from the pricing code, 16:9 or 9:16, no reference video (read 2026-10-04)
SecondsModel chosenEstimate
5seedance-2$1.89
15seedance-2$5.67
16seedance-2.5$9.24
30seedance-2.5$17.33

Where it can mislead

A cheaper model is only cheaper if its result is good enough. If 2.0 needs more takes than 2.5 for your content, the rule loses money; see cost per kept second. Note the step at 16 seconds: the price jumps because the model changes, not because of one extra second. Send the chosen id in the model field of POST /v1/video-router/generate.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume