根据参考内容生成视频

您可以使用 Gemini Enterprise Agent Platform 上的 Gemini Omni Flash 或 Veo,通过参考图片或视频引导视频生成。

以下模型支持参考图片:

Gemini Omni Flash

借助 Gemini Omni Flash,您可以在生成视频时使用参考图片或视频为模型提供更多输入内容。

点击即可展开支持的模型

Veo

借助 Gemini Enterprise Agent Platform 上的 Veo,您可以使用参考对象图片来指导生成的视频。您最多可以提供三张同一人物、角色或产品的图片。Veo 会在输出视频中保留主题的外观。

点击即可展开支持的模型

如需详细了解如何编写有效的文本提示来生成视频,请参阅视频生成提示指南。

在 Colab 中试用 Gemini Omni Flash

准备工作

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Enable the Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

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

    选择标签页以了解您打算如何使用本页面上的示例:

    控制台

    当您使用 Cloud de Confiance 控制台访问 Cloud de Confiance by S3NS 服务和 API 时,无需设置身份验证。

    Python

    如需在本地开发环境中使用本页面上的 Python 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭证设置应用默认凭据。

    1. 安装 Google Cloud CLI。

    2. 配置 gcloud CLI 以使用您的联合身份。

      如需了解详情,请参阅 使用联合身份登录 gcloud CLI。

    3. 为您的用户账号创建本地身份验证凭证:

      gcloud auth application-default login

      如果返回身份验证错误,请确认您已 使用联合身份登录 gcloud CLI。

    如需了解详情,请参阅 Cloud de Confiance 身份验证文档中的 为本地开发环境设置 ADC。

    REST

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

      安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。

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

使用 Gemini Omni Flash 和参考内容生成视频

REST

视频生成可能需要超过一分钟才能完成。您可以根据自己的工作流,从多种互动模式中进行选择:

  • 同步:无状态:在单个请求中生成视频,而无需在服务器上保留互动状态。
  • 同步:有状态:将 store 设置为 true 可持久保存互动状态,以便您稍后检索结果或引用互动 ID 进行多轮视频编辑。
  • 同步:有状态流式传输:将 store 和 stream 都设置为 true,以便在模型思考过程生成时逐步接收,随后接收输出视频。
  • 异步:将 background 设置为 true,以便在后台运行视频生成,并稍后使用互动 ID 检索结果。

存储的互动和异步互动最长会保留 14 天。

如需详细了解如何使用 Gemini Omni Flash API,请参阅Interactions API。

同步:无状态

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

  • PROJECT_ID:表示您的 Cloud de Confiance by S3NS 项目 ID 的字符串。
  • MODEL_ID:表示要使用的模型 ID 的字符串。接受的值如下:
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT:用于指导视频生成的文本提示。
  • CLOUD_STORAGE_IMAGE_URI: 一个字符串,表示包含输入图片的 Cloud Storage 存储桶。例如:"gs://video-bucket/input/"。
  • IMAGE_MIME: 表示图片 MIME 类型的字符串。接受的值如下:
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI:一个字符串,表示包含输入视频的 Cloud Storage 存储桶。例如:"gs://video-bucket/input/"。
  • VIDEO_MIME: 表示视频 MIME 类型的字符串。接受的值如下:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI:可选:一个字符串,表示用于存储输出视频的 Cloud Storage 存储桶。如果未提供,则回答中会返回视频字节。 例如:"gs://video-bucket/output/"。
  • ASPECT_RATIO:(可选)一个字符串,表示输出视频的预期宽高比。如果未提供,系统会根据提示推断宽高比。 接受的值如下:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

    可选:表示视频输出分辨率的字符串。如果未提供,则输出默认设置为 720p。

    gemini-omni-1.1-flash-preview 支持以下值:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview 仅支持 "720p"。

  • DURATION:一个字符串,表示生成的视频文件的时长。允许的字符串是介于 3 和 10 之间的整数,后跟“s”(表示秒)。例如:"10s"。

HTTP 方法和网址:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

请求 JSON 正文:

{
  "model": "MODEL_ID",
  "input": [
    {
      "type": "text",
      "text": "TEXT_PROMPT Use the image(s) as references to
      generate the video."
    },
    {
      "type": "image",
      "uri": "CLOUD_STORAGE_IMAGE_URI",
      "mime_type": "IMAGE_MIME"
    },
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "reference_to_video"
    }
  }
}

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

curl

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

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
响应包含一个互动,其中包含模型想法和输出视频。
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "uri":"gs://some/output_path/123.mp4",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

