概览
这些接口面向已经使用火山风格 Seedance 任务结构的团队。它们保留任务式请求和响应结构,同时使用 TokenLab 的鉴权、计费、模型可用性和任务轮询。 另见 Seedance 2.0 视频模型 和 视频生成。鉴权与入口
- 使用
Authorization: Bearer <TOKENLAB_API_KEY>。 - 当前版本不接受火山 AK/SK 签名。只带 AK/SK 签名而没有 TokenLab Bearer 的请求会返回火山风格鉴权错误。
- 使用官方任务路径:
POST /api/v3/contents/generations/tasks。 - TokenLab 仍保留已有 Action 别名用于向后兼容,但它不属于官方线级兼容任务契约。
内容规则
type: "text"表示提示词文本。type: "image_url"不传role或传role: "first_frame"时按首帧处理。role: "last_frame"必须和首帧一起使用。role: "reference_image"、reference_video、reference_audio表示参考素材。image_url.url可以是公网图片 URL,也可以是asset://asset-YYYYMMDDHHMMSS-xxxxx形式的 TokenLab 素材 URI;role决定该素材是首帧、尾帧还是参考图。- 同一个请求里不要混用首尾帧输入和参考素材。
- REST 请求体只接受官方顶层字段。顶层
material_asset_id、material_asset_ids、priority等 TokenLab 扩展字段会被拒绝;TokenLab 素材 URI 应放入官方image_url.url对象中。
参数说明
ratio支持16:9、4:3、1:1、3:4、9:16、21:9或adaptive。duration表示秒数,也支持模型允许的自动时长值。resolution可传480p、720p或1080p。generate_audio官方默认值是false;需要同步音频时显式传true。watermark、return_last_frame、seed、execution_expires_after和safety_identifier在符合所选模型规则时可用。callback_url可填写公网 HTTP(S) 地址。TokenLab 会校验并保存该地址,不会把它透传给执行任务的服务商。
Callback 回调
传入callback_url 后,每次任务状态变化时 TokenLab 都会发送 HTTP POST。回调状态包括 queued、running、succeeded、failed 和 expired。无论任务最终由哪个服务商处理,JSON body 都与查询任务接口返回的任务对象完全一致。
接收端返回任意 2xx 即确认送达。对于 succeeded 和 failed,五秒内未成功送达时最多重试三次,与火山官方行为一致。回调只包含标准 JSON Content-Type,不附加 TokenLab 私有 header。回调不会跟随重定向,内网和保留地址会被拒绝。
回调只是通知。建议保留轮询,作为回调端长时间不可用时的兜底。
图片准备
content[] 中包含图片 URL 时,TokenLab 会在所选 Seedance 模型需要素材引用时把它们准备为可复用素材。如果 60 秒内仍未准备完成,创建请求会返回可重试的素材准备中错误,而不是提交一个不完整的视频任务。
使用已有 TokenLab 素材时,请传公开的 asset-YYYYMMDDHHMMSS-xxxxx ID,不要传其他系统返回的原始素材 ID。TokenLab 会在生成前校验素材归属。
创建响应
幂等重试与创建响应丢失
生产创建请求建议携带唯一的Idempotency-Key,并把该 key 与完整 JSON 请求体一起保存。如果连接在收到创建响应前断开,请使用同一个 TokenLab API 凭据、同一个 key 和不变的请求体重试:
- 原任务已经创建时,TokenLab 返回相同的
cgt-...ID,并附带Idempotency-Replayed: true。 - 原请求仍在注册时,返回
409 IdempotencyRequestInProgress和Retry-After;等待指定时间后继续用同一 key 和请求体重试。 - 同一个 key 配不同请求体时返回
409 IdempotencyConflict,不会再创建第二个任务。
X-Request-ID 或“请求体碰巧相同”自动当成幂等键。
示例
REST 创建
content[] 结构并明确用途:
下一步
使用返回的cgt-... ID 调用 查询任务(火山兼容),直到任务进入终态。