Seedance 2.5 样片 API
样片模式让你先生成并预览 480p 视频,确认效果后,再用样片任务 ID 生成 1080p 正式视频。两步共创建 两个独立的 task_id,分别查询、分别计费。
模型与接口
| 项目 | 说明 |
|---|---|
| 模型名 | seedance-2.5 或 doubao-seedance-2-5-260628,以账号已开通的精确名称为准 |
| 创建样片/正式视频 | POST /api/v3/contents/generations/tasks |
| 查询任务 | GET /api/v3/contents/generations/tasks/{id} |
| 本文示例的生产入口 | https://api.exchangetoken.ai |
| 鉴权 | Authorization: Bearer <YOUR_API_KEY> |
账号需开通支持样片模式的 Seedance 2.5 渠道。样片和正式视频必须使用同一个 API Key、同一个精确模型名。
下面示例统一使用 seedance-2.5。如果账号开通的是版本化模型名,请同时替换两次创建请求中的 model。
第一步:创建样片
先设置环境变量:
export ET_BASE='https://api.exchangetoken.ai'
export ET_TOKEN='sk-xxxxxx'创建请求:
curl -sS "$ET_BASE/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer $ET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"content": [
{"type": "text", "text": "一只狐狸在树林中缓慢行走,镜头平稳跟随"}
],
"duration": 5,
"ratio": "16:9",
"resolution": "480p",
"output_format": "mp4",
"draft": true
}'创建响应示例:
{"id": "sg_vid_draft_example"}请保存实际返回的 id,这是后续查询和生成正式视频使用的平台样片任务 ID。
| 字段 | 类型 | 说明 |
|---|---|---|
model | string | 账号已开通的 Seedance 2.5 精确模型名 |
content | object[] | 提示词及模型支持的图片、视频、音频输入 |
draft | boolean | 必须为 true |
resolution | string | 仅支持 480p,省略时平台补为 480p |
duration、ratio、generate_audio、seed | 按各字段类型 | 在样片阶段确定;生成正式视频时不得再次传入 |
output_format | string | mp4 或 mov;官方默认 mp4,以渠道支持情况为准 |
第二步:查询并预览样片
将变量替换为第一步实际返回的 ID:
export DRAFT_TASK_ID='sg_vid_draft_example'
curl -sS "$ET_BASE/api/v3/contents/generations/tasks/$DRAFT_TASK_ID" \
-H "Authorization: Bearer $ET_TOKEN"任务为 queued 或 running 时继续轮询,例如每 10 秒查询一次。只有 status 为 succeeded 后,才能使用该样片生成正式视频。
成功响应示例:
{
"id": "sg_vid_draft_example",
"status": "succeeded",
"content": {"video_url": "https://example.com/draft.mp4"},
"resolution": "480p"
}从实际响应的 content.video_url 预览或下载样片。结果 URL 有时效性,请及时保存。遇到 failed、cancelled 或 expired 时停止轮询,检查失败信息或重新创建样片。
第三步:基于样片生成正式视频
确认样片效果后,将其平台 ID 放入 content.draft_task.id:
curl -sS "$ET_BASE/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer $ET_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"seedance-2.5\",
\"content\": [
{\"type\": \"draft_task\", \"draft_task\": {\"id\": \"$DRAFT_TASK_ID\"}}
],
\"resolution\": \"1080p\",
\"output_format\": \"mp4\"
}"响应会返回一个新的正式视频任务 ID:
{"id": "sg_vid_final_example"}生成正式视频时的约束:
content只能包含一个draft_task,且必须引用成功的样片任务。- 使用 Exchange Token 返回的
sg_vid_...ID,不能填写供应商原始任务 ID。 resolution仅支持1080p,省略时平台补为1080p。draft必须省略或为false。- 不得传入
duration、ratio、seed、generate_audio、omni_reference_task_type,也不能附加文本、图片、视频或音频;这些生成设置由样片复用。 output_format、return_last_frame、watermark等允许重设的输出选项按渠道能力执行;省略这些选项时使用模型默认值,不继承样片取值。- 样片任务有效期为 7 天,从任务创建时间计算。超过有效期需重新创建样片。
- 正式视频使用样片的原渠道,仍受账号权限、额度和限流约束。该流程不支持跨渠道 fallback,也不接受
fixchan/fallback路由覆盖。
输出格式
本文两步都显式设置 output_format: "mp4"。需要 MOV 时可改为 mov;生成正式视频时应再次指定所需格式。
第四步:查询正式视频
使用第三步返回的新 ID:
export FINAL_TASK_ID='sg_vid_final_example'
curl -sS "$ET_BASE/api/v3/contents/generations/tasks/$FINAL_TASK_ID" \
-H "Authorization: Bearer $ET_TOKEN"等待 status=succeeded 后,从本次响应的 content.video_url 获取正式视频。样片 ID 查询的是样片,正式视频 ID 查询的是正式视频。
计费说明
样片和正式视频是两次生成,按各自任务返回的可计费 token 用量独立结算。只生成样片时,仅产生样片费用;确认后创建正式视频,会再产生正式视频费用。
| 样片原始输入 | 样片计价 | 正式视频计价 |
|---|---|---|
| 不包含参考视频 | 无视频输入类别,480p 输出价格 | 无视频输入类别,1080p 输出价格 |
| 包含参考视频 | 有视频输入类别,480p 输出价格 | 有视频输入类别,1080p 输出价格 |
正式视频继承样片原始输入的计费类别,样片视频本身不额外计入输入视频时长。每一步使用该任务提交时对应的账号、模型和渠道价格,以任务实际可计费用量结算。
重复查询同一个任务不会产生新的生成费用。重复提交创建请求会建立新任务,请保存返回的任务 ID 并使用查询接口跟踪结果。
常见错误
错误格式为 {"error":{"type":"...","message":"..."}}。
| HTTP 状态码 | error.type | 处理方式 |
|---|---|---|
400 | invalid_request | 检查分辨率、禁止重复传入的参数、样片成功状态、模型名及 7 天有效期 |
404 | task_not_found | 检查平台任务 ID,并使用创建样片时的同一个 API Key |
409 | draft_channel_changed | 原渠道账号、项目、入口或模型映射已变更,或无法核对原任务渠道信息;重新创建样片 |
429 | rate_limited | 触发用户或渠道限流,稍后重试 |
503 | no_channel / async_task_unavailable | 原渠道不可用或任务服务暂不可用,稍后重试或联系支持 |
