Skip to main content
POST
图生视频:基于参考图生成视频任务
右侧的交互式 Playground 支持直接在线调试。请在 Authorization 中填入你的 API Key(格式:Bearer sk-xxx),上传一张参考图、输入 prompt、选择 model / size / seconds 后一键发送即可。
场景说明:本页用于「基于参考图生成视频」——上传一张图片作为视频的起始帧/视觉锚点,让静态画面”动起来”。如果不需要参考图,请使用 文生视频接口(同一端点,JSON 请求体)。
⚠️ 参考图分辨率必须与 size 完全一致
  • 上传图片的像素尺寸必须与请求的 size 字段完全一致(如 size=1280x720 则图片必须是 1280×720)
  • 不一致会返回 400:Inpaint image must match the requested width and height
  • 建议先用 ffmpeg / Pillow 在本地裁切到目标尺寸再上传
其它注意事项:
  • Content-Type 必须是 multipart/form-data(不是 JSON)
  • 仅支持 1 个文件,字段名固定 input_reference
  • 接受格式:image/jpeg / image/png / image/webp

代码示例

Python(OpenAI SDK 直连)

Python(原生 requests + multipart)

cURL

Node.js(原生 fetch + FormData)

浏览器 JavaScript

参数说明速查

详细的参数约束、可选值、示例请查看右侧 Playground 中的字段说明。input_reference 字段必须通过 multipart 文件上传,不接受 URL 或 base64。

参考图准备建议

1

确定目标分辨率

根据用途先选 size:竖屏 720x1280、横屏 1280x720、Pro 1080p 横屏 1920x1080 等。
2

本地裁切到精确像素

用 Pillow / ffmpeg 把图片裁切到目标尺寸:
或 ffmpeg 一行:
3

选合适的图片格式

优先 PNG(无损,适合插画 / 截图),照片类用 JPEG 节省体积,需要透明通道用 WebP。
4

prompt 聚焦「动作」而不是「画面」

参考图已经定了画面,prompt 应该重点描述如何让它动起来:镜头推拉、物体运动、光线变化、人物表情等。例:"Camera slowly pushes in, leaves gently swaying, sunlight flickering through branches"

响应格式

响应结构与 文生视频 完全相同:提交返回 id + status: "queued",轮询返回进度,完成后通过 /v1/videos/{id}/content 下载 MP4。
⚠️ 常见 400 错误
  • Inpaint image must match the requested width and height —— 参考图像素与 size 不一致,最常见。客户端做好上传前的尺寸校验
  • Invalid file format —— 上传的不是 jpeg / png / webp,或文件损坏
  • Missing required parameter: input_reference —— multipart 字段名拼错(必须是 input_reference,不是 imagereference
  • seconds must be one of "4", "8", "12" —— 传了数字 4 而非字符串 "4"
图生视频与文生视频单价相同(按 seconds 计费),并不会因为多上传了一张参考图额外收费。详见 概览页定价表

授权

Authorization
string
header
必填

在 API易控制台获取的 API Key(必须配置 Sora2官转 分组 + 按量计费)

请求体

multipart/form-data
model
enum<string>
默认值:sora-2
必填

模型 ID。sora-2 仅支持 720p;sora-2-pro 支持 720p / 1024p / 1080p

可用选项:
sora-2,
sora-2-pro
prompt
string
必填

视频生成提示词。重点描述如何让画面动起来:镜头运动、物体动作、光线变化

示例:

"Animate this scene: gentle waves lapping, leaves swaying, cinematic camera push-in"

input_reference
file
必填

参考图文件,作为视频的起始帧/视觉锚点。

  • 接受格式:image/jpeg / image/png / image/webp
  • 像素必须等于 size,否则报错 Inpaint image must match the requested width and height
  • 仅支持 1 个文件,字段名固定 input_reference
seconds
enum<string>
默认值:4

视频时长,字符串枚举"4" / "8" / "12"

可用选项:
4,
8,
12
size
enum<string>
默认值:720x1280

输出分辨率,必须与 input_reference 图片像素完全一致

  • sora-2(仅 720p):720x1280 / 1280x720
  • sora-2-pro 额外:1024x1792 / 1792x1024 / 1080x1920 / 1920x1080
可用选项:
720x1280,
1280x720,
1024x1792,
1792x1024,
1080x1920,
1920x1080

响应

任务已提交,返回 video_id 与 queued 状态

id
string

任务 ID,用于后续轮询和下载

示例:

"video_abc123def456"

object
string

对象类型,固定 video

示例:

"video"

model
string

本次任务使用的模型 ID

示例:

"sora-2"

status
enum<string>

任务状态:

  • queued —— 已提交,排队等待
  • in_progress —— 正在生成
  • completed —— 完成,可下载(/v1/videos/{id}/content
  • failed —— 失败(不计费),可重试
可用选项:
queued,
in_progress,
completed,
failed
示例:

"queued"

progress
integer

生成进度百分比(0–100),不严格线性

示例:

0

created_at
integer

任务创建 Unix 时间戳(秒)

示例:

1712697600

completed_at
integer

任务完成 Unix 时间戳(秒),仅 completed 状态返回

示例:

1712697900

size
string

实际输出分辨率(与请求的 size 一致)

示例:

"1280x720"

seconds
string

实际生成时长(与请求的 seconds 一致)

示例:

"8"

quality
string

画质档位(standard 对应 sora-2,high 对应 sora-2-pro)

示例:

"standard"