创建视频生成任务
本接口用于创建视频生成任务。融云 AI 服务接入了 Seedance 2.0 系列能力并对外提供视频生成服务,模型会依据传入的文本、图片、视频和音频等信息生成视频。视频生成是异步过程,创建成功后会返回任务 ID,您可通过查询视频生成任务接口轮询任务状态,并在任务成功后获取生成结果。
视频生成任务的执行过程是异步的,最终结果需要通过查询任务接口获取。创建任务的 HTTP 请求在受理阶段也可能需要一定处理时间,因此不一定会立即返回任务 ID。受 Seedance 2.0 系列模型上游处理机制影响,请求受理阶段可能会先执行若干降噪与推理相关步骤,因此接口响应时间可能明显长于普通异步任务创建请求。
对于较复杂的生成任务,创建请求在少数情况下可能需要数分钟才返回任务 ID。建议客户端适当放宽 HTTP 读超时时间,并避免因等待时间较长而误判为接口异常。
支持能力
Doubao/Doubao-seedance-2.0、Doubao/Doubao-seedance-2.0-fast:支持文生视频、首帧图生视频、首尾帧图生视频、多模态参考生视频,可生成有声或无声视频。Doubao/Doubao-seedance-1.5-pro:支持文生视频、首帧图生视频、首尾帧图生视频、Draft 样片模式,可生成有声或无声视频。
请求方法
POST:<ai-api-base-url>/llm/v1/contents/generations/tasks
其中,<ai-api-base-url> 为您的 API Key 所属数据中心的域名:
- 北京数据中心:
https://ai.rong-api.com - 北美数据中心:
https://ai.us-light-api.com
请求头参数
| 参数名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| Authorization | string | 是 | - | 身份认证令牌,格式为 Bearer <your API key>,需替换为实际 API Key,用于验证用户权限。 |
正文参数
| 参数名 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| model | string | 是 | - | 调用的模型名称。当前支持 Doubao/Doubao-seedance-2.0、Doubao/Doubao-seedance-2.0-fast、Doubao/Doubao-seedance-1.5-pro。 |
| content | object[] | 是 | - | 输入给模型的内容,支持文本、图片、视频、音频和样片任务 ID 的组合。当前支持以下场景:文本;首帧图片(可选文本);首尾帧图片(可选文本);参考图片(可选文本);参考视频(可选文本);参考图片 + 参考音频(可选文本);参考视频 + 参考音频(可选文本);参考图片 + 参考视频(可选文本);参考图片 + 参考视频 + 参考音频(可选文本);样片任务 ID(仅 Doubao/Doubao-seedance-1.5-pro 支持)。详见下方 content 参数说明。 |
| callback_url | string | 否 | - | 任务状态变更时的回调通知地址。融 云将向此地址发送 POST 请求,回调内容结构与查询视频生成任务接口的返回体一致。回调状态包括:queued、running、succeeded、failed、expired。 |
| return_last_frame | boolean | 否 | false | 是否返回生成视频的尾帧图像。true:返回 PNG 格式尾帧图像,可用于作为下一个视频任务的首帧,实现多段连续视频生成;false:不返回尾帧图像。尾帧图像可通过查询视频生成任务接口获取。 |
| service_tier | string | 否 | default | 处理本次请求的服务等级。default:在线推理模式;flex:离线推理模式。Doubao/Doubao-seedance-2.0 和 Doubao/Doubao-seedance-2.0-fast 暂不支持 flex。任务提交后不支持修改服务等级。 |
| execution_expires_after | integer | 否 | 172800 | 任务超时阈值,单位:秒,从任务创建时间开始计算。默认值为 172800 秒(48 小时),取值范围为 [3600, 259200]。超过该时间后,任务会被自动终止并标记为 expired。 |
| generate_audio | boolean | 否 | true | 是否生成与画面同步的音频。仅 Doubao/Doubao-seedance-2.0、Doubao/Doubao-seedance-2.0-fast、Doubao/Doubao-seedance-1.5-pro 支持。true:输出包含人声、音效及背景音乐;false:输出无声视频。建议将对话内容放在双引号内,以提升音频生成效果。生成的有声视频为单声道。 |
| draft | boolean | 否 | false | 是否开启样片模式。仅 Doubao/Doubao-seedance-1.5-pro 支持。true:生成 Draft 预览视频,用于快速验证场景结构、镜头调度和 prompt 意图;false:正常生成视频。开启样片模式后,固定使用 480p 分辨率,不支持返回尾帧,不支持离线推理。 |
| tools | object[] | 否 | - | 配置模型可调用的工具。仅 Doubao/Doubao-seedance-2.0 和 Doubao/Doubao-seedance-2.0-fast 支持。当前支持 web_search 联网搜索工具。 |
| safety_identifier | string | 否 | - | 终端用户的唯一标识符,用于协助融云进行安全治理。建议传入对用户名、用户 ID 或邮箱进行哈希处理后的英文字符串,长度不超过 64 个字符。 |
| resolution | string | 否 | 720p | 输出视频分辨率。可选值:480p、720p、1080p。Doubao/Doubao-seedance-2.0 和 Doubao/Doubao-seedance-2.0-fast 不支持 1080p。 |
| ratio | string | 否 | adaptive | 输出视频宽高比。可选值:16:9、4:3、1:1、3:4、9:16、21:9、adaptive。对于 Doubao/Doubao-seedance-2.0、Doubao/Doubao-seedance-2.0-fast 和 Doubao/Doubao-seedance-1.5-pro,默认值为 adaptive。设置为 adaptive 时,模型会根据提示词或首帧素材自动选择最合适的宽高比,实际结果可通过查询接口的 ratio 字段获取。 |
| duration | integer | 否 | 5 | 视频时长,单位:秒。Doubao/Doubao-seedance-2.0 和 Doubao/Doubao-seedance-2.0-fast 支持 [4, 15] 范围内的整数,Doubao/Doubao-seedance-1.5-pro 支持 [4, 12] 范围内的整数;上述模型均支持设置为 -1,由模型自动选择合适时长。 |
| frames | integer | 否 | - | 生成视频的帧数,与 duration 二选一,且 frames 优先级更高。该字段用于按帧控制视频长度,但当前融云对外可用的 Doubao/Doubao-seedance-2.0、Doubao/Doubao-seedance-2.0-fast、Doubao/Doubao-seedance-1.5-pro 暂不支持此参数。 |
| seed | integer | 否 | -1 | 随机种子,用于控制生成结果的随机性。取值范围为 [-1, 2^32-1]。设置为 -1 时使用随机数;相同请求和相同 seed 会生成相似结果,但不保证完全一致。 |
| camera_fixed | boolean | 否 | false | 是否固定摄像头视角。true:固定摄像头;false:允许镜头运动。Doubao/Doubao-seedance-2.0 和 Doubao/Doubao-seedance-2.0-fast 暂不支持此参数。 |
| watermark | boolean | 否 | false | 是否在输出视频中添加水印。true:添加水印;false:不添加水印。 |
content 参数说明
content 数组的每个元素通过 type 字段区分输入类型。支持的输入类型如下。除纯文本和样片任务场景外,参考素材场景中的 text 输入可选传。
文本输入(type: "text"):
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
type | string | 是 | 固定值 "text"。 |
text | string | 是 | 文本提示词,描述期望生成的视频内容、风格、镜头运动等。支持中英文,建议中文不超过 500 字、英文不超过 1000 词。Doubao/Doubao-seedance-2.0 和 Doubao/Doubao-seedance-2.0-fast 还支持日语、印尼语、西班牙语、葡萄牙语。 |
图片输入(type: "image_url"):
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
type | string | 是 | 固定值 "image_url"。 |
image_url.url | string | 是 | 图片的公网可访问 URL、已审核通过的素材 ID 或 Base64 编码数据。若传素材 ID,格式为 asset://{asset_id};涉及真人图片素材时,建议先通过素材管理概述完成上传和审核。Base64 格式需为 data:image/<格式>;base64,<编码>,格式名需小写,如 data:image/png;base64,...。 |
image_url.role | string | 条件必填 | 图片用途。first_frame:首帧图片,首帧图生视频时可不填或填此值;last_frame:尾帧图片,首尾帧图生视频时必填;reference_image:参考图片,仅 Doubao/Doubao-seedance-2.0 和 Doubao/Doubao-seedance-2.0-fast 支持,可传入 1~9 张。首帧图生视频、首尾帧图生视频和多模态参考生视频为互斥场景,不可混用。 |
- 格式:jpeg、png、webp、bmp、tiff、gif;
Doubao/Doubao-seedance-1.5-pro额外支持 heic、heif - 宽高比(宽/高):
(0.4, 2.5) - 像素尺寸:宽高均在
(300, 6000)px 范围内 - 大小:单张图片小于 30 MB,请求体总大小不超过 64 MB
- 多模态参考场景中,
Doubao/Doubao-seedance-2.0和Doubao/Doubao-seedance-2.0-fast最多支持 9 张参考图片
Doubao/Doubao-seedance-2.0 和 Doubao/Doubao-seedance-2.0-fast 不支持直接上传含真人人脸的参考图片或参考视频。若您使用首尾帧场景,首尾帧图片宽高比不一致时,以首帧为主,尾帧会自动裁剪适配。
参考图生视频支持直接用自然语言描述多张图片的组合关系。若希望获得更好的指令遵循效果,建议使用“[图1]...,[图2]...”的方式在提示词中显式指定各张图片的作用。
视频输入(type: "video_url"):
仅 Doubao/Doubao-seedance-2.0 和 Doubao/Doubao-seedance-2.0-fast 支持。
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
type | string | 是 | 固定值 "video_url"。 |
video_url.url | string | 是 | 视频的公网可访问 URL,或已审核通过的素材 ID。若传素材 ID,格式为 asset://{asset_id}。 |
video_url.role | string | 条件必填 | 固定为 reference_video,表示参考视频。 |
- 格式:mp4、mov
- 分辨率:
480p、720p、1080p - 时长:单个视频时长在
[2, 15]秒之间;最多传入 3 个参考视频,所有参考视频总时长不超过 15 秒 - 宽高比(宽/高):
[0.4, 2.5] - 像素尺寸:宽高均在
[300, 6000]px 范围内,总像素数需在[409600, 2086876]区间内 - 大小:单个视频不超过 50 MB
- 帧率:
[24, 60]FPS
音频输入(type: "audio_url"):
仅 Doubao/Doubao-seedance-2.0 和 Doubao/Doubao-seedance-2.0-fast 支持,且不可单独传入,至少需要搭配 1 个参考图片或参考视频。
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
type | string | 是 | 固定值 "audio_url"。 |
audio_url.url | string | 是 | 音频的公网可访问 URL、已审核通过的素材 ID 或 Base64 编码数据。若传素材 ID,格式为 asset://{asset_id}。Base64 格式需为 data:audio/<格式>;base64,<编码>,格式名需小写,如 data:audio/wav;base64,...。 |
audio_url.role | string | 条件必填 | 固定为 reference_audio,表示参考音频。 |
- 格式:wav、mp3
- 时长:单段音频时长在
[2, 15]秒之间;最多传入 3 段参考音频,所有参考音频总时长不超过 15 秒 - 大小:单段音频不超过 15 MB,请求体总大小不超过 64 MB
样片输入(type: "draft_task"):
基于 Draft 样片任务 ID 生成正式视频,仅 Doubao/Doubao-seedance-1.5-pro 支持。
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
type | string | 是 | 固定值 "draft_task"。 |
draft_task.id | string | 是 | 样片任务 ID。融云会自动复用该 Draft 视频的 model、content.text、content.image_url、generate_audio、seed、ratio、duration、camera_fixed 等输入生成正式视频;其余参数可重新指定,不指定时使用模型默认值。 |
- 首次调用本接口并设置
"draft": true,生成 Draft 预览视频。 - 确认 Draft 视频符合预期后,将 Step 1 返回的任务 ID 填入
draft_task.id,再次调用本接口生成正式视频。
工具配置(tools):
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
tools[].type | string | 是 | 工具类型。当前仅支持 web_search,表示允许模型在生成过程中按需使用联网搜索。实际搜索次数可通过查询接口返回的 usage.tool_usage.web_search 字段获取。 |
开启 web_search 后,模型会根据提示词自行判断是否需要检索互联网内容。这通常能提升时效性相关内容的生成效果,但也可能增加一定推理时延。
请求示例
- cURL
- Python
- JavaScript
文生视频
curl --request POST \
--url '<ai-api-base-url>/llm/v1/contents/generations/tasks' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Doubao/Doubao-seedance-2.0",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠"
}
],
"ratio": "16:9",
"duration": 5,
"generate_audio": false,
"watermark": false
}'
图生视频(首帧图生视频)
curl --request POST \
--url '<ai-api-base-url>/llm/v1/contents/generations/tasks' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Doubao/Doubao-seedance-2.0-fast",
"content": [
{
"type": "text",
"text": "女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,镜头缓缓拉出,女孩的头发被风吹动"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/your-image.png",
"role": "first_frame"
}
}
],
"ratio": "adaptive",
"duration": 5,
"generate_audio": true,
"watermark": false
}'
多模态参考生视频
curl --request POST \
--url '<ai-api-base-url>/llm/v1/contents/generations/tasks' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Doubao/Doubao-seedance-2.0",
"content": [
{
"type": "text",
"text": "保留人物整体造型,镜头从中景平滑推进到近景,人物开口说:\"欢迎来到我的工作室。\""
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/reference-image-1.png",
"role": "reference_image"
}
},
{
"type": "video_url",
"video_url": {
"url": "https://example.com/reference-video.mp4",
"role": "reference_video"
}
},
{
"type": "audio_url",
"audio_url": {
"url": "https://example.com/reference-audio.mp3",
"role": "reference_audio"
}
}
],
"tools": [
{
"type": "web_search"
}
],
"safety_identifier": "user_2f1c19a4d7",
"resolution": "720p",
"ratio": "adaptive",
"duration": -1,
"generate_audio": true,
"service_tier": "default",
"watermark": false
}'
样片转正式视频
curl --request POST \
--url '<ai-api-base-url>/llm/v1/contents/generations/tasks' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "Doubao/Doubao-seedance-1.5-pro",
"content": [
{
"type": "draft_task",
"draft_task": {
"id": "cgt-2025draftxxxx-xxxx"
}
}
],
"resolution": "720p",
"watermark": false
}'
import requests
url = "<ai-api-base-url>/llm/v1/contents/generations/tasks"
payload = {
"model": "Doubao/Doubao-seedance-2.0",
"content": [
{
"type": "text",
"text": "写实风格,黄昏时分 的海边,镜头从远景缓慢推进到人物特写"
}
],
"ratio": "16:9",
"duration": 5,
"generate_audio": False,
"watermark": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'Doubao/Doubao-seedance-2.0-fast',
content: [
{
type: 'text',
text: '电影感镜头,一只橘猫趴在窗边,阳光穿过纱帘洒在桌面上'
}
],
ratio: '16:9',
duration: 5,
generate_audio: false,
watermark: false
})
};
fetch('<ai-api-base-url>/llm/v1/contents/generations/tasks', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
返回结果
| 参数名 | 类型 | 是否必返 | 说明 |
|---|---|---|---|
| id | string | 是 | 视频生成任务 ID,任务记录仅保存 7 天,超时后自动清除。获取后需通过查询视频生成任务接口轮询任务状态。 |
返回结果示例
{
"id": "cgt-2025xxxxxx-xxxx"
}