Skip to main content
POST
图生视频:基于参考图生成视频任务
右侧的交互式 Playground 支持直接在线调试。请在 Authorization 中填入你的 API Key(格式:Bearer sk-xxx),上传一张参考图、输入 prompt、选择 model / seconds / resolution 后一键发送即可。默认分组 Default 即可调用,无需切换专属分组
场景说明:本页用于「基于参考图生成视频」——上传一张图片作为视频的视觉锚点 / 起始帧,让静态画面”动起来”。如果不需要参考图,请使用 文生视频接口(同一端点,JSON 请求体)。
⚠️ 图生视频专属约束
  • Content-Type 必须是 multipart/form-data(不是 JSON)
  • 仅支持 1 张参考图,字段名固定 input_reference,传多张只取第一张
  • 不接受远程 URL,必须是文件上传或 Base64
  • 接受格式:image/jpeg / image/png / image/webp
  • 时长字段名是 seconds(不是 duration),且必须传字符串 "4" / "6" / "8"。写成 duration 会被静默忽略、回落默认 4 秒;传数字会被拒
  • 1080p / 4k 时 seconds 必须 "8"
Google 官方 Veo 3.1 有多参考图 / 首尾帧 / 视频扩展能力,本站官转通道暂未开放。首尾帧需求请用 VEO 3.1(官逆)-fl 系列模型。

代码示例

Python(OpenAI SDK 风格 · 推荐 client.post 底层调用)

Python(原生 requests + multipart)

cURL(multipart 上传)

Node.js(原生 fetch + FormData)

浏览器 JavaScript(FileInput 上传)

已有 task_id?两条 cURL 直接查状态 / 下载

如果你已经拿到 task_id(提交任务时返回,或在控制台日志中查看),只需替换下面命令里的两处即可直接使用:
  • sk-your-api-key → 你的 API易 Key
  • task_xxxxxxxxxxxxxxxx → 你的任务 ID

1. 查询任务状态

返回 JSON 中 statuscompleted 即可进行下载;in_progress 则稍等几秒再查一次。

2. 下载视频(保存为 output.mp4)

/content 端点必须带 Authorization 请求头——直接在浏览器地址栏打开会返回 401。--retry 3 用于兜底 status 刚翻 completed 后偶发的 400(CDN 同步延迟)。

参数说明速查

multipart 与 JSON 模式的字段命名差异
  • JSON 模式下嵌套在 metadata.* 下(如 metadata.resolution
  • multipart 模式下平铺为表单字段(直接 resolution / aspectRatio / seed
  • 上面的代码示例已经按 multipart 约定写法
常见错误
  • input_reference 当作 Base64 字符串塞进 JSON body —— 必须走 multipart 文件字段
  • 字段名写成 image / reference / input_image —— 必须正好 input_reference
  • 同时传 2 张图 —— 服务端只取第一张,第二张被静默丢弃
  • 传远程 URL(如 https://cdn.../img.png)—— 不接受,必须文件或 Base64

响应格式

响应结构与 文生视频 完全一致:第 1 步返回 task_id + status: "queued",第 2 步轮询返回 status + 粗粒度 progress,第 3 步从 /content 端点下载 MP4 二进制。
⚠️ 响应字段陷阱
  • task_idid 同值,下游建议统一用 task_id
  • 没有直接的 video_url 字段,视频从 GET /v1/videos/{task_id}/content 下载
  • progress 只在 0 / 50 / 100 三档跳,不是线性进度
  • /content 端点在 status 刚翻 completed 后偶发 400,等 4 秒重试即可
  • 图生视频任务通常比同参数文生视频慢 10-30%(多了一次图像编码)
本端点是异步任务式入口,计费在任务进入 completed 时按模型名按次结算(与是否传 input_reference 无关,fast $0.3 / standard $1.2)。POST 提交、轮询查询、视频下载本身不计费,失败任务也不计费

授权

Authorization
string
header
必填

在 API易控制台获取的 API Key(默认分组 + 任意计费模式都能调通)

请求体

multipart/form-data
model
enum<string>
默认值:veo-3.1-fast-generate-preview
必填

模型 ID(按次计费):

  • veo-3.1-fast-generate-preview —— $0.3/次
  • veo-3.1-generate-preview —— $1.2/次
可用选项:
veo-3.1-fast-generate-preview,
veo-3.1-generate-preview
prompt
string
必填

视频生成提示词。重点描述如何让画面动起来:镜头运动、物体动作、光线变化、音频氛围。不要传 generateAudio,音频写进 prompt。

示例:

"镜头从灯塔基座缓慢上升至塔顶,黄昏光线,海浪轻拍礁石的声音"

input_reference
file
必填

参考图文件。字段名固定 input_reference,仅支持 1 张

接受格式:image/jpeg / image/png / image/webp不接受远程 URL,需要文件上传或 Base64。

seconds
enum<string>
默认值:8

视频时长,字段名是 seconds(不是 duration字符串枚举"4" / "6" / "8"。写成 duration 会被静默忽略、回落默认 4 秒。1080p / 4k 时必须 "8"

可用选项:
4,
6,
8
size
enum<string>
默认值:1280x720

输出像素,优先级低于 resolution

可用选项:
1280x720,
720x1280,
1920x1080,
1080x1920,
3840x2160,
2160x3840
resolution
enum<string>
默认值:720p

分辨率档位(multipart 模式下平铺为表单字段,优先级高于 size

可用选项:
720p,
1080p,
4k
aspectRatio
enum<string>
默认值:16:9

画面比例:16:9 横屏(默认)或 9:16 竖屏

可用选项:
16:9,
9:16
seed
string

随机数种子(multipart 表单字段,传字符串数字即可)。固定 seed 可让多次输出风格聚集,但不能字节级复现。

示例:

"20260521"

negativePrompt
string

反向提示词,推荐传 "blurry, watermark, distorted, low quality"

示例:

"blurry, watermark, distorted, low quality"

响应

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

id
string

任务 ID(与 task_id 同值,下游建议统一用 task_id

示例:

"task_xxxxxxxxxxxxxxxx"

task_id
string

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

示例:

"task_xxxxxxxxxxxxxxxx"

object
string

对象类型,固定 video

示例:

"video"

model
string

本次任务使用的模型 ID

示例:

"veo-3.1-fast-generate-preview"

status
enum<string>

任务状态:

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

"queued"

progress
integer

生成进度(粗粒度,只在 0 / 50 / 100 三档跳

示例:

0

created_at
integer

任务创建 Unix 时间戳(秒)

示例:

1775025000

completed_at
integer

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

示例:

1775025090