同步:有状态

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

  • PROJECT_ID:表示您的 Cloud de Confiance by S3NS 项目 ID 的字符串。
  • MODEL_ID:表示要使用的模型 ID 的字符串。接受的值如下:
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT:用于指导视频生成的文本提示。
  • CLOUD_STORAGE_IMAGE_URI: 一个字符串,表示包含输入图片的 Cloud Storage 存储桶。例如:"gs://video-bucket/input/"。
  • IMAGE_MIME: 表示图片 MIME 类型的字符串。接受的值如下:
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI:一个字符串,表示包含输入视频的 Cloud Storage 存储桶。例如:"gs://video-bucket/input/"。
  • VIDEO_MIME: 表示视频 MIME 类型的字符串。接受的值如下:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI:可选:一个字符串,表示用于存储输出视频的 Cloud Storage 存储桶。如果未提供,则回答中会返回视频字节。 例如:"gs://video-bucket/output/"。
  • ASPECT_RATIO:(可选)一个字符串,表示输出视频的预期宽高比。如果未提供,系统会根据提示推断宽高比。 接受的值如下:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

    可选:表示视频输出分辨率的字符串。如果未提供,则输出默认设置为 720p。

    gemini-omni-1.1-flash-preview 支持以下值:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview 仅支持 "720p"。

  • DURATION:一个字符串,表示生成的视频文件的时长。允许的字符串是介于 3 和 10 之间的整数,后跟“s”(表示秒)。例如:"10s"。

HTTP 方法和网址:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

请求 JSON 正文:

{
  "model": "MODEL_ID",
  "background": false,
  "store": true,
  "stream": false,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "TEXT_PROMPT Use the image(s) as references to generate the video."
        },
        {
          "type": "image",
          "uri": "CLOUD_STORAGE_IMAGE_URI",
          "mime_type": "IMAGE_MIME"
        },
        {
          "type": "video",
          "uri": "CLOUD_STORAGE_VIDEO_URI",
          "mime_type": "VIDEO_MIME"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ]
}

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

curl

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

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
回答包含一次互动,其中包含模型思考过程和输出视频。
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "uri":"gs://some/output_path/123.mp4",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction",
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}
使用 INTERACTION_ID 获取生成的视频:

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

  • PROJECT_ID:表示您的 Cloud de Confiance by S3NS 项目 ID 的字符串。
  • INTERACTION_ID:异步请求中的互动 ID。

HTTP 方法和网址:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

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

curl

执行以下命令:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

执行以下命令:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
响应采用类似于以下内容的格式:
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought"
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

同步:有状态的流式传输

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

  • PROJECT_ID:表示您的 Cloud de Confiance by S3NS 项目 ID 的字符串。
  • MODEL_ID:表示要使用的模型 ID 的字符串。接受的值如下:
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT:用于指导视频生成的文本提示。
  • CLOUD_STORAGE_IMAGE_URI: 一个字符串,表示包含输入图片的 Cloud Storage 存储桶。例如:"gs://video-bucket/input/"。
  • IMAGE_MIME: 表示图片 MIME 类型的字符串。接受的值如下:
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI:一个字符串,表示包含输入视频的 Cloud Storage 存储桶。例如:"gs://video-bucket/input/"。
  • VIDEO_MIME: 表示视频 MIME 类型的字符串。接受的值如下:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI:可选:一个字符串,表示用于存储输出视频的 Cloud Storage 存储桶。如果未提供,则回答中会返回视频字节。 例如:"gs://video-bucket/output/"。
  • ASPECT_RATIO:(可选)一个字符串,表示输出视频的预期宽高比。如果未提供,系统会根据提示推断宽高比。 接受的值如下:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

    可选:表示视频输出分辨率的字符串。如果未提供,则输出默认设置为 720p。

    gemini-omni-1.1-flash-preview 支持以下值:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview 仅支持 "720p"。

  • DURATION:一个字符串,表示生成的视频文件的时长。允许的字符串是介于 3 和 10 之间的整数,后跟“s”(表示秒)。例如:"10s"。

HTTP 方法和网址:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

请求 JSON 正文:

{
  "model": "MODEL_ID",
  "background": false,
  "store": true,
  "stream": true,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "TEXT_PROMPT Use the image(s) as references to generate the video."
        },
        {
          "type": "image",
          "uri": "CLOUD_STORAGE_IMAGE_URI",
          "mime_type": "IMAGE_MIME"
        },
        {
          "type": "video",
          "uri": "CLOUD_STORAGE_VIDEO_URI",
          "mime_type": "VIDEO_MIME"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ]
}

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

