Seedance
Seedance 2.0 与 2.5 视频生成接口文档:多模态创作、任务查询与参数说明。
Seedance 采用异步任务模式:提交创建请求后获得任务 ID,再通过查询接口轮询任务状态并获取视频地址。
接口一览
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/v3/contents/generations/tasks | 创建视频生成任务 |
| GET | /api/v3/contents/generations/tasks/{task_id} | 查询任务状态与结果 |
| POST | /api/assets/upload | 上传素材 |
| GET | /api/assets/{asset_id} | 查询单个素材 |
| GET | /api/assets | 查询素材列表 |
基础地址:https://token.aiznt.com
认证:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json模型与能力
| 模型 | Model ID | 时长 | 分辨率 | 输出格式 |
|---|---|---|---|---|
| Seedance 2.0 | doubao-seedance-2-0-260128 | 4–15 秒 | 480p、720p、1080p、4k | mp4 |
| Seedance 2.0 Fast | doubao-seedance-2-0-fast-260128 | 4–15 秒 | 480p、720p | mp4 |
| Seedance 2.0 Mini | doubao-seedance-2-0-mini-260615 | 4–15 秒 | 480p、720p | mp4 |
| Seedance 2.5 | doubao-seedance-2-5-260628 | 4–30 秒 | 480p、720p、1080p | mp4、mov |
两个版本均支持文生视频、首帧/首尾帧生视频、图片或视频参考、视频编辑、视频延长、生成有声视频和水印。2.5 另外支持最多 50 个全模态参考素材、纯音频参考、adaptive 比例、duration: -1 和 omni_reference_task_type。
素材库
素材库用于预先上传图片、视频或音频,并在视频生成请求中通过素材 URI(asset://<asset_id>)引用。上传为异步处理:先创建素材组、上传素材并取得素材 Id,再轮询素材状态;只有 Status 为 Active 的素材才能用于生成。
素材按 API Key 所属用户隔离,接口与火山引擎方舟素材库(Assets)API 完全兼容。素材组管理、素材上传/查询/更新/删除、分页方式与素材规格的完整说明,请参见 Seedance 素材库。
创建任务
POST /api/v3/contents/generations/tasks
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型 ID |
content | array | 是 | 文本提示词和参考素材 |
content[].type | string | 是 | text、image_url、video_url 或 audio_url |
content[].text | string | 条件 | 文本提示词 |
content[].image_url.url | string | 条件 | 图片 URL |
content[].video_url.url | string | 条件 | 视频 URL |
content[].audio_url.url | string | 条件 | 音频 URL |
content[].role | string | 条件 | reference_image、reference_video、reference_audio、first_frame 或 last_frame |
generate_audio | boolean | 否 | 是否生成音频 |
resolution | string | 否 | 480p、720p、1080p;2.0 标准版还支持 4k |
ratio | string | 否 | 21:9、16:9、4:3、1:1、3:4、9:16;2.5 还支持 adaptive |
duration | integer | 否 | 2.0:4–15 秒,不支持 -1;2.5 普通任务和首帧/首尾帧任务:4–30 秒或 -1;2.5 视频编辑必须为 -1,视频延长支持 4–30 秒或 -1 |
output_format | string | 否 | 仅 2.5 支持设置;可选 mp4、mov。2.0 输出格式固定为 mp4 |
watermark | boolean | 否 | 是否添加“AI生成”水印 |
return_last_frame | boolean | 否 | 是否返回视频尾帧图(2.0 官方参数) |
omni_reference_task_type | string | 否 | 2.5:auto、reference、edit、extend |
tools | array | 否 | 2.0 联网搜索:[{"type":"web_search"}],仅适用于纯文本输入 |
素材可通过 URL、Base64 或素材 URI 传入:图片支持三种方式,视频支持 URL 或素材 URI,音频支持 URL、Base64 或素材 URI。素材库 ID 必须写成 asset://<asset_id>,不能直接传裸 ID。提示词引用素材时,请使用“图片1”“视频1”“音频1”这类名称;序号按请求体中同类素材的出现顺序从 1 开始,不支持直接在提示词中使用 Asset ID。
文生视频(Seedance 2.5)
curl -X POST https://token.aiznt.com/api/v3/contents/generations/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5-260628",
"content": [{"type": "text", "text": "一段高级、极具电影感的30秒3D动态图形序列,采用蒸汽朋克与复古微缩景观风格。"}],
"generate_audio": true,
"ratio": "16:9",
"duration": 30,
"output_format": "mp4"
}'全模态参考(Seedance 2.5)
{
"model": "doubao-seedance-2-5-260628",
"content": [
{"type": "text", "text": "全程使用视频1的第一视角构图,全程使用音频1作为背景音乐。"},
{"type": "image_url", "role": "reference_image", "image_url": {"url": "https://example.com/image.jpg"}},
{"type": "video_url", "role": "reference_video", "video_url": {"url": "https://example.com/video.mp4"}},
{"type": "audio_url", "role": "reference_audio", "audio_url": {"url": "https://example.com/audio.mp3"}}
],
"generate_audio": true,
"ratio": "16:9",
"duration": 11,
"omni_reference_task_type": "reference"
}首帧/首尾帧生视频
首帧任务必须在 content 中包含一个角色为 first_frame 的图片;首尾帧任务必须同时包含角色为 first_frame 和 last_frame 的图片。2.5 两类任务都必须将 ratio 设置为 adaptive。
{
"model": "doubao-seedance-2-5-260628",
"content": [
{"type": "text", "text": "镜头从首帧场景开始,平滑推进到尾帧场景。"},
{"type": "image_url", "role": "first_frame", "image_url": {"url": "https://example.com/first.jpg"}},
{"type": "image_url", "role": "last_frame", "image_url": {"url": "https://example.com/last.jpg"}}
],
"ratio": "adaptive",
"duration": 10
}视频编辑与延长(Seedance 2.5)
视频编辑要求参考视频时长为 4–30 秒,并使用 ratio: "adaptive"、duration: -1、omni_reference_task_type: "edit"。视频延长使用 omni_reference_task_type: "extend",ratio 必须为 adaptive,duration 可设置为 4–30 或 -1。
{
"model": "doubao-seedance-2-5-260628",
"content": [
{"type": "text", "text": "视频编辑:删除视频1中的所有人,除了主角。"},
{"type": "video_url", "role": "reference_video", "video_url": {"url": "https://example.com/source.mov"}}
],
"generate_audio": true,
"ratio": "adaptive",
"duration": -1,
"omni_reference_task_type": "edit",
"output_format": "mov"
}创建响应
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "video",
"model": "doubao-seedance-2-5-260628",
"status": "queued",
"progress": 0,
"created_at": 1788146961
}task_id 用于后续查询;当前创建响应中的 id 与 task_id 相同。
查询任务
GET /api/v3/contents/generations/tasks/{task_id}
请求参数
| 参数位置 | 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 路径参数 | task_id | string | 是 | 创建任务响应中的任务 ID。当前创建响应的 task_id 与 id 值相同。 |
| 请求头 | Authorization | string | 是 | Bearer YOUR_API_KEY。 |
| 请求头 | Content-Type | string | 否 | 建议设置为 application/json;GET 请求不需要请求体。 |
curl -X GET https://token.aiznt.com/api/v3/contents/generations/tasks/task_xxx \
-H "Authorization: Bearer YOUR_API_KEY"成功响应
{
"content": {"video_url": "https://example.com/video.mp4"},
"created_at": 1788146960,
"draft": false,
"duration": 11,
"execution_expires_after": 3600,
"framespersecond": 24,
"generate_audio": true,
"id": "task_xxx",
"model": "doubao-seedance-2-5-260628",
"output_format": "mp4",
"priority": 0,
"ratio": "16:9",
"resolution": "720p",
"seed": 62293,
"service_tier": "default",
"status": "succeeded",
"updated_at": 1788147156,
"usage": {"completion_tokens": 393325, "total_tokens": 393325}
}任务状态通常为 queued、running、succeeded 或 failed。成功后请尽快下载 content.video_url。
成功响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
content | object | 生成结果容器。 |
content.video_url | string | 成功时的视频地址;请在有效期内下载。 |
id | string | 任务 ID。 |
model | string | 执行该任务时使用的模型名称及版本信息,具体格式以接口返回值为准。 |
status | string | queued、running、succeeded 或 failed。 |
created_at / updated_at | integer | 创建和更新时间,Unix 时间戳。 |
duration | number | 实际输出视频时长(秒)。 |
ratio | string | 实际输出宽高比。 |
resolution | string | 实际输出分辨率。 |
output_format | string | 实际输出格式,如 mp4 或 mov。 |
framespersecond | integer | 输出视频帧率。 |
generate_audio | boolean | 是否生成音频。 |
seed | integer | 本次生成使用的随机种子。 |
usage | object | 任务用量信息。 |
usage.completion_tokens / usage.total_tokens | integer | 生成用量 token 数。 |
execution_expires_after | integer | 任务执行有效期相关配置。 |
service_tier | string | 服务等级。 |
priority | integer | 任务优先级。 |
draft | boolean | 是否为草稿任务。 |
失败响应
{
"id": "task_xxx",
"model": "doubao-seedance-2-5-260628",
"status": "failed",
"error": {
"code": "OutputVideoSensitiveContentDetected",
"message": "The request failed because the output video may contain sensitive information. Request ID: task_xxx"
},
"created_at": 1718049470,
"updated_at": 1718049470
}失败响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 失败任务 ID。 |
model | string | 执行该任务时使用的模型名称及版本信息,具体格式以接口返回值为准。 |
status | string | 失败时为 failed。 |
error | object | 错误对象。 |
error.code | string | 错误码,例如 OutputVideoSensitiveContentDetected。 |
error.message | string | 错误说明。 |
created_at / updated_at | integer | 创建和更新时间,Unix 时间戳。 |
2.5 任务类型与参数约束
| 任务类型 | 触发方式 | 参数要求 |
|---|---|---|
| 文生视频 | 仅传文本提示词 | ratio、duration 无特殊限制 |
| 首帧任务 | 必须包含一个 first_frame 图片 | ratio 必须为 adaptive |
| 首尾帧任务 | 必须同时包含 first_frame 和 last_frame 图片 | ratio 必须为 adaptive |
| 参考生视频 | 至少一个 reference_image、reference_video 或 reference_audio | ratio、duration 无特殊限制 |
| 视频编辑 | reference_video 加编辑意图提示词 | ratio: "adaptive"、duration: -1;视频时长 4–30 秒 |
| 视频延长 | reference_video 加延长意图提示词 | ratio: "adaptive";duration 为 4–30 或 -1 |
使用全模态参考任务时,可通过 omni_reference_task_type 指定 auto、reference、edit 或 extend。未指定或使用 auto 时,模型会根据提示词和素材自动判断任务类型。
输出规格
| 参数 | Seedance 2.0 | Seedance 2.5 |
|---|---|---|
resolution | 标准版支持 480p、720p、1080p、4k;Fast/Mini 支持 480p、720p | 480p、720p、1080p |
ratio | 21:9、16:9、4:3、1:1、3:4、9:16 | 上述比例及 adaptive |
duration | 4–15 秒,不支持 -1 | 普通任务、首帧/首尾帧和视频延长支持 4–30 秒或 -1;视频编辑必须为 -1 |
output_format | 固定 mp4 | mp4 或 mov |
watermark | true / false | true / false |
2.5 的视频编辑、视频延长和首帧/首尾帧任务必须使用 ratio: "adaptive"。2.0 标准版的 4K 输出采用 10bit/H.265 编码,部分播放器可能不兼容;2.5 的 1080p 同样使用 10bit/H.265。2.5 的 mov 更适用于视频编辑和视频延长,采用专业编码,部分播放器可能不兼容。watermark: true 会在视频右下角添加“AI生成”标识。
素材限制
Seedance 2.0
- 图片 0–9 张、视频 0–3 个、音频 0–3 个,总数最多 15 个。
- 不支持“文本+音频”或纯音频输入。
- 单次视频时长 4–15 秒;2.0 标准版支持 4K。
Seedance 2.5
- 图片最多 30 张、视频最多 10 个、音频最多 10 个,总数最多 50 个。
- 视频和音频参考素材总时长不超过 30 秒,支持纯音频参考。
- 视频编辑参考视频时长为 4–30 秒;支持 4–30 秒输出及
duration: -1。 - 图片支持 jpeg、png、webp、bmp、tiff、gif、heic、heif;视频支持 mp4、mov;音频支持 wav、mp3。
- 图片宽高比须为 0.4–2.5,宽高为 300–6000 px,单张不超过 30 MB。
- 视频支持 480p/720p、24–60 FPS,单个不超过 200 MB,宽高比为 0.4–2.5;普通参考视频时长 2–30 秒,编辑参考视频时长 4–30 秒。
- 音频单段时长 2–30 秒、单个不超过 15 MB;请求体大小不超过 64 MB。视频和音频参考总时长不超过 30 秒。
- 任务记录保存 7 天,视频 URL 保存 24 小时,视频 URL 最多下载 100 次。
联网搜索(Seedance 2.0)
联网搜索仅适用于纯文本输入:
{
"model": "doubao-seedance-2-0-260128",
"content": [{"type": "text", "text": "根据今天的天气生成一段城市宣传视频。"}],
"tools": [{"type": "web_search"}],
"ratio": "16:9",
"duration": 11
}实际搜索次数可在查询响应的 usage.tool_usage.web_search 中查看。
限流
官方在线推理限流参考:2.0 和 2.5 非 4K 任务企业用户最大 RPM 为 600、并发 10;个人用户最大 RPM 为 180、并发 3。2.0 标准版 4K 任务企业和个人用户最大 RPM 均为 15、最大并发均为 1。实际账户限额以服务端返回为准。
Python 轮询示例
import time
import requests
BASE = "https://token.aiznt.com"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
payload = {
"model": "doubao-seedance-2-5-260628",
"content": [
{
"type": "text",
"text": "一只橘猫在键盘上奔跑,镜头跟随。",
}
],
"ratio": "16:9",
"duration": 5,
"generate_audio": True,
}
task = requests.post(
f"{BASE}/api/v3/contents/generations/tasks",
headers=HEADERS,
json=payload,
timeout=30,
).json()
task_id = task.get("task_id") or task["id"]
while True:
result = requests.get(f"{BASE}/api/v3/contents/generations/tasks/{task_id}", headers=HEADERS, timeout=30).json()
if result["status"] == "succeeded":
print(result["content"]["video_url"])
break
if result["status"] == "failed":
raise RuntimeError(result.get("error"))
time.sleep(10)常见问题
为什么任务长时间处于 queued 或 running? 视频生成属于异步任务。请按约 10–30 秒间隔轮询;官方示例使用过 10 秒或 30 秒间隔,实际频率应结合账号限流设置。任务进入 succeeded 后再读取 content.video_url。
为什么视频地址无法长期访问? 视频 URL 保存 24 小时,最多下载 100 次;任务记录保存 7 天。任务成功后请尽快下载或转存视频。
2.0 和 2.5 如何选择? 两个版本都支持图片、视频、音频等多模态参考。需要 4K 使用 Seedance 2.0 标准版;需要单次最长 30 秒、最多 50 个参考素材、纯音频参考、duration: -1 或 mov 输出时使用 Seedance 2.5。
为什么任务会在创建后异步失败? Seedance 2.5 的全模态参考任务和首帧/首尾帧任务会在任务启动后继续校验任务类型与参数。视频编辑必须使用 ratio: "adaptive"、duration: -1,首帧/首尾帧任务必须使用 ratio: "adaptive";不满足约束时可能返回 InvalidParameter.TaskTypeConstraint。明确任务类型时可通过 omni_reference_task_type 提前校验。
duration: -1 会生成多长的视频? 对视频编辑任务,模型会尽量保持与待编辑视频相同的时长;其他 2.5 任务会在 4–30 秒范围内根据提示词和素材自动选择时长。