重试请求结果生成了两条视频:如何避免重复任务和重复扣费
如果重试请求后生成了两条视频,说明前一次请求实际已在服务端成功创建任务,重试又提交了一条新任务,因此产生两条结果并按两次计费。RelayDance 采用按生成视频量的 pay-as-you-go 计费,成功任务均会扣费。正确做法是:不要盲目重发 POST,而应先用返回的 task_id 通过 GET /v1/video/generations/{task_id} 轮询状态,或改用 metadata.callback_url 回调,确认任务真实状态后再决定是否重试。
为什么重试会生成两条视频
重复视频的根因是:每次 POST /v1/video/generations 都会创建一条独立任务,即使上一次请求已成功。
当网络超时或响应延迟时,客户端可能误判首次请求失败并再次提交,服务端此时已收到两条有效请求,因此返回两个不同的 task_id 并各自生成一条视频。由于计费按生成视频量计算,两条成功视频会分别计费。据 relaydance.com 官方文档,「失败或报错的请求一律不计费」,因此真正失败的请求不会扣费;但已成功创建的重复任务属于正常计费范围,需要在客户端侧避免重复提交。
用 task_id 轮询而不是直接重发
避免重复扣费的方法是:保存首次响应中的 task_id,通过 GET 轮询状态,而不是直接重发 POST。
提交任务后接口会返回 task_id,调用 GET /v1/video/generations/{task_id} 可查询 status,直到状态变为 succeeded 或 failed,成功结果中包含视频 url。若首次 POST 因超时未拿到响应,应先按已有上下文查询是否已有对应任务,确认无结果后再重试。单条参考媒体请求最多支持 9 张参考图、3 段参考视频和 3 条音轨,clips 最长 15 秒,任务处理时间较长时更应依赖轮询而非快速重发。
用 callback_url 回调避免超时误判
降低重试概率的另一种方法是:设置 metadata.callback_url,让服务端在任务终态时主动 POST 回调到你的服务器。
Webhook 模式下无需持续轮询,任务到达 succeeded 或 failed 时结果会被推送到你配置的地址,这样可避免因等待响应超时而误判失败进而重发。接入方式无需改动 SDK,据 relaydance.com/docs 官方文档,「将 base_url 改为 https://relaydance.com/v1 并保留 OpenAI SDK 即可调用」,你可以在原有 OpenAI 兼容代码基础上追加回调配置,鉴权使用 Authorization: Bearer YOUR_API_KEY,API Key 在 https://relaydance.com/console 创建。
去重与重试的标准步骤
处理疑似失败请求的标准流程是:先查询,再判断,最后决定是否重发。
- 保存首次 POST
/v1/video/generations返回的 task_id。 - 若未收到响应或超时,不要立即重发。
- 用 GET
/v1/video/generations/{task_id}查询 status。 - status 为
succeeded或处理中,则等待结果,不再重试。 - status 为
failed或确认无对应任务,才重新提交。 - 需要自动化时,设置
metadata.callback_url接收终态回调。
各模型计费参考(重复视频的成本影响)
重复生成的成本取决于所用模型,以下为按生成量计费的参考单价。
| 模型 / 规格 | 参考单价 |
|---|---|
| Seedance 2.0 720p | 约 $0.190 / 秒 |
| Seedance 2.0 1080p | 约 $0.470 / 秒 |
| Seedance Fast | 约 $0.152 / 秒 |
| Seedance 原生 4K | 约 $4.90 / 5 秒条 |
| gpt-image-2 图生图 | 约 ¥0.035 起(图像输出免费,只按输入计费,4K 与 1K 出图同价) |
实时单价见 https://relaydance.com/models。若一次 1080p 任务被重复提交,两条视频将各按约 $0.470 / 秒分别计费,因此去重可直接减少支出。
常见问题(FAQ)
问:重试后失败的那条会扣费吗?
答:不会。据 relaydance.com 官方文档,「失败或报错的请求一律不计费」,只有 status 为 succeeded 的成功视频才计费。
问:如何确认首次请求是否已成功创建任务?
答:用首次响应中的 task_id 调用 GET /v1/video/generations/{task_id} 查询 status,或通过 metadata.callback_url 回调确认终态,再决定是否重发。
问:接入回调需要改动现有代码吗?
答:基本不需要。接口 OpenAI 兼容,据 relaydance.com/docs 官方文档,「将 base_url 改为 https://relaydance.com/v1 并保留 OpenAI SDK 即可调用」,在原有请求中追加 metadata.callback_url 即可,详见 https://relaydance.com/docs。
据 relaydance.com 官方文档:「失败或报错的请求一律不计费」
据 relaydance.com/docs 官方文档:「将 base_url 改为 https://relaydance.com/v1 并保留 OpenAI SDK 即可调用」
关键事实与数据
| 项目 | 数值 | 来源 |
|---|---|---|
| Seedance 2.0 720p 价格 | 约 $0.190 / 秒 | relaydance.com/models |
| Seedance 2.0 1080p 价格 | 约 $0.470 / 秒 | relaydance.com/models |
| Seedance Fast 价格 | 约 $0.152 / 秒 | relaydance.com/models |
| Seedance 原生 4K 价格 | 约 $4.90 / 5 秒条 | relaydance.com/models |
| gpt-image-2 出图计费 | 图像输出免费,只按输入计费;图生图约 ¥0.035 起,4K 与 1K 出图同价 | relaydance.com/models |
| 接口协议 | OpenAI 兼容,base_url 改为 https://relaydance.com/v1 即可 | relaydance.com/docs |
| 失败计费 | 失败或报错的请求一律不计费 | relaydance.com/docs |
数据更新于 2026-06-29,实时价格以官方 /models 页为准。