价格用 GET /v1/pricing 估算 AI 视频与图片生成预算
MakerNice 团队 · ·
想估算一批 AI 生成任务在 MakerNice 上要花多少钱,可以从公开的 GET /v1/pricing 接口读取单价,乘以计划的视频秒数或图片张数,再抽样用报价确认。字节跳动的 Seedance 2.5、阿里巴巴的 Wan 3.0 和 Qwen3 Image 都用同一套方法,不需要手抄价格表。
GET /v1/pricing 返回哪些内容?
GET /v1/pricing 不需要 API Key,列出当前价格版本的全部单价。响应最多可缓存 60 秒,用来做规划完全够用。data 里的每一项对应一种组合:
| 字段 | 含义 |
|---|---|
| price_version | 整张价目表所属的价格版本 |
| model | 模型 id,如 seedance-2.5 或 wan-3.0 |
| mode | t2v、i2v、flf、r2v、t2i 或 i2i |
| resolution | 计价分辨率,如 720p 或 1k |
| unit | 视频为 second,图片为 request |
| unit_price | 每单位价格,micro-USD 字符串 |
| unit_price_usd | 同一价格的美元表示,字符串 |
# Find the price row for the exact model, mode and resolution you plan to use
curl -s https://api.makernice.com/v1/pricing | jq '.data[] | select(.model == "seedance-2.5" and .mode == "t2v" and .resolution == "720p")'怎样把单价换算成预算?
用单价乘以每次生成消耗的数量,再乘以计划的生成次数。运算请用整数或十进制小数,因为金额以 micro-USD 为单位,1,000,000 个才是 1 美元。
| 类型 | unit | 每次生成的数量 | 预算公式 |
|---|---|---|---|
| 视频 | second | 时长(秒) | unit_price × 秒数 × 段数 |
| 图片 | request | 1(每次生成一张) | unit_price × 张数 |
from decimal import Decimal
# row is the matching entry from GET /pricing; unit_price is micro-USD per second
unit_price = Decimal(row["unit_price"])
seconds_per_clip = 8
clip_count = 20
total_micro = unit_price * seconds_per_clip * clip_count
total_usd = total_micro / Decimal(1_000_000)
print(total_usd)
用文字走一遍例子:20 段、每段 8 秒,一共 160 秒视频。找到你的模型、模式和分辨率对应的那一行,把单价乘以 160,再除以 1,000,000,就得到美元金额。如果一批任务混用了多个模型或分辨率,就按组分别计算再相加。没有 resolution 字段的模型(如 Kling 3.0 Pro)每个模式只有一行价格,无需选择。
为什么还要用报价确认估算?
价目表用于规划,报价才是有约束力的数字。用真实输入调用 POST /v1/generations/quote,会得到该请求的确切金额,有效 12 分钟、只能用于一次生成。对工作负载里每一种模型、模式、分辨率与时长的组合各取一个报价,再与估算对比。如果两者不一致,对比报价和价目表里的 price_version,就能知道价格是否变过。
一批任务需要钱包里留多少余额?
- 创建任务时金额就会被冻结,所以钱包要覆盖所有在途任务,而不只是最终总价。
- 失败的任务,以及在排队中取消的任务,都会全额释放冻结金额,因此重试失败任务不会让账单翻倍。
- 单笔充值在 $15 到 $1,000 之间,请围绕最大的一批任务安排充值。
- 为每个 Key 设置与用途匹配的花费上限;超过后创建返回 402 key_spend_limit_reached,账户超过每日上限则返回 402 daily_spend_limit_reached。
价格会随时间变化,所以本文不写任何具体数字。以 Pricing 页或 GET /v1/pricing 的实时价目表为准,再用报价确认;冻结、扣款、释放的规则见「视频计价怎么算」一文。


