Veo | AI 视频生成器

您可以使用 Veo on Vertex AI,根据您在 Google Cloud 控制台中提供或在请求中发送给 Vertex AI API 的文本提示或图片提示生成新视频。

试用 Veo on Vertex AI (Vertex AI Studio)

在 Colab 中试用 Veo

申请访问权限:实验性功能

Veo 2 功能和发布阶段

Veo 2 提供多个视频生成式 AI 功能。不同的发布阶段提供了这些功能。

下表介绍了面向所有用户正式发布 (GA) 的功能:

功能 说明 发布阶段
根据文本生成视频 根据描述性文本输入生成视频。 正式版

下表介绍了正式版 (GA) 功能,但需要获得批准才能使用:

功能 说明 发布阶段
根据图片生成视频 根据输入图片生成视频。 正式版(已批准的用户)

位置

位置是您可以在请求中指定的区域,用于控制静态数据的存储位置。如需查看可用区域的列表,请参阅 Vertex AI 上的生成式 AI 位置

性能和限制

限制
模态
  • 文本转视频生成
  • 图片转视频生成
API 调用(每个项目每分钟提示数) 10
请求延迟时间 视频通常会在几分钟内生成,但在高峰期可能需要更长时间。
每个请求返回的视频数量上限 4
视频时长上限 8 秒
支持返回的视频分辨率(像素) 720p
帧速率 每秒 24 帧 (FPS)
宽高比
  • 16:9 - 横向
  • 9:16 - 纵向
请求中上传或发送的图片大小上限(图片转视频生成) 20 MB

Responsible AI

Veo 2 可根据自然语言文本和图片提示生成逼真且高质量的视频,包括所有年龄段的人物图片。根据您提供的文本或图片提示的上下文,Veo 2 可能会显示一条错误消息,指示您的Google Cloud 项目需要获得人物或儿童生成的批准。

如果您需要获得批准,请与您的 Google 客户代表联系。

Veo Vertex AI 模型版本和生命周期

Veo 模型和版本如下所示:

模型名称 版本
Veo 2 veo-2.0-generate-001

准备工作

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. 为您的环境设置身份验证。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

根据文本生成视频

您可以仅使用描述性文本作为输入来生成新视频。以下示例展示了生成视频的基本说明。

Gen AI SDK for Python

安装

pip install --upgrade google-genai

如需了解详情,请参阅 SDK 参考文档

设置环境变量以将 Gen AI SDK 与 Vertex AI 搭配使用:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

import time
from google import genai
from google.genai.types import GenerateVideosConfig

client = genai.Client()

# TODO(developer): Update and un-comment below line
# output_gcs_uri = "gs://your-bucket/your-prefix"

operation = client.models.generate_videos(
    model="veo-2.0-generate-001",
    prompt="a cat reading a book",
    config=GenerateVideosConfig(
        aspect_ratio="16:9",
        output_gcs_uri=output_gcs_uri,
    ),
)

while not operation.done:
    time.sleep(15)
    operation = client.operations.get(operation)
    print(operation)

if operation.response:
    print(operation.result.generated_videos[0].video.uri)

# Example response:
# gs://your-bucket/your-prefix

REST

设置您的环境后,您可以使用 REST 测试文本提示。以下示例会向发布方模型端点发送请求。

