Skip to main content

Veo-3 视频生成示例

以下示例展示如何使用 Veo-3模型生成高质量的视频内容。Veo-3是Google最新的视频生成模型,支持高分辨率、长时长的视频生成。

快速开始

# 1. 提交视频生成任务
curl -X POST "https://api.tokenops.ai/v1beta/models/veo-3.0-generate-001:predictLongRunning" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <API-KEY>" \
  -d '{
    "instances": [
      {
        "prompt": "一个年轻的渔夫在海边举着一条大鱼,阳光明媚,背景是蔚蓝的大海和晴朗的天空"
      }
    ],
    "parameters": {
      "aspectRatio": "16:9",
      "durationSeconds": 4,
      "enhancePrompt": true,
      "resolution": "720p",
      "sampleCount": 1,
      "seed": 12345,
      "compressionQuality": "OPTIMIZED"
    }
  }'

# 2. 查询任务状态(使用返回的 name 字段作为完整路径)
# name 格式: projects/{project}/locations/{location}/publishers/{publisher}/models/{model}/operations/{operation_id}
curl -X GET "https://api.tokenops.ai/v1beta/{name}" \
  -H "Authorization: Bearer <API-KEY>"

支持的参数

Instance 参数

参数说明版本限制
prompt文本描述,支持音频提示词(对话、音效、环境音)所有版本
image首帧动画,将静态图片作为视频起点所有版本
lastFrame结束帧插值,定义视频最后一帧Veo 3.1+
video源视频扩展,延长已有视频(最长20次)Veo 3.1/Fast(Lite不支持)
referenceImages参考图片数组,引导内容风格(最多3张)Veo 3.1 only

Configuration 参数

  • aspectRatio: 视频宽高比(“16:9” 默认、“9:16”)
  • durationSeconds: 视频时长(4、6、8秒)。使用1080p/4k、扩展或参考图片时必须为8秒
  • resolution: 视频分辨率(“720p” 默认、“1080p”、“4k”)。4k不支持Lite版本;扩展功能仅支持720p
  • sampleCount: 生成视频数量(1-4)
  • seed: 随机种子(0-4,294,967,295),用于可重复生成
  • enhancePrompt: 是否使用 Gemini 优化提示词(默认true,建议保持)
  • generateAudio: 是否生成音频(true/false)。Veo 3 特色,支持同步对话和音效
  • negativePrompt: 负向提示词,描述不希望出现的内容
  • compressionQuality: 压缩质量(“optimized” 默认、“lossless”)
  • personGeneration: 人物生成控制。文生视频和扩展支持”allow_all”,图生视频、插帧和参考图片仅支持”allow_adult”

音频提示词示例

Veo 3 支持在 prompt 中描述音频内容:
{
  "prompt": "一位年轻女性在海边笑着说:'今天天气真好!',海浪声作为背景音"
}

各版本功能差异

功能Veo 3.1Veo 3.1 FastVeo 3.1 LiteVeo 3Veo 2
视频扩展
首尾帧插值
多参考图片
4K分辨率
原生音频

图片参考生成

Veo 支持多种图片参考方式来引导视频生成:

图片参数类型

参数说明限制
image首帧动画 - 将静态图片作为视频起点支持各种时长
lastFrame结束帧插值 - 定义视频最后一帧必须配合 image 使用,时长必须为8秒
referenceImages参考图数组 - 引导视频内容和风格最多3张,时长必须为8秒,仅支持16:9和720p
referenceType 可选值
  • ASSET - 提供资产(场景、物体、角色等),视频会参考图片中的内容
  • STYLE - 提供风格(颜色、光照、纹理等),视频会参考图片的视觉风格
重要限制:ASSET 和 STYLE 不能在同一请求中同时使用,只能选择一种类型。

多参考图片示例

使用 referenceImages 参数可以传入最多 3 张参考图片来引导视频生成的风格和内容:
# 多参考图片功能建议使用 veo-3.1-generate-001
curl -X POST "https://api.tokenops.ai/v1beta/models/veo-3.1-generate-001:predictLongRunning" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <API-KEY>" \
  -d '{
    "instances": [
      {
        "prompt": "一只小猫在花园里玩耍,保持参考图片的风格和氛围",
        "referenceImages": [
          {
            "image": {
              "bytesBase64Encoded": "<BASE64_IMAGE_1>",
              "mimeType": "image/jpeg"
            },
            "referenceType": "ASSET"
          },
          {
            "image": {
              "bytesBase64Encoded": "<BASE64_IMAGE_2>",
              "mimeType": "image/jpeg"
            },
            "referenceType": "ASSET"
          }
        ]
      }
    ],
    "parameters": {
      "aspectRatio": "16:9",
      "durationSeconds": 8,
      "resolution": "720p",
      "enhancePrompt": true
    }
  }'

