66 lines
6.9 KiB
Plaintext
66 lines
6.9 KiB
Plaintext
---
|
||
title: 视频 Token 计费
|
||
description: 所有视频模型共用火山式公式定价、预留与用量结算
|
||
---
|
||
|
||
# 视频 Token 计费
|
||
|
||
所有系统视频模型均支持 `billingMode: "token"`,不设协议白名单,包括 `newapi-channel-2`、Ark、Agent Plan 和自定义视频协议。当前统一采用火山式像素帧公式:有有效上游用量时优先采用上游数值;没有有效用量时按提交时保存的公式 Token 数结算。图片和音频仍不开放 Token 定价。
|
||
|
||
## 管理员配置
|
||
|
||
视频 Token 单价单位是「积分 / 百万视频 Token」,保存为每百万 Token 的微积分价格。输入价与缓存价必须为 0,输出价允许为 0(明确免费),最大为 1,000,000 积分。平台不自动导入人民币报价,也不自动调整已有模型价格。
|
||
|
||
同一模型可以按生成方式、分辨率、时长、参考图数量、是否生成音频配置价格档。`selector.videoGenerateAudio` 为字符串 `"true"` 或 `"false"`;不限音频时省略该条件。参考视频使用已有 `operation: "video_to_video"`,不另加参考视频布尔字段。显式关闭音频的 `false` 参与匹配,不能当作未填写。
|
||
|
||
前台逻辑模型沿用渠道价时使用实际命中的规格价格;统一定价时使用逻辑模型的费率。报价和任务预留均按所选线路的上游模型 ID 识别 Seedance 代际,内部展示别名不改变像素表。
|
||
|
||
## 提交前估算与预留
|
||
|
||
参考[火山引擎模型价格](https://www.volcengine.com/docs/82379/1544106)与[视频生成说明](https://www.volcengine.com/docs/82379/2298881),平台统一按 24 FPS 为所有视频模型估算:
|
||
|
||
```text
|
||
公式 Token = ceil((参考视频总秒数 + 输出视频秒数) × 输出宽 × 输出高 × 24 ÷ 1024)
|
||
预留 Token = ceil(公式 Token × 1.10)
|
||
预留微积分 = ceil(预留 Token × 每百万 Token 微积分单价 × 平台倍率 ÷ 1,000,000)
|
||
```
|
||
|
||
10% 是平台预留策略,不属于火山引擎公式,也不保证覆盖最终费用。Seedance 2.x 参考视频有与清晰度、画幅及生成时长相关的最低消耗,供应商没有统一的闭式估算公式;实际费用可能超过预留。
|
||
|
||
像素表按模型代际区分,不将「720p」直接当成固定面积,也不因为模型名含 `fast` 就强制降为 720p。例如:
|
||
|
||
| 模型与规格 | 预估输出像素 |
|
||
| --- | --- |
|
||
| Seedance 1.0,720p,16:9 | 1248 × 704 |
|
||
| Seedance 1.5 / 2.0,720p,16:9 | 1280 × 720 |
|
||
| Seedance 2.5,480p,16:9 | 854 × 480 |
|
||
| Seedance 2.0,4K,4:3 | 3326 × 2494 |
|
||
|
||
完整表在 `backend/internal/app/video_token_billing.go`。自适应画幅使用该清晰度下最大的已知面积;上游型号无法识别代际时使用请求画幅下已知代际的最大面积,并标注尺寸为估算值。`size` 为明确的 `宽x高` 时直接使用像素;其他正数分辨率按短边和画幅推导,长边向上对齐偶数,2K 按 1440p、4K 按 2160p。缺少尺寸配置时平台计价约定为 720p、16:9,并标记尺寸估算;通用分辨率的自适应画幅按 16:9 推导。这些是平台计价规则,不保证上游输出相同像素。无效时长、非法尺寸和溢出仍拒绝,实际可生成规格仍由模型能力校验。
|
||
|
||
参考视频数量和时长限制由所选模型能力校验,通用计费公式不再强制套用 Ark 的 3 个、15 秒限制。任务包含时长元数据时按毫秒合计;时长缺失时公式采用已知时长与 15 秒中的较大值并标注估算。报价接口只接收素材数量,因此参考视频按 15 秒估算;任务创建时的公式快照可因实际元数据而不同。负时长、小数毫秒或整数溢出均拒绝。
|
||
|
||
例如,无参考视频的 Seedance 2.0、720p、16:9、5 秒:公式为 108,000 Token,平台预留 118,800 Token。若管理员配置 16 积分 / 百万 Token、平台倍率为 1,预留 1.9008 积分。16 只是计算示例,不是内置售价。
|
||
|
||
## 成功后的结算
|
||
|
||
Ark 协议读取[查询视频任务接口](https://www.volcengine.com/docs/82379/1521309)返回的 `usage.completion_tokens`,字段缺少时接受 `total_tokens`。其他视频协议按 `completion_tokens`、`output_tokens`、`total_tokens` 的顺序读取;优先字段存在但无效时不改用后续字段。视频不另收文本输入或缓存费用。0、负数、小数、字符串、空值、溢出和非成功状态的用量不视为有效上游用量,转为公式快照结算;不从输入量或不明用量字段推断视频消耗。
|
||
|
||
```text
|
||
实际微积分 = ceil(实际视频 Token × 订单快照中的单价 × 订单倍率 ÷ 1,000,000)
|
||
```
|
||
|
||
账单保存提交时的价格档、单价、倍率、预留量以及不含 10% 余量的 `videoFormulaTokens`。有效上游用量优先结算,记录 `usageSource: "provider"`、`usageAvailable: true`;否则新视频订单采用公式快照,记录 `usageSource: "video_formula"`、`usageAvailable: false`,`outputTokens` 为公式数,账本说明标明公式结算,不伪造上游调用日志。以上 5 秒示例缺少上游用量时结算 1.728 积分,退回预留差额 0.1728 积分。
|
||
|
||
较少的费用退回差额,较多的费用沿用现有补扣机制;Agent 硬预算上限继续生效。失败任务沿用退款或待核对规则,不因存在公式快照就自动收费。没有公式快照的历史收费订单仍要求有效上游用量,不从含预留余量的数量反推历史费用。免费档可零金额完成。数据库读取或实际金额计算出错时仍明确报错,不把错误当成缺少用量。
|
||
|
||
预估与结算共用 `internal/kernel/token_billing.go` 的整数金额算法,汇总 Token 费用、应用倍率后只对最终微积分向上取整,避免合法高单价因中间乘积溢出而被拒绝;最终金额超出 `int64` 范围时明确失败。
|
||
|
||
普通用户在模型选择器、画布生成入口与短剧生产页看到当前参数的「预计」金额,可查看公式 Token、预留余量以及估算边界。参数变更后重新报价;报价本身不创建账单、不冻结积分、不请求上游生成。
|
||
|
||
## 发布与验证
|
||
|
||
前后端需一起发布,并执行 schema v25 `video_token_formula_snapshot`:在 `billing_orders` 增加 `video_formula_tokens`(默认 0)与 `usage_source`(默认空字符串),不重算历史订单、不改既有模型售价。关闭自动迁移的部署先执行新版本 `migrate-schema up`、`migrate-schema verify`,然后启动后端。回退旧二进制需匹配数据库备份和 schema 版本,不能手工伪造迁移记录;旧程序也不支持新音频 selector 和非 Ark 视频 Token 配置。本次仅实现并测试迁移,没有操作真实账号数据库。
|
||
|
||
本地测试覆盖模型像素、公式取整、参考时长、音频分档、免费档、渠道与逻辑模型报价、任务预留一致性,以及真实用量的退差、补扣和非法值拒绝。真实账号页面及真实上游账单仍需按[待测试清单](/docs/progress/pending-test)验收。
|