视频 API
Doubao Seedance 2.x 视频生成
Doubao Seedance 2.x 视频生成
功能概览
本页用于说明 Doubao Seedance 2.x 视频生成 的核心能力、调用入口和接入要点,帮助开发者快速判断适用场景并完成集成。
适用场景
- 产品原型验证:快速接入模型能力,验证内容生成、理解或编辑流程。
- 生产业务接入:用于批量任务、自动化工作流和多模型组合调用。
- 能力迁移适配:适合从原有模型或 SDK 平滑切换到爱虾AI统一接口。
接入建议
- 优先确认模型名称、请求路径和响应字段,再接入具体业务流程。
- 对异步任务、媒体生成和长耗时请求,建议在业务侧加入重试与状态轮询。
- 上线前建议准备日志追踪、错误处理和内容安全校验,便于稳定运行。
模型与网关限制
| 平台模型名 | 对应上游模型 ID | 分辨率 | 网关允许时长 |
|---|---|---|---|
doubao-seedance-2.5 | doubao-seedance-2-5-260628 | 480p、720p、1080p | 4-15 秒 |
doubao-seedance-2.0 | doubao-seedance-2-0-260128 | 480p、720p、1080p、4k | 4-15 秒 |
doubao-seedance-2.0-fast | doubao-seedance-2-0-fast-260128 | 480p、720p | 4-15 秒 |
doubao-seedance-2.0-mini | doubao-seedance-2-0-mini-260615 | 480p、720p | 4-15 秒 |
请求中推荐使用左列的平台模型名。网关会根据已配置的上游模型转发请求。fast 和 mini 传入 1080p 或 4k 会返回 400。
火山方舟官方可能提供更长时长或更多参数组合;以本接口的 4-15 秒限制为准。
鉴权与异步结算
所有请求均使用 Bearer 鉴权:
Authorization: Bearer <API_KEY>
Content-Type: application/json
官方兼容接口
官方兼容创建路径:
POST https://api.yisu-api.com/api/v3/contents/generations/tasks
查询、列表和取消路径:
GET https://api.yisu-api.com/api/v3/contents/generations/tasks/{task_id}
GET https://api.yisu-api.com/api/v3/contents/generations/tasks?page_num=1&page_size=20
DELETE https://api.yisu-api.com/api/v3/contents/generations/tasks/{task_id}
官方兼容接口透传火山方舟的任务结构。使用官方的 content 格式时,可使用文本、参考图片、参考视频、参考音频等输入。提交前请阅读下方参数说明,确认输入组合与模型限制。
文生视频
curl "https://api.yisu-api.com/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.5",
"content": [
{
"type": "text",
"text": "清晨的海岸公路,镜头缓慢向前推进,电影感自然光。"
}
],
"ratio": "16:9",
"duration": 4,
"resolution": "480p",
"generate_audio": false,
"watermark": false
}'
图生视频
curl "https://api.yisu-api.com/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0",
"content": [
{
"type": "text",
"text": "让参考图中的产品缓慢旋转,背景光影轻微流动。"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/product.png"
},
"role": "reference_image"
}
],
"ratio": "1:1",
"duration": 4,
"resolution": "480p",
"generate_audio": false
}'
参考视频和音频分别使用 video_url、audio_url,并设置 role 为 reference_video、reference_audio。可用的数量与任务类型以火山方舟官方文档为准。
创建响应示例
{
"id": "cgt-xxxxxxxxxxxxxxxx",
"model": "doubao-seedance-2-5-260628",
"status": "queued",
"created_at": 1780000000
}
任务状态通常为 queued、running、succeeded、failed、cancelled 或 expired。成功响应的 content.video_url 是视频地址。
查询任务
curl "https://api.yisu-api.com/api/v3/contents/generations/tasks/cgt-xxxxxxxxxxxxxxxx" \
-H "Authorization: Bearer <API_KEY>"
任务未完成时继续轮询。建议每 5-10 秒查询一次,避免高频轮询。
OpenAI Videos API 兼容接口
OpenAI 兼容路径:
POST https://api.yisu-api.com/v1/videos
GET https://api.yisu-api.com/v1/videos/{video_id}
GET https://api.yisu-api.com/v1/videos/{video_id}/content
GET https://api.yisu-api.com/v1/videos
DELETE https://api.yisu-api.com/v1/videos/{video_id}
该接口兼容 OpenAI 的路径、任务对象与视频下载方式,但 Seedance 的核心生成参数仍使用 ratio、duration、resolution。不要用 seconds 代替 duration,也不要只传 size 期待其转换为上游分辨率。
文生视频
curl "https://api.yisu-api.com/v1/videos" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0-fast",
"prompt": "雨后城市街道,霓虹灯在积水中倒映,镜头缓慢平移。",
"ratio": "16:9",
"duration": 4,
"resolution": "480p",
"generate_audio": false,
"watermark": false
}'
图生视频
OpenAI 兼容写法可用顶层 image 或 images。网关会转换为上游的 content.image_url 结构。
curl "https://api.yisu-api.com/v1/videos" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0-mini",
"prompt": "让参考图中的人物回头看向镜头,保持人物外观一致。",
"images": [
"https://example.com/person.png"
],
"ratio": "9:16",
"duration": 4,
"resolution": "480p",
"generate_audio": false
}'
也可传递 video / videos、audio / audios,分别转换为参考视频和参考音频。需要使用首尾帧或高级参数时,请在 /v1/videos 路径直接传递官方 content 数组;编辑、延长任务还需遵守下方参数说明中的模型与任务类型限制。
OpenAI 兼容响应
创建或查询时,网关将上游任务对象转换为以下格式,并在 upstream_response 中保留原始任务响应:
{
"id": "cgt-xxxxxxxxxxxxxxxx",
"object": "video",
"created": 1780000000,
"model": "doubao-seedance-2-0-fast-260128",
"status": "queued",
"content": null,
"error": null,
"upstream_response": {}
}
状态映射如下:
| 上游状态 | OpenAI 兼容状态 |
|---|---|
queued、pending、created | queued |
running、processing | in_progress |
succeeded、success、done | completed |
failed、error | failed |
cancelled、canceled、deleted | cancelled |
下载视频
任务状态为 completed 后,可由兼容下载接口直接获取 MP4:
curl "https://api.yisu-api.com/v1/videos/cgt-xxxxxxxxxxxxxxxx/content" \
-H "Authorization: Bearer <API_KEY>" \
--output output.mp4
若任务尚未产生视频,接口返回 HTTP 409 及任务信息。
参数说明
以下说明依据火山方舟《创建视频生成任务》文档(官方页面更新于 2026-09-09),并结合当前网关的转发规则整理。两个创建路径使用相同的参数处理逻辑;输出时长按本页的 4-15 秒范围提交,不能直接照搬官方 Seedance 2.5 的 30 秒示例。
请求格式与参数优先级
请求体使用 JSON,Content-Type 为 application/json。整数直接传数字,布尔值传 true / false,不要传字符串 "false"。
- 完整写法: 传入
model和非空的content数组,生成参数放在与content同级的请求体顶层。适合首尾帧、多模态参考、回调及其他官方参数。 - 简写方式: 不传
content,改用prompt和顶层image/images、video/videos、audio/audios。网关将这些字段转换为官方content结构。 - 不要混用: 一旦传入数组形式的
content,网关不会再把顶层prompt、images等字段合并进去;提示词与素材应全部放入content。不要传空数组并期待网关补入prompt。 - 高级参数使用完整写法: 简写方式仅保留转换后的内容以及
ratio、duration、resolution、generate_audio、watermark、seed。callback_url、return_last_frame、output_format等参数需要随content一起提交,否则不会转发。
基础生成参数
| 参数 | 类型 | 是否必填 / 默认值 | 详细说明 |
|---|---|---|---|
model | string | 必填 | 使用上方模型表中的平台模型名,例如 doubao-seedance-2.0。不要填写自己的火山方舟 Endpoint ID;本接口使用爱虾AI已配置的上游模型。 |
content | object[] | 完整写法必填 | 非空的输入内容列表,每项通过 type 指定文本、图片、视频或音频。结构与组合限制见下文。 |
prompt | string | 简写方式使用 | 描述主体、动作、场景、镜头、风格及声音。文生视频需要提供提示词;使用完整写法时改填 content[].text。建议中文不超过 500 字、英文不超过 1000 词,这是效果建议,不是接口硬性字数上限。 |
duration | integer | 本接口请显式填写 | 输出视频时长,单位为秒,按 4-15 的整数提交,例如 6,不是 "6"。本页不使用官方的 -1 智能时长或 16-30 秒配置;省略时网关不会补入统一的上游默认时长。不要用 frames 或提示词参数代替。 |
resolution | string | 上游默认 720p,建议显式填写 | 输出清晰度。2.5 支持 480p、720p、1080p;2.0 额外支持 4k;fast / mini 仅支持 480p、720p。不支持 2k。请使用小写枚举,不要填写 1920x1080 等像素尺寸。 |
ratio | string | 上游默认 adaptive | 输出宽高比,可选 16:9、4:3、1:1、3:4、9:16、21:9、adaptive。adaptive 表示根据输入与任务类型自动适配。Seedance 2.5 的首帧、首尾帧、视频编辑和延长任务只能使用 adaptive;其他场景可按模型规则指定比例。 |
generate_audio | boolean | 可选,默认 true | true 生成与画面同步的人声、音效或背景音乐;false 输出无声视频。需要台词时可在提示词中用双引号标出台词。官方生成的有声视频为单声道,和参考音频的声道数无关。 |
watermark | boolean | 可选,默认 false | true 在视频右下角添加“AI 生成”水印;false 不添加该可见水印。 |
输出像素尺寸由 resolution 与 ratio 共同决定。参考图片比例与输出比例不一致时,上游可能居中裁剪;首尾帧比例不一致时以首帧为主,尾帧会裁剪适配。
Seedance 2.5 的 1080p、Seedance 2.0 的 4k 输出采用 10bit 位深及 H.265/HEVC 编码,播放端需要支持对应编码。
content 数组结构
每一项是独立对象。type、对应的素材对象或 text、以及 role 都放在该项内;role 不要写入 image_url / video_url / audio_url 对象中。
| 字段 | 类型 | 使用条件 | 说明 |
|---|---|---|---|
content[].type | string | 每项必填 | 本页使用 text、image_url、video_url、audio_url 四种类型。 |
content[].text | string | type=text 时必填 | 文本提示词。支持中文、英文;多素材场景可描述每个素材的用途,例如参考哪张图的主体、哪个视频的动作、哪段音频的节奏。 |
content[].image_url | object | type=image_url 时必填 | 图片对象,内部使用 url 字段。 |
content[].image_url.url | string | 图片对象内必填 | 图片公网 URL 或 data:image/png;base64,<编码内容> 等图片 Data URL;格式名小写。图片角色见下表。 |
content[].video_url | object | type=video_url 时必填 | 视频对象,内部使用 url 字段。 |
content[].video_url.url | string | 视频对象内必填 | 视频公网 URL,例如 https://example.com/motion.mp4;官方此字段没有视频 Base64 输入方式。 |
content[].audio_url | object | type=audio_url 时必填 | 音频对象,内部使用 url 字段。 |
content[].audio_url.url | string | 音频对象内必填 | 音频公网 URL 或 data:audio/wav;base64,<编码内容> 等音频 Data URL;格式名小写。 |
content[].role | string | 素材项按用途填写 | 图片使用 first_frame、last_frame 或 reference_image;视频使用 reference_video;音频使用 reference_audio。文本项不需要此字段。 |
素材 URL 必须能被上游服务访问,不能使用本机路径、localhost 或内网地址。带有效期的签名 URL 应覆盖上游读取素材的时间。官方还定义了 asset://<ASSET_ID> 素材引用,但其可用性取决于上游账号的素材权限;通过本接口调用时优先使用公网 URL,不要默认自己的火山账号素材 ID 可以跨账号使用。
图片角色与任务组合
| 场景 | 提交方式 | 约束 |
|---|---|---|
| 文生视频 | text 项 | 提供描述目标视频的提示词。 |
| 首帧生视频 | 1 个 image_url 项,role=first_frame,可加文本 | 官方单图首帧场景允许省略 role;为避免与参考图混淆,建议显式填写。 |
| 首尾帧生视频 | 2 个 image_url 项,分别为 first_frame、last_frame,可加文本 | 两张图片的 role 都必填;图片可以相同。不能仅传尾帧。 |
| 全模态参考 | 图片为 reference_image,视频为 reference_video,音频为 reference_audio,可加文本 | 可组合多种参考素材,数量与大小见下表。Seedance 2.0 系列不能仅传音频,至少需要一张参考图或一个参考视频;2.5 支持仅传音频。 |
首帧、首尾帧、全模态参考是互斥场景。 不要在同一请求中同时传 first_frame / last_frame 和 reference_image / reference_video / reference_audio。若希望以参考图控制起止画面,可在全模态参考提示词中描述;需要严格指定首尾帧时,使用首尾帧角色。
参考素材数量与时长
以下为官方输入素材限制,和本接口 输出视频 4-15 秒 的范围分别计算。首帧 / 首尾帧任务仍分别只传 1 / 2 张图片。
| 参考素材 | Seedance 2.0 / fast / mini | Seedance 2.5 |
|---|---|---|
| 图片 | 最多 9 张 | 最多 30 张 |
| 视频 | 最多 3 个;单个 2-15 秒,全部视频合计不超过 15 秒 | 最多 10 个;参考生成场景单个 2-30 秒,全部视频合计不超过 30 秒 |
| 音频 | 最多 3 段;单段 2-15 秒,全部音频合计不超过 15 秒;不能只传音频 | 最多 10 段;单段 2-30 秒,全部音频合计不超过 30 秒;可仅传音频 |
| 素材 | 文件与尺寸要求 |
|---|---|
| 图片 | 支持 jpeg、png、webp、bmp、tiff、gif、heic、heif;单张小于 30 MB;宽和高各为 300-6000 px,宽高比为 0.4-2.5。 |
| 视频 | 支持 mp4、mov,编码需满足官方要求;单个不超过 200 MB;帧率 24-60 FPS;宽和高各为 300-6000 px,宽高比为 0.4-2.5,总像素数为 407696-8295044。 |
| 音频 | 支持 wav、mp3;单段不超过 15 MB。 |
| 请求体 | 官方上限为 64 MB,实际还受接入网关的请求体限制;Base64 会增加体积,大文件请使用公网 URL。 |
含真人人脸的图片、视频等特殊素材还需符合官方素材使用规则;接口能够接收 URL 不代表上游一定接受该素材。
简写素材参数
这些参数仅在未传 content 数组时转换生效。完整写法与简写方式在两个创建路径上都可以使用。
| 参数 | 类型 | 转换结果与注意事项 |
|---|---|---|
image / images | string / string[] | image 传单个图片 URL,images 传 URL 数组;均转换成 role=reference_image,不会变成首帧。需要首帧 / 尾帧时使用 content。 |
video / videos | string / string[] | 单个视频 URL 或 URL 数组,转换成 role=reference_video。 |
audio / audios | string / string[] | 单个音频 URL 或 URL 数组,转换成 role=reference_audio;仍需遵守 2.0 系列不能仅传音频的限制。 |
同一类素材只选单数或复数形式;同时提供时,网关优先取单数字段,不会合并两个字段。推荐统一使用复数数组形式。
高级参数:随 content 一起提交
以下字段放在 JSON 顶层,不能放进 content 的文本项。网关透传这些字段,最终是否接受及如何执行由所选上游模型决定。
| 参数 | 类型 / 默认值 | 适用范围与说明 |
|---|---|---|
return_last_frame | boolean,默认 false | true 时在查询结果 content.last_frame_url 返回尾帧 PNG;其尺寸与视频一致,尾帧图像无水印。可将其作为下一次请求的 first_frame。 |
callback_url | string,无默认值 | 接收上游任务状态通知的公网地址。上游向该地址发送 POST,内容结构与官方查询任务返回体一致;不是 /v1/videos 包装后的响应格式。详见下文。 |
execution_expires_after | integer,默认 172800 | 从任务 created_at 开始计算的超时秒数,官方范围 3600-259200。本平台后台按 48 小时处理过期任务,建议不超过 172800;超过期限任务会成为 expired。 |
priority | integer,默认 0 | 2.5、2.0 系列支持,范围 0-9。数值越大越优先,只影响同一上游 Endpoint 内的排队顺序,不中断运行中的任务,也不保证立即执行。 |
safety_identifier | string,无默认值 | 终端用户稳定且唯一的英文标识,最长 64 字符。建议使用用户 ID 的哈希值。 |
tools | object[],可选 | 2.5、2.0 系列的官方工具配置,例如 [{"type":"web_search"}]。模型自主决定是否搜索,可能增加耗时;搜索次数见官方查询响应 usage.tool_usage.web_search。具体开通情况以调用通道为准。 |
output_format | string,默认 mp4 | 仅 2.5。mp4 用于通用播放;mov 用于专业后期处理。选择 mov 后应按实际格式保存,不要固定命名为 .mp4;建议从官方查询结果的 content.video_url 获取文件。 |
omni_reference_task_type | string,默认 auto | 仅 2.5 的全模态任务。官方值为 auto、reference、edit、extend,含义及约束见下文。 |
Seedance 2.5 任务类型约束
| 取值 | 官方含义 | 提交注意事项 |
|---|---|---|
auto | 根据素材与提示词自动判定 | 判定后发现参数不兼容,可能异步返回 InvalidParameter.TaskTypeConstraint。 |
reference | 使用参考素材生成新视频 | 建议普通参考生成任务明确指定,输出时长仍按本页 4-15 秒提交。 |
extend | 向前或向后延长参考视频 | 至少包含一个 reference_video,ratio 必须为 adaptive;提示词明确描述延长意图。 |
edit | 编辑原视频画面或音频 | 官方要求至少一个 4-30 秒的 reference_video,ratio=adaptive 且 duration=-1。这与本页采用的固定 4-15 秒提交范围不同,本页不提供该模式的可直接套用示例。 |
显式指定任务类型会让上游提前校验部分约束,但模型仍会结合提示词判断实际任务类型;两者不一致时,可能异步返回 InvalidParameter.TaskTypeMismatch。
回调处理
callback_url 可收到 queued、running、succeeded、failed、expired 状态。官方说明成功、失败通知在 5 秒内未收到成功响应时会重试,接收端应及时返回成功状态,并按任务 ID 与状态去重处理。回调地址不要填写本机或内网地址;仍建议保留轮询,避免漏收通知后无法取得结果。
不要直接套用的其他官方参数
官方参考页同时覆盖 Seedance 1.x。下列参数虽可能被网关透传,但官方当前未将其列为本文 2.5 / 2.0 系列的支持能力,不应作为本页模型的可用参数提交:
| 参数 | 官方范围或用途 | 本页模型的处理建议 |
|---|---|---|
seed | 随机种子,默认 -1,范围 -1 至 2147483647;官方列出的支持模型为 1.5 pro、1.0 pro / pro fast | 2.x 请求中省略;不能承诺通过固定种子复现结果。 |
frames | 按帧数控制时长,官方支持模型为 1.0 pro / pro fast | 2.x 使用 duration。 |
camera_fixed | 固定摄像头,官方支持模型为 1.5 pro、1.0 pro / pro fast | 通过提示词描述固定镜头,不保证效果。 |
draft、content[].draft_task | 样片与基于样片生成正式视频,官方支持模型为 1.5 pro | 本页模型不使用样片模式。 |
完整请求示例:首尾帧与尾帧返回
以下请求使用 2.0 模型。改为 2.5 时,首帧 / 首尾帧场景必须保持 ratio=adaptive。在 /v1/videos 路径也可提交相同请求体。
{
"model": "doubao-seedance-2.0",
"content": [
{"type": "text", "text": "镜头缓慢推进,让首帧场景自然过渡到尾帧场景。"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/start.png"},
"role": "first_frame"
},
{
"type": "image_url",
"image_url": {"url": "https://example.com/end.png"},
"role": "last_frame"
}
],
"duration": 6,
"resolution": "720p",
"ratio": "adaptive",
"generate_audio": false,
"watermark": false,
"return_last_frame": true
}
完整请求示例:多模态参考与回调
提交前替换素材 URL 和回调地址,并确认素材满足数量、时长及文件大小限制。
{
"model": "doubao-seedance-2.5",
"content": [
{"type": "text", "text": "保持参考图中的产品外观,参考视频的运镜,按参考音频的节奏展示产品。"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/product.png"},
"role": "reference_image"
},
{
"type": "video_url",
"video_url": {"url": "https://example.com/motion.mp4"},
"role": "reference_video"
},
{
"type": "audio_url",
"audio_url": {"url": "https://example.com/music.mp3"},
"role": "reference_audio"
}
],
"duration": 8,
"resolution": "720p",
"ratio": "16:9",
"generate_audio": true,
"watermark": false,
"omni_reference_task_type": "reference",
"output_format": "mp4",
"callback_url": "https://example.com/callbacks/seedance",
"execution_expires_after": 86400
}
常见错误
| HTTP 状态 | 场景 | 处理建议 |
|---|---|---|
| 400 | 分辨率不支持 | 检查模型对应的分辨率限制 |
| 400 | 时长不在 4-15 秒 | 调整 duration |
| 404 | 任务不存在 | 确认任务 ID 与 API Key 所属账号 |
| 409 | 视频尚未生成 | 继续查询任务状态,完成后再下载 |
| 5xx | 上游或网络异常 | 保留任务 ID,稍后查询;不要立即重复创建相同任务 |