通用视频接口 · OpenAI 格式
创建视频
提交视频生成任务,立即返回视频对象,之后用视频 ID 查询进度和结果。所有视频模型都用这个接口,按传入的素材决定生成方式。
请求参数
请求体可以是 JSON(Content-Type: application/json),也可以是 multipart/form-data(上传本地图片时使用,OpenAI SDK 也用这种格式),不超过 32 MB。不认识的参数会被忽略。multipart 请求里,列表参数重复同一个字段即可,字段名写成 reference_images 或 reference_images[] 都可以。
请求体
提示词,描述想要生成的视频。文生视频、视频编辑和视频延长必填;图生视频、首尾帧和多模态参考可以不填,个别模型要求必填(模型列表里 prompt_required 为 true)。
不超过 10000 字(模型另有上限时以模型列表的 spec.max_prompt_length 为准)。Seedance 模型同样支持在提示词末尾写 --rs 720p --rt 16:9 --dur 5,请求体里的同名参数优先。
视频时长,单位秒,例如 "5",也可以传数字。可选值见模型列表的 spec.durations,默认是模型的默认时长(spec.default_duration)。 也可以写成 duration。
传 -1 或 auto 由模型决定时长(模型列表里 spec.auto_duration 为 true 的模型),先按最长时长冻结费用,完成后按实际时长结算,见计费规则。视频编辑生成的视频和原视频一样长,这个参数不生效。
宽x高,例如 1280x720。短边换算成分辨率(480、720、1080 分别对应 480p、720p、1080p),宽高比换算成画幅。同时传了 resolution 或 aspect_ratio 时,以它们为准。720p。可选值见模型列表的 spec.resolutions,默认是模型的默认分辨率。视频画幅,例如 16:9、9:16,可选值见模型列表的 spec.aspect_ratios。也可以写成 ratio。
- 文生视频:默认是模型的默认画幅。
- 多模态参考:不传或传
adaptive时由素材决定,也可以指定画幅。 - 图生视频、首尾帧跟随首帧图片,视频编辑和延长跟随原视频,这个参数不生效。
generate_audio。只对模型列表里 spec.audio 为 optional 的模型有效,生成声音时按有声单价计费;always 的模型总是带声音;不支持声音的模型传 true 返回错误。first_frame,两个只能传一个。input_reference。使用尾帧时必须同时传首帧。spec.reference.images。video_url)也可以直接使用。支持 mp4、mov;平台会读取视频时长用于计费,所以链接必须能公开下载。个数和总时长上限见模型列表的 spec.reference。data:audio/mpeg;base64,...),multipart 请求还可以直接上传文件。支持 mp3、wav,单个不超过 15 MB。auto 或 reference 为参考生成,edit 为视频编辑,extend 为视频延长。edit 和 extend 处理 reference_videos 里的第一个视频。也可以写成 task_type。spec.negative_prompt 为 true 的模型支持,其他模型传了返回错误。spec.seed 为 true 的模型支持,其他模型传了返回错误。生成方式
平台按传入的素材判断生成方式,各模型支持的生成方式见模型列表的 spec.modes:
| 生成方式 | input_mode | 需要传的参数 |
|---|---|---|
| 文生视频 | text | prompt |
| 图生视频 | image | input_reference(首帧) |
| 首尾帧 | frames | input_reference 和 last_frame |
| 多模态参考 | reference | reference_images、reference_videos、reference_audios 至少一项 |
| 视频编辑 | edit | reference_videos(原视频)、prompt,omni_reference_task_type 传 edit |
| 视频延长 | extend | reference_videos(原视频)、prompt,omni_reference_task_type 传 extend |
- 首帧、首尾帧不能和参考素材同时使用。需要固定首帧时,可以把图片放进参考图,并在提示词里写明「以图片1为首帧」。
- 提示词里用「图片1」「视频1」「音频1」指代参考素材,序号是同类素材在列表里的顺序。
- 上传文件和 Base64 编码的图片单张不超过 10 MB,支持 jpeg、png、webp、bmp、tiff、gif、heic、heif,更大的图片请传链接。带参考视频的任务改用「带参考视频」单价,参考视频的时长也计入费用,见计费规则。
返回参数
请求示例
文生视频见右侧的请求示例,下面是其他生成方式的写法。
图生视频
用 input_reference 传首帧图片的链接,视频画幅跟随图片。OpenAI SDK 的 input_reference 只接受文件,图片链接要放在 extra_body 里:
curl https://your-domain/v1/videos \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"prompt": "女孩抬头看向镜头,微笑着挥手,微风吹起她的头发",
"input_reference": "https://example.com/first-frame.png",
"seconds": "5",
"resolution": "720p"
}'上传本地图片
用 multipart/form-data 直接上传图片文件,单张不超过 10 MB:
curl https://your-domain/v1/videos \
-H "Authorization: Bearer $API_KEY" \
-F model=doubao-seedance-2-0-260128 \
-F prompt="女孩抬头看向镜头,微笑着挥手,微风吹起她的头发" \
-F seconds=5 \
-F input_reference=@first-frame.png首尾帧
同时传首帧和尾帧图片,视频从首帧过渡到尾帧:
curl https://your-domain/v1/videos \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"prompt": "镜头从街道缓缓升高,天色由白天过渡到黄昏,街灯依次亮起",
"first_frame": "https://example.com/first-frame.png",
"last_frame": "https://example.com/last-frame.png",
"seconds": "5"
}'多模态参考
参考图、参考视频和参考音频可以任意组合,在提示词里说明每个素材的用途:
curl https://your-domain/v1/videos \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"prompt": "图片1中的女孩穿着图片2的外套,按视频1的运镜在街头行走,背景音乐用音频1",
"reference_images": [
"https://example.com/girl.png",
"https://example.com/coat.png"
],
"reference_videos": ["https://example.com/camera-move.mp4"],
"reference_audios": ["https://example.com/bgm.mp3"],
"aspect_ratio": "16:9",
"seconds": "10"
}'视频编辑和延长
把原视频放进 reference_videos,omni_reference_task_type 传 edit(编辑)或 extend(延长),在提示词里写明要怎么改或怎么延长。
curl https://your-domain/v1/videos \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5-260628",
"prompt": "把视频1中女孩的外套换成红色羽绒服,其他内容保持不变",
"reference_videos": ["https://example.com/source.mp4"],
"omni_reference_task_type": "edit"
}'video_url 放进 reference_videos 即可。