更新日期:2026-06-06
Seedance 2.0 计费说明
本文只说明 Crazyrouter 当前代码里的真实结算逻辑,不是泛泛解释官方价格页。 适用模型:doubao-seedance-2-0doubao-seedance-2-0-fast
https://cn.crazyrouter.com,基础设置参考 API Endpoint。
先说结论
Seedance 2.0和Seedance 2.0 Fast在本地代码里都按per_output_token结算,不是按秒结算。- 提交任务时,这两类任务的预扣费默认是 0。
- 任务成功后,系统会根据上游返回的
TotalTokens或CompletionTokens再做最终扣费。 duration会被记录为任务特征,但不会参与 Seedance 2.0 的最终扣费公式。- 因此,代码里不存在一条固定的“多少 token = 多少秒”全局换算公式。
本地代码里的计费规则
1. 命中哪条计费规则
Seedance 2.0 系列的计费规则由“是否包含视频输入”决定:| 模型 | 条件 | Billing Key | 单价 |
|---|---|---|---|
doubao-seedance-2-0 | 不含视频输入 | doubao-seedance-2-0:video0 | 46 / 7 USD / 100万Tokens |
doubao-seedance-2-0 | 含视频输入 | doubao-seedance-2-0:video1 | 28 / 7 USD / 100万Tokens |
doubao-seedance-2-0-fast | 不含视频输入 | doubao-seedance-2-0-fast:video0 | 37 / 7 USD / 100万Tokens |
doubao-seedance-2-0-fast | 含视频输入 | doubao-seedance-2-0-fast:video1 | 22 / 7 USD / 100万Tokens |
video0 / video1 不是秒数,而是:
video0: 请求里没有视频参考输入video1: 请求里带了视频参考输入
model/video_billing_seedance.gorelay/video_billing_runtime.go
2. 提交任务时为什么通常不扣费
在运行时,Seedance 2.0 命中的平台计费模式是per_output_token。这类任务在提交时:
BasePrice会被记录Ratio会被置为0- 所以提交阶段
quota = int(ratio * QuotaPerUnit)结果就是0
relay/video_billing_runtime.gorelay/relay_task.go
- 任务提交成功
- 先不扣,或预扣为 0
- 任务完成后再按真实 token 补扣
最终扣费公式
任务成功后,系统优先走settlePerOutputTokenTaskBilling。
对 Seedance 系列,代码取 token 的优先级是:
taskResult.TotalTokens- 如果上面没有,再取
taskResult.CompletionTokens
controller/task_video.go
controller/task_video.gocommon/constants.go
秒数在代码里扮演什么角色
1. duration 会被识别和记录
代码会从这些位置解析秒数:
req.Durationreq.Secondsmetadata.durationSecondsmetadata.duration_secondsmetadata.durationmetadata.seconds
relay/video_billing_runtime.go
2. 但 Seedance 2.0 不按秒结算
虽然duration 会进入任务画像和日志,但 Seedance 2.0 / 2.0 Fast 命中的模式是 per_output_token,因此:
match.BilledSeconds不会参与结算- 最终扣费只看上游回传的 token
per_second 视频模型不同。
token 和秒数怎么对照
结算口径
不能直接换。 也就是说,在当前代码里没有这样的规则:- Seedance 2.0 的卖价配置不是
per_second - 代码也没有把
duration映射成固定 token 档位 - 最终只认任务完成后的真实 token 用量
观测口径
如果你只是想做“这次任务平均每秒消耗多少 token”的复盘,可以在任务完成后做一个观测值:两个可直接套用的例子
示例 1:doubao-seedance-2-0-fast,带视频输入
假设:
- 命中
doubao-seedance-2-0-fast:video1 - 上游返回
TotalTokens = 1,200,000 quantityMultiplier = 1groupRatio = 1discount = 1
duration = 12,你只能得到一个观测值:
100,000 tokens/s 只对这次任务成立。
示例 2:doubao-seedance-2-0,不带视频输入
假设:
- 命中
doubao-seedance-2-0:video0 - 上游返回
CompletionTokens = 800,000 quantityMultiplier = 1groupRatio = 1discount = 1
duration = 8,只能做观测:
哪些字段值得看
如果你要排查一笔 Seedance 2.0 费用,优先看这些信息:- 请求是否含视频输入
- 命中的
billing_key - 任务完成后上游返回的
TotalTokens/CompletionTokens - 该任务的
groupRatio - 该模型折扣
discount - 最终
task.Quota
billing_modebilling_keybilling_total_pricebilling_output_tokensbilling_billed_tokensbilling_token_kindbilling_settled
relay/relay_task.gomodel/task.gocontroller/task_video.go
一句话理解
对 Seedance 2.0 而言:秒数是请求特征token是结算依据quota是token结算后再换算出来的站内额度
如果后续平台专门给 Seedance 2.0 增加按秒售卖 SKU,那时才会出现稳定的“秒数到价格”映射。但截至 2026-06-06,本地代码还没有这样做。