这项功能能做什么

适合让产品图、角色图、风景图产生动作。图片提供起始构图,提示词描述后续运动。这是单张起始图片模式,不能把多张图片理解成多参考图、首尾帧或多个输出。

第一步:鉴权

请求头使用 Authorization: Bearer YOUR_API_KEY,替换为完整青云 API Key;同时设置 Content-Type: application/json。

第二步:调用模型生成

POST https://top.qingyuntop.ai/v1/responses

创建成功后保存 resp_…,后续流程见查询结果与下载视频。model、seconds、metadata、background 和 stream 的完整说明见文生视频参数。

图片输入参数

参数类型必填说明
inputarray是包含一条 user 消息,content 放入文字与图片
input[].rolestring建议填写使用 user;本入口用于视频生成,不提供多轮对话记忆
input[].contentarray是推荐一项 input_text 加一项 input_image
content[].typestring是文字填 input_text,图片填 input_image
content[].textstring推荐文字项的动作、镜头、声音描述;可以只提供图片,建议同时描述动作
content[].image_urlstring图生必需图片 data URL,例如 data:image/png;base64, 后接完整 Base64

选择真实 PNG/JPEG,MIME 与文件内容必须一致。data URL 是图片数据,不是普通 HTTPS 图片地址;本入口不接受普通图片 URL。建议图片比例与输出的 16:9 或 9:16 一致;人物生成还受模型和地区限制,Veo 3.1 图生通常只接受 allow_adult。

本入口只接受 JSON,不接受 multipart 文件上传。希望直接上传本地图片文件时,使用统一格式图生视频。下面程序会读取 start.png 并编码,避免手工复制 Base64。

代码示例

cURL 示例为 Bash,需要 jq、base64;Python 需要 requests;Node.js 使用 22+ 并保存为 .mjs。将 start.png 放在程序当前目录。

set -e
base64 < start.png | tr -d '\r\n' > start.b64
jq -n --rawfile image start.b64 '{
  model: "veo-3.1-generate-preview",
  input: [{role: "user", content: [
    {type: "input_text", text: "The subject moves slowly forward. A smooth tracking shot with soft ambient sound."},
    {type: "input_image", image_url: ("data:image/png;base64," + $image)}
  ]}],
  seconds: 8,
  metadata: {resolution: "720p", aspectRatio: "16:9"},
  background: true,
  stream: false
}' > request.json
curl --fail-with-body https://top.qingyuntop.ai/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

支持的兼容写法与优先级

Responses 也接受顶层 image、input_reference、images 数组;它们必须是 data URL 或 Base64 字符串,不能是上传文件或普通图片网址。读取顺序为 image、input_reference、images、input 中的图片,去重后仅第一张进入模型。为避免图片选错,建议只使用上面的 input_image 写法,不同时传多个来源。

这与 /v1/videos 的 JSON 图片规则不同:统一视频格式使用 images[0],不能照搬 Responses 的 image 或 input_reference 别名。发送多张图不会启动官方多参考图模式。返回结构、状态和下载方法与 Responses 文生视频一致。