首尾帧插值示例

使用 image(首帧)和 lastFrame(尾帧)参数可以精确控制视频的开始和结束画面:
# 步骤1: 提交首尾帧插值任务
curl -X POST "https://api.tokenops.ai/v1beta/models/veo-3.1-generate-001:predictLongRunning" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <API-KEY>" \
  -d '{
    "instances": [
      {
        "prompt": "镜头从海边日出缓缓过渡到日落,描绘一天的时间流逝",
        "image": {
          "bytesBase64Encoded": "<BASE64_FIRST_FRAME>",
          "mimeType": "image/png"
        },
        "lastFrame": {
          "bytesBase64Encoded": "<BASE64_LAST_FRAME>",
          "mimeType": "image/png"
        }
      }
    ],
    "parameters": {
      "aspectRatio": "16:9",
      "durationSeconds": 8,
      "resolution": "720p",
      "enhancePrompt": true
    }
  }'

# 步骤2: 轮询任务状态(使用返回的 name 字段)
# 返回示例: {"name": "projects/xxx/locations/global/publishers/google/models/veo-3.1-generate-001/operations/abc123"}
curl -X GET "https://api.tokenops.ai/v1beta/{name}" \
  -H "Authorization: Bearer <API-KEY>"
# 返回示例: {"name": "projects/xxx/locations/us-central1/operations/abc123"}
curl -X GET "https://api.tokenops.ai/v1beta/projects/xxx/locations/us-central1/operations/abc123" \
  -H "Authorization: Bearer <API-KEY>"

# 步骤3: 当 done=true 时,从 response.generatedVideos[0].video 中获取视频数据

轮询接口说明

路径格式
GET /v1beta/projects/{project}/locations/{location}/publishers/{publisher}/models/{model}/operations/{operation_id}
注意:提交任务返回的 name 字段即为完整的轮询路径,可直接使用。
步骤接口说明
提交任务POST /v1beta/models/{model}:predictLongRunning需要 Content-Type: application/json
查询状态GET /v1beta/{name}不需要 Content-Type 头,仅需 Authorization
获取视频从状态响应的 response.generatedVideos 中提取支持 urivideoBytes (base64)
重要提示:GET 查询请求不要带 Content-Type: application/json 头,否则会导致错误 2005 “parse request param fail”。
# 正确的请求头配置
headers_post = {
    'Authorization': 'Bearer <API-KEY>',
    'Content-Type': 'application/json'  # POST 提交任务需要
}
headers_get = {
    'Authorization': 'Bearer <API-KEY>'  # GET 查询状态不需要 Content-Type
}
建议轮询间隔: 15秒,视频生成通常需要 30秒-5分钟。

图片参考使用限制

功能durationSecondsaspectRatioresolution
文本生成视频4, 6, 816:9, 9:16720p, 1080p
首帧动画 (image)4, 6, 816:9, 9:16720p, 1080p
首尾帧插值 (image + lastFrame)仅 816:9, 9:16720p, 1080p
多参考图片 (referenceImages)仅 8仅 16:9仅 720p

视频生成流程

  1. 提交任务: 发送predictLongRunning请求,获得操作名称
  2. 等待处理: 轮询操作状态直到完成
  3. 下载视频: 从响应中提取视频数据并保存

响应示例

任务提交响应

{
  "name": "projects/gcp-quwan-gemini/locations/us-central1/publishers/google/models/veo-3.0-generate-001/operations/2cd6428a-24c4-4a35-be15-65b62861c2ba"
}

状态查询响应(进行中)

{
  "name": "projects/gcp-quwan-gemini/locations/us-central1/publishers/google/models/veo-3.0-generate-001/operations/2cd6428a-24c4-4a35-be15-65b62861c2ba",
  "done": false
}

状态查询响应(完成)

{
  "done": true,
  "name": "projects/gcp-quwan-gemini/locations/us-central1/publishers/google/models/veo-3.0-generate-001/operations/2cd6428a-24c4-4a35-be15-65b62861c2ba",
  "response": {
    "generatedVideos": [
      {
        "video": {
          "mimeType": "video/mp4",
          "uri": "https://example.com/video.mp4",
          "videoBytes": "<base64>"
        }
      }
    ]
  }
}