curl

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

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
回答包含一次互动,其中包含模型思考过程和输出视频。
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-flash-preview"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"signature":"...","type":"thought_signature"},"event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":1,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":1,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":17812,"total_input_tokens":21,"input_tokens_by_modality":[{"modality":"text","tokens":21}],"total_output_tokens":17376,"output_tokens_by_modality":[{"modality":"video","tokens":17376}],"total_thought_tokens":415},"created":"2026-08-12T21:26:20Z","updated":"2026-08-12T21:26:20Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-flash-preview"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]
使用带有 `?stream=true` 的 INTERACTION_ID 来流式传输存储的互动和生成的视频:

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

  • PROJECT_ID:表示您的 Cloud de Confiance by S3NS 项目 ID 的字符串。
  • INTERACTION_ID:请求中的互动 ID。

HTTP 方法和网址:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true

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

curl

执行以下命令:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true"

PowerShell

执行以下命令:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true" | Select-Object -Expand Content
响应是服务器发送的事件 (SSE) 流,格式类似于以下内容:
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-flash-preview"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"signature":"...","type":"thought_signature"},"event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":1,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":1,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":17664,"total_input_tokens":21,"input_tokens_by_modality":[{"modality":"text","tokens":21}],"total_output_tokens":17376,"output_tokens_by_modality":[{"modality":"video","tokens":17376}],"total_thought_tokens":267},"created":"2026-08-12T21:33:08Z","updated":"2026-08-12T21:33:08Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-flash-preview"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]

异步

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

  • PROJECT_ID:表示您的 Cloud de Confiance by S3NS 项目 ID 的字符串。
  • MODEL_ID:表示要使用的模型 ID 的字符串。接受的值如下:
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT:用于指导视频生成的文本提示。
  • CLOUD_STORAGE_IMAGE_URI: 一个字符串,表示包含输入图片的 Cloud Storage 存储桶。例如:"gs://video-bucket/input/"。
  • IMAGE_MIME: 表示图片 MIME 类型的字符串。接受的值如下:
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI:一个字符串,表示包含输入视频的 Cloud Storage 存储桶。例如:"gs://video-bucket/input/"。
  • VIDEO_MIME: 表示视频 MIME 类型的字符串。接受的值如下:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI:可选:一个字符串,表示用于存储输出视频的 Cloud Storage 存储桶。如果未提供,则回答中会返回视频字节。 例如:"gs://video-bucket/output/"。
  • ASPECT_RATIO:(可选)一个字符串,表示输出视频的预期宽高比。如果未提供,系统会根据提示推断宽高比。 接受的值如下:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

    可选:表示视频输出分辨率的字符串。如果未提供,则输出默认设置为 720p。

    gemini-omni-1.1-flash-preview 支持以下值:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview 仅支持 "720p"。

  • DURATION:一个字符串,表示生成的视频文件的时长。允许的字符串是介于 3 和 10 之间的整数,后跟“s”(表示秒)。例如:"10s"。

HTTP 方法和网址:

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

请求 JSON 正文:

{
  "model": "MODEL_ID",
  "input": [
    {
      "background": true,
      "type": "text",
      "text": "TEXT_PROMPT Use the image(s) as references to
      generate the video."
    },
    {
      "type": "image",
      "uri": "CLOUD_STORAGE_IMAGE_URI",
      "mime_type": "IMAGE_MIME"
    },
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "reference_to_video"
    }
  }
}

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

curl

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

curl -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
响应包含一个互动 ID,您将使用该 ID 获取生成的视频。
{
  "id":"INTERACTION_ID",
  "status":"in_progress",
  "object":"interaction"
}
稍后,使用 INTERACTION_ID 获取生成的视频:

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

  • PROJECT_ID:表示您的 Cloud de Confiance by S3NS 项目 ID 的字符串。
  • INTERACTION_ID:异步请求中的互动 ID。

HTTP 方法和网址:

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

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

curl

执行以下命令:

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

执行以下命令:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
响应的格式类似于以下内容:
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought"
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

使用 Veo 和素材资源图片生成视频

执行以下操作:

控制台

  1. 在 Cloud de Confiance 控制台中,前往 Agent Platform > Agent Platform Studio 页面。

    前往 Agent Platform Studio

  2. 点击生成媒体。

  3. 点击视频。

  4. 在任务菜单中,选择参考视频(主题)。

  5. 在型号菜单中,从可用选项中选择一个型号。

  6. 在主体图片部分中,点击添加。

    系统会显示一个文件选择对话框。选择计算机上的一到三张图片进行上传。

  7. 可选:在参数部分,调整以下设置:

    • 宽高比:选择 16:9 或 9:16。
    • 结果数量:调整滑块或输入介于 1 和 4 之间的值。
    • 视频时长:选择 8、6 或 4 秒。
    • 输出分辨率:选择以下选项之一:
      • 720p
      • 1080p
      • 4k
  8. 可选:在安全部分,选择以下人物生成设置之一:

    • 允许(仅限成人):默认值。仅生成成人人物或人脸。不生成青少年或儿童人物或人脸。

    • 不允许:不生成人物或人脸。

  9. 可选:在高级选项部分中,输入用于随机生成视频的种子值。

  10. 在提示框中,输入描述要生成的视频的文本提示。

  11. 点击运行。

