失败的生成不扣费
Makernice 不对失败的 AI 视频或图片生成扣费。创建生成任务时,会从你的预付余额中冻结报价金额。任务完成后,冻结金额转为扣费。如果任务失败或超时,冻结金额全额释放。开始生成前被输入审核拒绝,或在排队期间取消,同样全额释放。唯一的例外:成品如果因违反政策被输出审核拦截,这次任务仍会扣费,可以联系客服人工复核。
适用于同一个 API Key 下的全部 16 个模型。来源:退款政策 §2 · API 文档:价格与计费。最近核对:2026 年 10 月 21 日。
Prices as of October 22, 2026 (price list v5).
怎么运作:报价 → 冻结 → 扣费或释放
- 报价。
POST /v1/generations/quote按模型、模式、分辨率和时长返回确切金额(视频按秒计价,图片按张计价)。价格锁定 12 分钟(expires_at)。报价免费,不冻结任何金额。 - 冻结。 带上
quote_id调用POST /v1/generations才会冻结该金额;余额只在此时被占用,并在生成进入终态时结算。任务以status: "queued"和billing: "held"开始。钱仍在你的余额里,只是被预留。 - 任务完成时扣费。 生成到达
succeeded时,冻结金额被扣掉(billing: "charged");成品通过审核后即可下载。 - 失败时释放。 如果以
failed或canceled结束,冻结金额全额释放(billing: "released")。不用申请、不用等待:它自动发生。
| 最终状态 | billing | 你的钱会怎样 |
|---|---|---|
queued / generating / moderating | held | 已预留,未扣费 |
succeeded | charged | 任务成功时按报价金额扣费 |
failed | released | 冻结金额全额回到余额 |
canceled(只能在 queued 时) | released | 冻结金额全额回到余额 |
succeeded,输出 state: "blocked"(成品未通过输出审核) | charged | 已扣费;没有文件地址。发邮件到 support@makernice.com 申请人工复核(中文或英文均可) |
checking | held | 确认结果期间保持冻结;只有确认生成成功才扣费 |
释放的冻结不是退款。钱从未离开你的余额,所以没有退款申请、没有等待期,也不会走支付渠道。
什么算失败的生成?
| 发生了什么 | 扣费吗? | API 里看到什么 |
|---|---|---|
| 模型服务商报告生成失败 | 不扣,释放冻结 | status: "failed",error.code 例如 generation_failed 或 upstream_unavailable |
| 任务超过最长运行时间 | 不扣,释放冻结 | status: "failed",error.code: "timeout" |
| 我们这边的内部错误中止了任务 | 不扣,释放冻结 | status: "failed" |
| 输入审核在生成前拒绝了提示词或输入图片 | 不扣,释放冻结(或从未冻结) | error.code: "content_rejected",error.reason = prompt、input_image 或 model |
| 输入图片无法使用(访问不到、太大、格式不对) | 不扣,释放冻结 | error.code: "invalid_request",error.input 指出是哪张图 |
你在任务仍为 queued 时取消 | 不扣,释放冻结 | status: "canceled" |
| 请求在任务存在之前就被拒绝(密钥无效、正文不合法、缺字段、余额不足、限流、报价不匹配) | 不扣,从未冻结 | HTTP 4xx,例如 401 invalid_api_key、400 invalid_request、402 insufficient_balance、429 rate_limited |
| 结果不明(例如服务商没有响应) | 只有确认成功才扣 | status: "checking",billing: "held" |
| 已经生成,但成品被输出审核拦截 | 扣,已扣费(只有客服人工复核后才可能退款) | billing: "charged",输出 state: "blocked",文件地址为空 |
| 生成成功,但你不喜欢结果 | 扣 | status: "succeeded",billing: "charged" |
质量不算失败:视频或图片只要已经交付就会扣费,不论你是否满意。所以每个模型页都会先列出一条低分辨率短片试跑的费用。
例子(价表 v5,2026 年 10 月 22 日)
API 里的金额是 micro-USD 字符串(1,000,000 = $1.00)。
1 · 一条 10 秒、720p 的 Seedance 2.5,运行超时
- 报价:$0.2592/秒 × 10 秒 = $2.59 →
"amount": "2592000"。 - 创建 →
billing: "held"。运行期间,可用余额少显示 $2.59。 - 任务超过最长运行时间 →
status: "failed",error.code: "timeout",billing: "released"。 - 净成本:$0.00。
/events时间线以failed_refunded结束。
{
"id": "gen_…",
"model": "seedance-2.5",
"status": "failed",
"amount": "2592000",
"billing": "released",
"outputs": [],
"error": { "code": "timeout", "message": "…" }
}2 · 一条 5 秒的 Kling 3.0 Pro,生成成功
- 报价:$0.1612/秒 × 5 秒 = $0.81 →
"amount": "806400"。 - 创建 → 冻结 →
succeeded→billing: "charged"。净成本:$0.81,正好是报价金额,即使运行期间价格变了也一样。
3 · 一条 5 秒、480p 的 MiniMax H3 Max Turbo 草稿,你不再需要它
- 报价:$0.03/秒 × 5 秒 = $0.15。它还在
queued时你取消 →POST /v1/generations/{id}/cancel→status: "canceled",billing: "released"。净成本:$0.00。 - 如果已经开始(
generating),取消会返回409 not_cancelable,任务继续走到正常结果。
4 · 提示词被审核拦截
- 如果提交时提示词就被拦截,你会收到
422 content_rejected,什么都不会冻结。如果服务商的安全策略稍后拒绝它,生成以failed结束,error.code: "content_rejected",冻结金额释放。两种情况净成本都是:$0.00。 - 如果视频已经生成,但成品被输出审核拦截,这次任务会扣费(
billing: "charged",输出state: "blocked",没有文件地址)。发邮件到 support@makernice.com 申请复核。
在代码里处理(Python)
import time, requests
def wait_for(gen_id, headers, api="https://api.makernice.com/v1"):
while True:
gen = requests.get(f"{api}/generations/{gen_id}", headers=headers).json()
if gen["status"] == "succeeded":
return gen # billing == "charged"
if gen["status"] in ("failed", "canceled"):
# billing == "released": the full hold is already back in your balance
raise RuntimeError(f"{gen['status']}: {gen.get('error')}")
time.sleep(5) # queued / generating / moderating / checking更想用 webhook?generation.failed 和 generation.canceled 在冻结金额释放之后发送;generation.succeeded 在扣费之后发送。见 Webhooks。
另外两项保护余额的措施
- 重试不会扣两次。
POST /v1/generations必须带Idempotency-Key。用同一个 key、同一份报价和同一份输入重复请求,会返回原来的那次生成,不会再次扣费。(幂等) - 按 Key 的花费上限。 每个 API Key 都可以设花费上限和过期日。会让某个 Key 超过上限的请求,在冻结任何金额之前就以
402 key_spend_limit_reached拒绝。失败和取消的生成不计入该 Key 的花费。(认证)
接入任何 AI 视频 API 之前要核对什么
在任何 AI 视频 API 上开发之前,可以先问这几个问题:
- 失败或超时的任务是扣费、部分扣费,还是免费?
- 钱是在提交时扣,还是在任务完成时扣?
- 内容审核拒绝要不要钱,生成前和生成后分别怎样?
- 能不能取消排队中的任务,钱会不会退回?
- 价格是运行前锁定,还是事后再算?
- 重试是否幂等,网络错误会不会扣两次?
在 Makernice 上,答案是:免费 · 任务完成时扣费 · 生成前不扣费(被拦截的成品会扣费)· 可以,全额退回 · 报价锁定 12 分钟 · 是的。
常见问题
Makernice 会对失败的 AI 视频生成扣费吗?
不会。Makernice 在你创建生成任务时冻结报价金额。任务完成后,冻结金额转为扣费。如果任务失败或超时,冻结金额全额释放。开始生成前被输入审核拒绝,同样全额释放。唯一的例外:成品如果因违反政策被输出审核拦截,这次任务仍会扣费,可以联系客服人工复核。这适用于全部 16 个视频和图片模型。
什么算失败的生成?
当模型服务商报告失败、任务超过最长运行时间、内部错误导致中止、输入审核在生成前拒绝提示词或输入图片,或输入图片无法使用时,这次生成按失败处理。以上每一种情况都会全额释放冻结金额。
释放的冻结金额多久回到余额?
释放的冻结金额通常在任务结束时就会反映到余额里。因为这笔钱只是被冻结、并没有扣走,所以不需要提交退款申请,也没有支付渠道的等待时间。
如果我不喜欢结果,还要付钱吗?
要。生成成功就会按报价金额扣费,不论输出的质量、风格或相关性如何。想降低这种风险,先用低分辨率跑一条短片,并用报价在运行前看清确切价格。
我可以取消生成并把钱拿回来吗?
可以,只要它还在排队:用 POST /v1/generations/{id}/cancel 取消,冻结金额会全额释放。一旦进入 generating 就不能停,取消会返回 409 not_cancelable。
如果模型服务商没有响应会怎样?
生成任务会显示状态 checking,金额继续冻结,直到我们确认结果。只有确认生成成功才会扣费;否则释放冻结金额。
重试会扣我两次钱吗?
不会。创建生成任务必须带 Idempotency-Key 请求头。用同一个 key、同一份报价和同一份输入重复请求,会返回原来的那次生成,不会再次扣费。
没用完的余额可以退款吗?
未使用的余额原则上不退,但永不过期。重复充值或误充值可以申请复核:发邮件到 support@makernice.com(中文或英文均可)。失败的生成从不需要退款,因为它们根本不会被扣费。
如果我的输出被审核拦截会怎样?
如果输入审核在生成前拒绝了你的提示词或图片,这次生成失败,不扣费。如果视频已经生成,成品随后被输出审核拦截,这次任务会扣费,并且不会交付文件。请发邮件到 support@makernice.com,我们会复核。
相关
- 价格 — 实时单价,充值从 $15 起(至 $1,000),无订阅
- AI 视频 API 怎么计费 — 价格 = 单价 × 秒数,报价锁定 12 分钟
- API 文档:价格与计费 · 查询状态 · 取消 · 幂等
- 视频 API 最佳实践:幂等、429 与轮询
- 退款政策
- 全部 16 个模型