跳到主要内容

Seedance 系列

字节官方协议参考:创建视频生成任务。

本页从 Seedance 2.0 系列开始介绍,使用 通用视频协议 演示文本、首尾帧和多模态参考输入。

调用准备​

示例模型 ID 为 seedance-2-0-fast。请先查询当前 API Key 可用的视频模型,按列表中的实际 ID 替换;不同版本支持的参数与输入组合可能不同。

BASE_URL="https://api.ope.ai"
API_KEY="YOUR_API_KEY"

curl "$BASE_URL/v1/models?output_modalities=video" \
-H "Authorization: Bearer $API_KEY"

提示词放在 content 的 text 元素中;时长使用整数 duration,分辨率与比例使用 resolution、ratio。通过通用视频接口调用时,扩展参数放在 extra_parameters。

可选扩展参数​

下表列出当前接口接受的扩展参数,均为可选。不同 Seedance 版本支持的字段与取值不同,请按所选模型填写;不需要的参数直接省略,不要传 null。

字段类型用途
framesinteger输出帧数,需所选模型支持按帧控制时长
seedinteger随机种子
camera_fixedboolean是否固定镜头
draftboolean是否生成样片,适用于支持样片的模型
service_tierstring服务等级,例如 default、flex
output_formatstring视频格式,例如 mp4、mov;仅适用于支持此参数的 Seedance 2.5
omni_reference_task_typestringSeedance 2.5 的任务类型引导:auto、reference、edit、extend
execution_expires_afterinteger任务排队及执行的期限,单位秒;与结果的 24 小时访问期限无关
priorityinteger任务排队优先级
safety_identifierstring终端用户标识
toolsobject[]工具声明,例如 [{"type":"web_search"}];type 为字符串

curl 调用示例​

文生视频​

curl "$BASE_URL/v1/contents/generations/tasks" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-0-fast",
"content": [{"type": "text", "text": "一只橘猫走过雨后的街道,镜头缓慢跟随。"}],
"duration": 5,
"resolution": "720p",
"ratio": "16:9",
"generate_audio": false,
"extra_parameters": {"seed": 42}
}'

图生视频:首帧与首尾帧​

下面请求指定首帧和尾帧。只使用首帧时,删除 role: "last_frame" 的整个元素即可。示例媒体地址需替换为可公开读取的实际图片 URL。

curl "$BASE_URL/v1/contents/generations/tasks" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-0-fast",
"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"}}
],
"duration": 5,
"resolution": "720p",
"ratio": "16:9",
"return_last_frame": true
}'

多模态参考:图片、视频与音频​

curl "$BASE_URL/v1/contents/generations/tasks" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-0-fast",
"content": [
{"type": "text", "text": "根据参考图生成产品展示,参考视频的镜头运动和音频的节奏。"},
{"type": "image_url", "role": "reference_image", "image_url": {"url": "https://example.com/product.jpg"}},
{"type": "video_url", "role": "reference_video", "video_url": {"url": "https://example.com/motion.mp4"}},
{"type": "audio_url", "role": "reference_audio", "audio_url": {"url": "https://example.com/rhythm.mp3"}}
],
"duration": 8,
"resolution": "720p",
"ratio": "9:16",
"generate_audio": true
}'

Seedance 2.0 输入要点:

  • 单首帧、首尾帧和全模态参考分别组织请求,不混用首尾帧角色与参考素材角色。
  • 单首帧可使用 first_frame,也可省略该角色;首尾帧需分别标记 first_frame、last_frame。
  • 参考图使用 reference_image;参考视频使用 reference_video,可以单独传入。
  • 参考音频使用 reference_audio,同时至少提供一张图片或一段视频。仅音频、文本加音频不满足 Seedance 2.0 输入条件。
  • 全模态参考最多 9 张图片、3 段视频和 3 段音频;具体媒体规格以所用模型版本说明为准。

查询与获取结果​

以上创建请求返回 HTTP 200 和任务 ID:

{"id":"cgt_386cb55a950c4e4380fbe740762500a3"}

用返回的 ID 查询:

TASK_ID="cgt_386cb55a950c4e4380fbe740762500a3"
curl "$BASE_URL/v1/contents/generations/tasks/$TASK_ID" \
-H "Authorization: Bearer $API_KEY"

queued、running 时继续查询;succeeded 后读取 content.video_url,有尾帧时读取 content.last_frame_url;failed 时读取 error。媒体期限为 24 小时,截止时间见 media_expires_at;到期返回 expired 并移除媒体地址。完整响应字段与错误格式见 通用视频协议。

字节原生字段入口​

需要按字节原生字段调用时,可使用下列入口,仍使用平台 API Key 和模型 ID。请确认所选模型支持此入口。

项目平台通用入口字节原生字段入口
创建POST /v1/contents/generations/tasksPOST /api/v3/contents/generations/tasks
查询GET /v1/contents/generations/tasks/{id}GET /api/v3/contents/generations/tasks/{id}
扩展参数的位置放在 extra_parameters,例如 "extra_parameters": {"seed": 42}直接放在顶层,例如 "seed": 42
任务 ID平台任务 ID顶层 id 同样为平台任务 ID
查询结果平台字段与状态原生字段、实际模型名与状态,可能包含 cancelled、expired
媒体到期HTTP 200,status: "expired"HTTP 410,TaskMediaExpired,不再返回任务正文

不支持 callback_url 参数。

以下为 Seedance 2.0 系列原生入口的文生视频示例:

curl "$BASE_URL/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-0-fast",
"content": [{"type": "text", "text": "清晨的海面,镜头缓慢推进。"}],
"duration": 5,
"resolution": "720p",
"ratio": "16:9",
"seed": 42
}'

NATIVE_TASK_ID="ID_FROM_NATIVE_CREATE_RESPONSE"
curl "$BASE_URL/api/v3/contents/generations/tasks/$NATIVE_TASK_ID" \
-H "Authorization: Bearer $API_KEY"

将 NATIVE_TASK_ID 替换为这次原生创建返回的 id。原生入口不返回 media_expires_at;视频与尾帧仍受 24 小时访问期限限制。原生 expired 状态可表示任务执行到期,媒体访问期限到期由 HTTP 410 表达。两个入口均不提供主动取消或回调;若使用 content 内的 draft_task.id,同样填写本人平台样片任务 ID。