Python

安装

pip install --upgrade google-genai

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

设置环境变量以将 Google 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_ENTERPRISE=True

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

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-3.1-generate-preview",
    prompt="A person walks in carrying a vase full of flowers and places the vase on a kitchen table.",
    config=GenerateVideosConfig(
        reference_images=[
            VideoGenerationReferenceImage(
                image=Image(
                    gcs_uri="gs://cloud-samples-data/generative-ai/image/vase.png",
                    mime_type="image/png",
                ),
                reference_type="asset",
            ),
        ],
        aspect_ratio="9:16",
        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

如需详细了解 Veo API,请参阅以下内容:

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

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

    • PROJECT_ID:您的 Cloud de Confiance by S3NS 项目 ID。
    • MODEL_ID:表示要使用的模型 ID 的字符串。支持以下模型:
      • veo-3.1-generate-preview preview
      • veo-3.1-generate-001
      • veo-3.1-fast-generate-preview preview
      • veo-3.1-fast-generate-001
    • TEXT_PROMPT:用于指导视频生成的文本提示。
    • BASE64_ENCODED_IMAGE:经过 base64 字节编码的主题图片。您可以重复使用此字段和 mimeType 来指定最多三张主题图片。
    • IMAGE_MIME_TYPE:输入图片的 MIME 类型。仅支持下列类型之一:

      • image/jpeg
      • image/png

      您可以重复使用此字段和 bytesBase64Encoded 来指定最多三张主题图片。

    • ASPECT_RATIO:可选: 生成的视频的宽高比。仅支持下列类型之一:

      • "16:9"
      • "9:16"

      默认值为 "16:9"。

    • OUTPUT_STORAGE_URI:可选:用于存储输出视频的 Cloud Storage 存储桶。如果未提供,则回答中会返回以 Base64 字节编码的视频。例如:gs://video-bucket/output/。
    • RESPONSE_COUNT:您要生成的视频文件数量。接受的整数值:1-4。
    • VIDEO_RESOLUTION: 可选:生成的视频的分辨率。仅支持下列类型之一:

      • "720p"
      • "1080p"
      • "4k"(仅限 Veo 3.1 预览版模型)

      默认值为 "720p"。

    • 其他可选参数

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

      "parameters": {
        "aspectRatio": "ASPECT_RATIO",
        "negativePrompt": "NEGATIVE_PROMPT",
        "personGeneration": "PERSON_SAFETY_SETTING",
        // "resolution": RESOLUTION, // Veo 3 models only
        "sampleCount": RESPONSE_COUNT,
        "seed": SEED_NUMBER
      }
      • ASPECT_RATIO:(可选)一个字符串值,用于描述所生成视频的宽高比。您可使用以下值:
        • "16:9" 表示横向
        • "9:16" 表示纵向

        默认值为 "16:9"

      • NEGATIVE_PROMPT:(可选)一个字符串值,用于描述您想要阻止模型生成的内容。
      • PERSON_SAFETY_SETTING:(可选)一个字符串值,用于控制生成人物或人脸的安全设置。您可使用以下值:
        • "allow_adult":仅允许生成成人形象和人脸。
        • "disallow":不生成人物或人脸。

        默认值为 "allow_adult"。

      • RESOLUTION:(可选)用于控制生成的视频分辨率的字符串值。仅受 Veo 3 模型支持。您可使用以下值:
        • "720p"
        • "1080p"
        • "4k"(仅限 Veo 3.1 预览版模型)

        默认值为 "720p"。

      • RESPONSE_COUNT:可选。一个整数值,用于描述要生成的视频数量。可接受的值范围为 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",
          // The following fields can be repeated for up to three total
          // images.
          "referenceImages": [
            {
              "image": {
                "bytesBase64Encoded": "BASE64_ENCODED_IMAGE",
                "mimeType": "IMAGE_MIME_TYPE"
              },
              "referenceType": "asset"
            }
          ]
        }
      ],
      "parameters": {
        "aspectRatio":, "ASPECT_RATIO,
        "durationSeconds": 8,
        "storageUri": "OUTPUT_STORAGE_URI",
        "sampleCount": RESPONSE_COUNT,
        "resolution": "VIDEO_RESOLUTION
      }
    }
    

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

    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:您的 Cloud de Confiance by S3NS 项目 ID。
    • MODEL_ID:要使用的模型 ID。
    • 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
    此请求会返回有关操作的信息,包括操作是否仍在运行或已完成。

后续步骤