如需详细了解 veo-2.0-generate-001 模型请求,请参阅 veo-2.0-generate-001 模型 API 参考文档

  1. 使用以下命令发送视频生成请求。此请求会启动长时间运行的操作,并将输出存储到您指定的 Cloud Storage 存储桶。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目 ID
    • MODEL_ID:要使用的模型 ID。可用的值:
      • veo-2.0-generate-001(GA 许可名单)
    • TEXT_PROMPT:用于指导视频生成的文本提示。
    • OUTPUT_STORAGE_URI:可选:用于存储输出视频的 Cloud Storage 存储桶。如果未提供,则回答中会返回视频字节。例如:gs://video-bucket/output/
    • RESPONSE_COUNT:您要生成的视频文件数量。接受的整数值:1-4。
    • DURATION:您要生成的视频文件的长度。接受的整数值为 5-8。
    • 其他可选参数

      根据您的应用场景,使用以下可选变量。在 "parameters": {} 对象中添加以下部分或全部参数。

      "parameters": {
        "aspectRatio": "ASPECT_RATIO",
        "negativePrompt": "NEGATIVE_PROMPT",
        "personGeneration": "PERSON_SAFETY_SETTING",
        "sampleCount": RESPONSE_COUNT,
        "seed": SEED_NUMBER
      }
      • ASPECT_RATIO:字符串。可选。定义所生成视频的宽高比。值:16:9(默认,横向)或 9:16(纵向)。
      • NEGATIVE_PROMPT:字符串。可选。用于描述您想要阻止模型生成的内容的文本字符串。
      • PERSON_SAFETY_SETTING:字符串。可选。用于控制是否允许人物或人脸生成的安全设置。值:
        • allow_adult(默认值):仅允许生成成年人。
        • disallow:禁止在图片中包含人物或人脸。
      • RESPONSE_COUNT:int。可选。请求的输出图片数量。值:1-4
      • SEED_NUMBER:uint32。可选。用于使生成的视频具有确定性的数字。通过在请求中指定种子编号而无需更改其他参数,可引导模型生成相同的视频。值:0 - 4294967295

    HTTP 方法和网址:

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning

    请求 JSON 正文:

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT"
        }
      ],
      "parameters": {
        "storageUri": "OUTPUT_STORAGE_URI",
        "sampleCount": "RESPONSE_COUNT"
      }
    }
    

    如需发送请求,请选择以下方式之一:

    curl

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning"

    PowerShell

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning" | Select-Object -Expand Content
    此请求会返回包含唯一操作 ID 的完整操作名称。使用此完整操作名称轮询视频生成请求的状态。
    {
      "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
    }
    

  2. 可选:检查视频生成长时间运行操作的状态。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目 ID
    • MODEL_ID:要使用的模型 ID。可用的值:
      • veo-2.0-generate-001(GA 许可名单)
    • OPERATION_ID:在原始生成视频请求中返回的唯一操作 ID。

    HTTP 方法和网址:

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation

    请求 JSON 正文:

    {
      "operationName": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID"
    }
    

    如需发送请求,请选择以下方式之一:

    curl

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation"

    PowerShell

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation" | Select-Object -Expand Content
    此请求会返回有关操作的信息,包括操作是否仍在运行或已完成。

控制台

  1. 在 Google Cloud 控制台中,依次前往 Vertex AI Studio > 媒体工作室页面。

    Media Studio

  2. 点击视频

  3. 可选:在设置窗格中,配置以下设置:

    • 型号:从可用选项中选择型号。
    • 宽高比:选择 16:99:16
    • 结果数量:调整滑块或输入一个介于 14 之间的值。
    • 视频时长:选择时长介于 5 秒8 秒之间。
    • 输出目录:点击浏览以创建或选择 Cloud Storage 存储桶来存储输出文件。
  4. 可选:在安全部分,选择以下生成人像设置之一:

    • 允许(仅限成人):默认值。仅生成成年人物或人脸。请勿生成青少年或儿童的人物或人脸。
    • 不允许:不生成人物或人脸。
  5. 可选:在高级选项部分中,输入种子值以对视频生成进行随机化处理。

  6. 编写提示框中,输入文本提示,描述要生成的视频。

  7. 点击 生成

根据图片生成视频

示例输入 示例输出
  1. 输入图片*
    输入钩针编织的大象的 PNG 文件
  2. 文本提示:大象自然地四处走动

钩针编织的象的输出视频

* 使用 Imagen on Vertex AI 根据以下提示生成的图片:一只编织的象,图案繁复,正在草原上行走

