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"