BytePlus lists Seedance 2.5 as dreamina-seedance-2-5-260628. Its published five-second, 16:9 examples cost $0.514 at 480p and $1.156 at 720p without video input. The model is worth controlled testing, but an application should verify account, region, endpoint, parameters, and returned usage before treating it as a production dependency.
The official numbers
| Item | Published value |
|---|---|
| Model ID | dreamina-seedance-2-5-260628 |
| Rate without video input | $10.70 / 1M tokens |
| Rate with video input | $6.40 / 1M tokens |
| 5s 480p, no video input | $0.514 |
| 5s 720p, no video input | $1.156 |
Video-input requests use a lower token rate, but input duration increases token consumption. For a five-second output, BytePlus lists $0.553-$2.152 at 480p and $1.244-$4.838 at 720p as input-video duration grows from the low range to 30 seconds.
These are official examples, not a universal per-second quote. Final usage should come from the response field documented by BytePlus: usage.completion_tokens.
Why I am not including a fake API call
ByteDance's launch material describes up to 30-second audio-video generation, references, extensions, and editing. The exact API contract and account rollout still need to be checked in the target project. Copying a Seedance 2.0 payload and changing only the model ID is not a safe migration strategy.
The following harness is provider-neutral. It lets a team calculate a planning budget and log acceptance economics before wiring an endpoint.
A runnable cost-per-accepted-clip calculator
from dataclasses import dataclass
from decimal import Decimal
@dataclass(frozen=True)
class Scenario:
resolution: str
price_per_successful_clip: Decimal
acceptance_rate: Decimal
review_cost_per_accepted_clip: Decimal = Decimal("0")
def validate(self) -> None:
if not (Decimal("0") < self.acceptance_rate <= Decimal("1")):
raise ValueError("acceptance_rate must be greater than 0 and at most 1")
if self.price_per_successful_clip < 0:
raise ValueError("price_per_successful_clip cannot be negative")
if self.review_cost_per_accepted_clip < 0:
raise ValueError("review cost cannot be negative")
def generation_cost_per_accepted(self) -> Decimal:
self.validate()
return self.price_per_successful_clip / self.acceptance_rate
def total_cost_per_accepted(self) -> Decimal:
return self.generation_cost_per_accepted() + self.review_cost_per_accepted_clip
def main() -> None:
examples = [
Scenario("480p", Decimal("0.514"), Decimal("0.70"), Decimal("0.30")),
Scenario("720p", Decimal("1.156"), Decimal("0.70"), Decimal("0.30")),
]
for item in examples:
print(
item.resolution,
"generation/accepted=",
item.generation_cost_per_accepted().quantize(Decimal("0.01")),
"total/accepted=",
item.total_cost_per_accepted().quantize(Decimal("0.01")),
)
if __name__ == "__main__":
main()
The 70% acceptance rate and $0.30 review cost are examples. Replace them with measured values. The script deliberately does not pretend that a creative rejection is a provider failure: a successfully generated but unusable clip is still part of the production cost.
What to log when the endpoint is enabled
Use one record per generation:
{
"run_id": "eval-001",
"model": "dreamina-seedance-2-5-260628",
"resolution": "720p",
"input_video_seconds": 0,
"output_video_seconds": 5,
"completion_tokens": 0,
"terminal_state": "succeeded",
"review_result": "accepted",
"charged_usd": 0
}
The zero values are placeholders for your provider response. Keep model usage, charge, terminal state, and creative review separate so a dashboard can distinguish moderation failures, infrastructure failures, and quality rejection.
A safe evaluation order
- Probe the model ID in the intended account and region.
- Reproduce the 480p and 720p five-second examples.
- Add a short reference video, then a long reference video.
- Test complex motion and multiple interacting subjects.
- Measure accepted clips, revision time, queue time, and returned usage.
- Canary only after a tested fallback is available.
CometAPI can be useful as one operational layer when a team is comparing several video routes, but its current Seedance 2.5 catalog availability must be checked at publish time. A gateway does not remove provider-specific parameter or billing differences.
Top comments (0)