您可以仅使用图片作为输入来生成新视频,也可以同时使用图片和描述性文本作为输入来生成新视频。以下示例展示了如何通过图片和文本生成视频的基本说明。

Gen AI SDK for Python

安装

pip install --upgrade google-genai

如需了解详情,请参阅 SDK 参考文档

设置环境变量以将 Gen AI SDK 与 Vertex AI 搭配使用:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

import time
from google import genai
from google.genai.types import GenerateVideosConfig, Image

client = genai.Client()

# TODO(developer): Update and un-comment below line
# output_gcs_uri = "gs://your-bucket/your-prefix"

operation = client.models.generate_videos(
    model="veo-2.0-generate-001",
    image=Image(
        gcs_uri="gs://cloud-samples-data/generative-ai/image/flowers.png",
        mime_type="image/png",
    ),
    config=GenerateVideosConfig(
        aspect_ratio="16:9",
        output_gcs_uri=output_gcs_uri,
    ),
)

while not operation.done:
    time.sleep(15)
    operation = client.operations.get(operation)
    print(operation)

if operation.response:
    print(operation.result.generated_videos[0].video.uri)

# Example response:
# gs://your-bucket/your-prefix

REST

设置您的环境后,您可以使用 REST 测试文本提示。以下示例会向发布方模型端点发送请求。

