实测 Seedance API 定价:破解视频 token 计费公式
目录
Seedance 按 token 给视频计费,真正对得上账单的公式是 encoded_width × encoded_height × (24 × seconds + 1) / 1024。其中有两点我们在任何文档里都没找到:那个 +1 帧,以及编码维度用的不是标称分辨率(720p 按 1248×704 计费,而不是 1280×720)。我们在五个 Seedance 模型上跑了 27 次生成,覆盖所有分辨率档位,每一次计费的 token 数都能和这个公式精确对上。本文梳理整个模型家族,讲清两次请求的 API 流程,然后给出破解后的公式、由此推导出的每秒价格阶梯,以及价目表会误导人的两个地方。
TL;DR
- Seedance 视频 token = 编码宽度 × 编码高度 × (24 × seconds + 1) / 1024;+1 帧和编码维度是实测出来的,文档里没有。
- 720p 按 1248×704 计费,1080p 按 1920×1088 计费;宽高比不影响结果。
- 同一段 4 秒片段,从 1.5-pro 往上的每个档位计费的 token 数完全相同;单价从每百万 $1.0 到 $7.0 不等。
- 4k 的 $4.0/M 单价低于 1080p 的 $7.7/M,但每秒要 $0.78,而 1080p 只要 $0.38,贵 2.1 倍。
generate_audio不改变 token 数,在 1.5-pro 上让单价翻倍。
下面所有内容都是 2026-07-22 通过 Synthorai 网关的 /v1/videos 接口实测得到的,Seedance 家族在这里按 ByteDance 目录价上线运行;每个数字背后都有原始的按任务记录支撑。
各个 Seedance 模型分别能干什么?
选档位只改单价,不改计费方式:按能力挑模型,具体价格看后面几节。同一个 4 秒 480p prompt,在 Seedance 2.0、2.0-fast、2.0-mini 和 1.5-pro 上计费的 token 数完全一样(都是 40,594;1.0-pro-fast 因为像素网格略小,计费 39,285)。往上升档多付的钱买的是能力,而这个家族把能力分得并不均匀:
| 分辨率 | 时长 | 音频 | 图像输入 | seed / camera_fixed | 单价($/百万 token) | |
|---|---|---|---|---|---|---|
| 2.0 | 480p-4k | 4-15s(+auto) | ✓ 原生 | 首帧 + 尾帧 | ✗ | $7.0(1080p $7.7 · 4k $4.0) |
| 2.0-fast | 480p-720p | 4-15s(+auto) | ✓ | 首帧 + 尾帧 | ✗ | $5.6 |
| 2.0-mini | 480p-720p | 4-15s(+auto) | ✓ | 首帧 + 尾帧 | ✗ | $3.5 |
| 1.5-pro | 480p-1080p | 4-12s(+auto) | 可开关($1.2 / $2.4) | 首帧 + 尾帧 | ✓ | $1.2-2.4 |
| 1.0-pro-fast | 480p-1080p | 2-12s | ✗ | 仅首帧 | ✓ | $1.0 |
挑模型之前,有三个怪点值得先了解。可复现性是反着来的:seed 和 camera_fixed 只在 1.x 模型上有,所以最便宜的档位反而是可控的,旗舰款倒不行。能力字段按模型硬性限制:给 1.0 模型发 generate_audio 会返回一个带名字的 400(extension_not_supported),所以要按每个模型各自的能力清单来构造请求,别用一套统一的结构。而且只有 1.0-pro-fast 能做到 2 秒的短片段,所以下面破解公式的实测都靠它;更新的模型都从 4 秒起步。表格之外,2.0 模型在平台开放的情况下还能在上游接收参考文件输入(最多 9 张图、3 段视频、3 个音频文件)。
Seedance API 怎么调用?
视频生成是一个异步任务 API:一次 POST 创建任务,约两秒返回,然后你去轮询任务 URL,直到完成。用 Python 写完整流程如下:
import os, time, requests
BASE = "https://synthorai.io/v1"
auth = {"Authorization": f"Bearer {os.environ['SYNTHORAI_API_KEY']}"}
task = requests.post(f"{BASE}/videos", headers=auth, json={
"model": "seedance-1-5-pro-251215",
"prompt": "A paper boat drifting across a rain puddle, cinematic",
"resolution": "720p", "ratio": "16:9",
"duration": 5, "generate_audio": True,
}).json() # returns in ~2s: {"id": "vid_...", "status": "queued", ...}
while task["status"] not in ("completed", "failed", "cancelled"):
time.sleep(8)
task = requests.get(f"{BASE}/videos/{task['id']}", headers=auth).json()
print(task["data"][0]["url"]) # signed MP4, valid 24h
print(task["usage"]["total_tokens"]) # the billing meter this post is about
如果你不想轮询、想直接阻塞等待,在创建请求上加一个 Prefer: wait=60 头,响应会一直挂起,直到视频生成完毕或窗口超时,超时后退回到轮询对象。在我们的测试里,480p 和 720p 视频的生成本身耗时从 20 秒到两分多钟不等。完成任务上的 usage.total_tokens 字段就是计费口径,本文剩下的部分讲的就是它由什么决定。
视频 token 到底是什么?
一个视频 token 是一段固定的输出像素乘以时间:计费数量为 W × H × frames / 1024,其中帧数是 24 × seconds + 1,W×H 是编码器的真实分辨率,而不是分辨率档位上标的那个数字。这两项我们都是从计费口径本身反推出来的。同一分辨率下三种时长的计费 token 数落在一条直线上,残差为零;这条直线的斜率给出每秒 token 数,而在每个分辨率下,它的截距正好等于一帧的 token 数(480p 是 405,720p 是 858,1080p 是 2,040)。用斜率反解 W×H,就得到真实的编码网格:
| 标称档位 | 编码分辨率(实测) | 每秒 token 数 | 每多一帧 |
|---|---|---|---|
| 480p | 864×480(1.0 系列)/ 864×496(1.5/2.0 系列) | 9,720 / 10,044 | 405 / 418 |
| 720p | 1248×704(不是 1280×720) | 20,592 | 858 |
| 1080p | 1920×1088(不是 1920×1080) | 48,960 | 2,040 |
| 4k | 3840×2160(标称即编码) | 194,400 | 8,100 |
一个独立的交叉验证:ByteDance 广为流传的 2.0 计算示例——一段 15 秒的视频约 308,880 token——正好是我们实测 720p 速率的 15 倍,说明 720p 网格在我们拟合所用的 1.0 系列之外也成立(他们的营销算法漏掉了那 +1 帧)。
两个实际影响。宽高比不改变账单:在全部九组配对测试里,16:9 和 9:16 计费的 token 数完全一样,所以竖屏输出不是一个成本层面的决策。另外,那个被广泛引用的近似公式 W × H × 24 × duration / 1024 少算了一帧,而且用了错误的分辨率,这就是为什么第三方估算和真实账单会有几个百分点的偏差。
Seedance 每秒到底多少钱?
把实测的 token 速率乘以各档位的标价,整个模型目录就归结成一条清晰的阶梯:
| 模型 @ 分辨率 | $/秒(实测 token × 标价) |
|---|---|
| seedance-1.0-pro-fast @ 480p | $0.0097 |
| seedance-1.5-pro @ 480p,无音频 | $0.0121 |
| seedance-1.0-pro-fast @ 720p | $0.0206 |
| seedance-1.5-pro @ 480p,含音频 | $0.0241 |
| seedance-2.0-mini @ 480p | $0.0352 |
| seedance-1.0-pro-fast @ 1080p | $0.0490 |
| seedance-2.0-fast @ 480p | $0.0563 |
| seedance-2.0 @ 480p | $0.0703 |
| seedance-2.0 @ 4k | $0.778 |
拿按秒计费的模型在 2026 年 7 月的标价做对照(数据来自公开价格追踪站):Kling 约 $0.07/秒,Sora 2 约 $0.10/秒,Veo 3.1 约 $0.40/秒。Seedance 2.0 在 480p 下的价格和 Kling 持平,还原生自带多轨音频;1.0-fast 档位生成能看的 480p,价格大约只有 Kling 的七分之一。一段 15 秒的 720p 视频,用 2.0 大约 $2.17,用 1.0-pro-fast 则是 $0.31。
4k 更便宜吗?价目表说是,账单说不是
在 Seedance 2.0 上,4k 的每 token 单价最低,$4.0/百万,而 1080p 是 $7.7,但它仍然是菜单里最贵的一项。原因在公式里:4k 每秒产出的 token 大约是 1080p 的四倍(194,400 对 48,960),所以更低的单价换来的却是每秒成本的 2.1 倍,$0.778/秒 对 $0.377/秒。我们的 4 秒 4k 基准样本计费 785,700 个 token,四秒视频花了 $3.14。看任何按 token 计价的价目表时,都要把该分辨率的每秒 token 数放在旁边一起看;在按 token 计费的视频上,标价和账单可能指向相反的方向。
generate_audio 会改变什么?
改变的是单价,不是 token 数。在 1.5-pro 上,同一段 5 秒视频开音频计费 50,638 个 token,关音频也是 50,638 个;标价从静音的 $1.2/M 翻倍到含音频的 $2.4/M,所以带声音的输出成本正好是 2 倍,干净利落,没有隐藏的 token 附加费。在 2.0 系列里,音频包含在模型的单一价格中,不需要做开关档位的换算。如果你的 pipeline 本来就会自己叠加背景音乐,那么静音的 1.5-pro 以 $0.0121/秒 是目录里最划算的选择。
异步视频计费是怎么运作的?
计费挂在上面看到的任务生命周期上:账单只在任务首次报告 completed 时结算一次,无论你轮询多少次。取消这件事对物理规律很诚实:排队中的任务能干净地取消,不产生任何费用;但任务一旦开始运行,上游就会拒绝删除(409),你只能等结果跑完。生成失败不计费。
跑完 27 个任务后有三点运维经验。第一,视频响应带有 token 用量,但没有 cost 字段,这和 chat 的 usage.cost 不同;预算按 token × 你所在档位的单价来算。第二,输出以带签名的 URL 形式返回,有效期 24 小时,要尽快转存到自己的存储。第三,控制好创建节奏:平台限制每个 workspace 每分钟 6 个视频任务,而且每个待处理任务都会按最坏情况的成本从你的余额里预留额度,所以在上游变慢时突发创建,即便最终实际花费没问题,也可能撞上临时的额度不足响应而被弹回。
常见问题
Seedance 2.0 API 现在真的能用吗?
能。那些说要中国区凭证、要排队、分阶段放量的说法(2026 年初的情况)已经过时了。整个 Seedance 系列,包括 2.0,都已经在 Synthorai 网关的 /v1/videos 端点上线,按 ByteDance 的官方标价计费(模型页面:Seedance 2.0、1.5-pro、1.0-pro-fast),其他几个平台也提供了。如果某个页面告诉你 Seedance 2.0 只有体验额度,那它是 API 上线之前的旧内容。
为什么不同服务商的 Seedance 价格差这么多?
因为大多数转售商把 token 计费换算成了自己的每秒或每段固定价,再加上各自的利润和取整,这个换算把与分辨率、时长相关的 token 计算给藏起来了。本文里的公式就是所有报价背后的真实依据:用编码后的尺寸算出 W × H × (24s + 1) / 1024,再乘以官方费率,你就能精确算出任何服务商加了多少价。
宽高比或竖屏格式会额外收费吗?
不会。在我们测试的每个分辨率和时长下,16:9 和 9:16 计费的 token 都完全一样。只有分辨率和时长会影响计费,而且时长是严格的线性关系。
Seedance 2.5 呢?
已经发布,但我们追踪的这些 API 上还没有提供。token 公式以及分档与费率的结构大概率会沿用;等它上线,我们会跑同样的探测。
测量时间为 2026-07-22/23:通过 /v1/videos 完成了 27 次生成,覆盖五个 Seedance 模型,token 数取自每个任务的用量记录,费率取自 ByteDance 标价,能力矩阵取自实时的 /v1/videos/models 目录。竞品的每秒价格是标价,不是实测数据。公式在每个实测点上都完全吻合;编码尺寸是从计费数据反推出来的,如果 ByteDance 改了编码器,请重新验证。本模态系列的其余文章:图像生成、语音转文字、语音会话、文本 token。