内容更新日: 2026-06-23
Seedance 2.0 の料金説明
本記事では Crazyrouter の現行コード内における実際の課金ロジック だけを説明します。公式料金ページの一般的な解説ではありません。 対象モデル:doubao-seedance-2-0doubao-seedance-2-0-fast
https://api.crazyrouter.com を使用してください。基本設定は API Endpoint をご参照ください。
結論から先に
Seedance 2.0とSeedance 2.0 Fastはローカルコード上、いずれもper_output_tokenで精算され、秒数精算ではありません。- タスク提出時、これら2種類のタスクは デフォルトで事前課金が0 です。
- タスク成功後、システムは上流から返される
TotalTokensまたはCompletionTokensに基づいて最終的に課金します。 durationはタスク特性として記録されますが、Seedance 2.0 の最終課金式には関与しません。- よって、コード上に**「何 token = 何秒」といった固定のグローバル換算式は存在しません**。
- 「だいたい1秒いくら?」と回答したい場合は、タスク完了後に
实际输出 tokens / 实际秒数で観測値として算出することはできますが、それを固定の課金ルールとはみなせません。
ローカルコードにおける課金ルール
1. どの課金ルールが適用されるか
Seedance 2.0 シリーズの課金ルールは「動画入力の有無」で決まります:
ここでの
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 消費量のみを認めます
観測基準
「このタスクは平均1秒あたり何 token 消費したか」を検証したい場合は、タスク完了後に観測値を計算可能です:実測例:4秒 720p のシンプル動画
下記は実際に Seedance 2.0 を呼び出した結果です。ここから本当にusage をもとに「このタスクの1秒あたりの単価」をどう逆算するのかを説明します。
ケース1:最もシンプルなテキストから動画生成
リクエスト特性:- モデル:
doubao-seedance-2-0 - 入力:テキストのみ(画像や動画リファレンスなし)
- 解像度:
720p - 時間長:
4s - タスクID:
cgt-20260617212928-5s755 - 上流実際返却値:
completion_tokens = 87300、total_tokens = 87300
4s 720p テキスト→動画では、観測単価は約:
ケース2:前回の動画を基にリファレンス動画生成
リクエスト特性:- モデル:
doubao-seedance-2-0 - 入力:テキスト + 前回生成した動画を
reference_videoとして - 解像度:
720p - 時間長:
4s - タスクID:
cgt-20260617214300-rsnsx - 上流実際返却値:
completion_tokens = 173700、total_tokens = 173700
4s 720p リファレンス動画生成の観測単価は約:
この実測値を顧客にどう説明するか
次のように案内できます:usage.total_tokens または usage.completion_tokens で逆算することが推奨されます。
すぐ使える2つの例
例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 はこの1件のタスクにのみ適用されます。
例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課金後の社内クォータ
今後プラットフォームが専用の「秒売りSKU」をSeedance 2.0で導入する場合、そのとき初めて「秒数と価格」の安定した対応が可能になります。しかし2026-06-06時点で、ローカルコードでは未対応です。