如需详细了解 veo-2.0-generate-001 模型请求,请参阅 veo-2.0-generate-001 模型 API 参考文档

  1. 使用以下命令发送视频生成请求。此请求会启动长时间运行的操作,并将输出存储到您指定的 Cloud Storage 存储桶。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目 ID
    • MODEL_ID:要使用的模型 ID。可用的值:
      • veo-2.0-generate-001(GA 许可名单)
    • TEXT_PROMPT:用于指导视频生成的文本提示。
    • INPUT_IMAGE:表示输入图片的 base64 编码字节串。为确保质量,输入图片应为 720p 或更高(1280 x 720 像素),宽高比应为 16:9 或 9:16。其他宽高比或尺寸的图片可能会在上传过程中调整大小或进行中心剪裁。
    • MIME_TYPE:输入图片的 MIME 类型。仅支持以下 MIME 类型的图片:image/jpegimage/png
    • OUTPUT_STORAGE_URI:可选:用于存储输出视频的 Cloud Storage 存储桶。如果未提供,则回答中会返回视频字节。例如:gs://video-bucket/output/
    • RESPONSE_COUNT:您要生成的视频文件数量。接受的整数值:1-4。
    • DURATION:您要生成的视频文件的长度。接受的整数值为 5-8。
    • 其他可选参数

      根据您的应用场景,使用以下可选变量。在 "parameters": {} 对象中添加以下部分或全部参数。

      "parameters": {
        "aspectRatio": "ASPECT_RATIO",
        "negativePrompt": "NEGATIVE_PROMPT",
        "personGeneration": "PERSON_SAFETY_SETTING",
        "sampleCount": RESPONSE_COUNT,
        "seed": SEED_NUMBER
      }
      • ASPECT_RATIO:字符串。可选。定义所生成视频的宽高比。值:16:9(默认,横向)或 9:16(纵向)。
      • NEGATIVE_PROMPT:字符串。可选。用于描述您想要阻止模型生成的内容的文本字符串。
      • PERSON_SAFETY_SETTING:字符串。可选。用于控制是否允许人物或人脸生成的安全设置。值:
        • allow_adult(默认值):仅允许生成成年人。
        • disallow:禁止在图片中包含人物或人脸。
      • RESPONSE_COUNT:int。可选。请求的输出图片数量。值:1-4
      • SEED_NUMBER:uint32。可选。用于使生成的视频具有确定性的数字。通过在请求中指定种子编号而无需更改其他参数,可引导模型生成相同的视频。值:0 - 4294967295

    HTTP 方法和网址:

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning

    请求 JSON 正文:

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT",
          "image": {
            "bytesBase64Encoded": "INPUT_IMAGE",
            "mimeType": "MIME_TYPE"
          }
        }
      ],
      "parameters": {
        "storageUri": "OUTPUT_STORAGE_URI",
        "sampleCount": RESPONSE_COUNT
      }
    }
    

    如需发送请求,请选择以下方式之一:

    curl

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning"

    PowerShell

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning" | Select-Object -Expand Content
    此请求会返回包含唯一操作 ID 的完整操作名称。使用此完整操作名称轮询视频生成请求的状态。
    {
      "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
    }
    

  2. 可选:检查视频生成长时间运行操作的状态。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:您的 Google Cloud 项目 ID
    • MODEL_ID:要使用的模型 ID。可用的值:
      • veo-2.0-generate-001
    • TEXT_PROMPT:用于指导视频生成的文本提示。
    • OUTPUT_STORAGE_URI:可选:用于存储输出视频的 Cloud Storage 存储桶。如果未提供,则回答中会返回视频字节。例如:gs://video-bucket/output/
    • RESPONSE_COUNT:您要生成的视频文件数量。接受的整数值:1-4。
    • 其他可选参数

      根据您的应用场景,使用以下可选变量。在 "parameters": {} 对象中添加以下部分或全部参数。

      "parameters": {
        "aspectRatio": "ASPECT_RATIO",
        "negativePrompt": "NEGATIVE_PROMPT",
        "personGeneration": "PERSON_SAFETY_SETTING",
        "sampleCount": RESPONSE_COUNT,
        "seed": SEED_NUMBER
      }
      • ASPECT_RATIO:字符串。可选。定义所生成视频的宽高比。值:16:9(默认,横向)或 9:16(纵向)。
      • NEGATIVE_PROMPT:字符串。可选。用于描述您想要阻止模型生成的内容的文本字符串。
      • PERSON_SAFETY_SETTING:字符串。可选。用于控制是否允许人物或人脸生成的安全设置。值:
        • allow_adult(默认值):仅允许生成成年人。
        • disallow:禁止在图片中包含人物或人脸。
      • RESPONSE_COUNT:int。可选。请求的输出图片数量。值:1-4
      • SEED_NUMBER:uint32。可选。用于使生成的视频具有确定性的数字。通过在请求中指定种子编号而无需更改其他参数,可引导模型生成相同的视频。值:0 - 4294967295

    HTTP 方法和网址:

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning

    请求 JSON 正文:

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT"
        }
      ],
      "parameters": {
        "storageUri": "OUTPUT_STORAGE_URI",
        "sampleCount": "RESPONSE_COUNT"
      }
    }
    

    如需发送请求,请选择以下方式之一:

    curl

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning"

    PowerShell

    将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning" | Select-Object -Expand Content
    此请求会返回包含唯一操作 ID 的完整操作名称。使用此完整操作名称轮询视频生成请求的状态。
    {
      "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
    }
    

控制台

  1. 在 Google Cloud 控制台中,依次前往 Vertex AI > Media Studio 页面。

    Media Studio

  2. 在底部面板中,选择 Generate videos(生成视频)按钮。

  3. 可选:在设置窗格中,从可用选项中选择模型

  4. 宽高比部分,为输出视频选择宽高比。

  5. 结果数量部分,接受默认值或修改生成的视频数量。

  6. 输出目录字段中,点击浏览以创建或选择 Cloud Storage 存储桶来存储输出文件。

  7. 可选:修改安全设置高级选项

  8. 提示字段(撰写提示…)中,点击上传

  9. 选择要上传的本地图片,然后点击选择

  10. 提示字段(撰写提示…)中,添加文本提示,说明要生成的视频。

  11. 点击生成

提示增强功能

Veo 2 模型提供了重写提示的选项,以便为提示添加美学和电影细节。提示越详细,视频画质就越高。

后续步骤