使用 Gemini 从视频生成图片

您可以使用 Gemini 从视频生成图片,这对于为视频创建缩略图非常有用。支持的界面包括 控制台 Google Cloud 和 Agent Platform API。

以下 Gemini 模型支持从视频生成图片:

点击即可展开支持的模型

从视频生成图片

以下内容介绍了如何使用 Agent Studio 或 API 从视频生成图片。

如需详细了解提示的最佳实践,请参阅设计多模态 提示

控制台

如需使用 Gemini 从视频生成图片,请执行以下操作:

  1. 在 Agent Platform 部分的 Google Cloud 控制台中,依次前往 Agent Studio > 图片

    前往 Vertex AI Studio

  2. 模型设置 中,选择显示的某个模型。

  3. 提示文本区域中,点击 添加 add按钮,然后 选择视频文件的来源:

    上传

    选择您要上传的文件,然后点击打开

    通过网址

    输入要使用的文件的网址,然后点击插入

    YouTube

    输入您要使用的 YouTube 视频的网址,然后点击插入

    您可以使用任何公开视频或由您用于登录 Google Cloud 控制台的账号所拥有的视频。

    Cloud Storage

    选择存储桶,接着从存储桶选择您要导入的文件,然后点击选择

    Google 云端硬盘

    1. 选择一个账号,并在您首次选择此选项时同意 Vertex AI Studio 访问您的账号。您可以上传多个文件,但总大小不得超过 10 MB。单个文件的大小不能超过 7 MB。
    2. 点击要添加的文件。
    3. 点击选择

      文件缩略图会显示在提示 窗格中。系统还会显示 token 总数。如果提示数据超过 token 限制,则 token 会被截断,并且不会用于处理数据。

  4. 提示 文本区域中,撰写要生成的图片的说明。

  5. 点击提示)按钮。

Gemini 会根据您的说明生成图片。此过程需要几秒钟,但可能会相对较慢,具体取决于容量。

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

from google import genai
from google.genai.types import GenerateContentConfig, Modality, Part
from PIL import Image
from io import BytesIO

client = genai.Client()

# A video on 'The ABCs of agent building'
video = "https://www.youtube.com/watch?v=rjoMZyxncUI"

response = client.models.generate_content(
    model="gemini-3.1-flash-image",
    contents=[
        Part.from_uri(
            file_uri=video,
            mime_type="video/mp4"
        ), 
        "Generate an infographic of the topics covered in this video."
    ],
    config=GenerateContentConfig(response_modalities=[Modality.TEXT, Modality.IMAGE]),
)
for part in response.candidates[0].content.parts:
    if part.text:
        print(part.text)
    elif part.inline_data:
        image = Image.open(BytesIO((part.inline_data.data)))
        image.save("output_folder/video-image.png")

REST

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

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

  • PROJECT_ID: 您的 项目 ID。
  • FILE_URI:要包含在提示中的文件的 URI 或 网址。可接受的值包括: 以下:

    • Cloud Storage 存储桶 URI:对象必须可公开 读取,或者位于发送请求的同一 Google Cloud 项目中。
    • HTTP 网址: 文件网址必须可公开读取。每个请求最多可以指定 一个视频文件、一个音频文件和 10 个图片文件。 音频文件、视频文件和文档的大小不能超过 15 MB。
    • YouTube 视频网址:YouTube 视频必须由您用于登录 控制台 Google Cloud 的账号所拥有,或者是公开的。 每个请求仅支持一个 YouTube 视频网址。

    指定 fileURI 时,您还必须指定文件的媒体类型 (mimeType)。如果启用了 VPC Service Controls,则不支持为 fileURI 指定媒体文件网址。

    如果您在 Cloud Storage 中没有视频文件,则可以使用以下公开提供的文件:gs://cloud-samples-data/video/animals.mp4,MIME 类型为video/mp4。如需查看此视频, 请打开示例 MP4 文件。

  • MIME_TYPE: 在 datafileUri 字段中指定的文件媒体类型。可接受的值包括:

    点击即可展开 MIME 类型

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT: 要包含在提示中的文本说明。 例如,What is in the video?

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

curl

将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

然后,执行以下命令以发送 REST 请求:

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

PowerShell

将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

然后,执行以下命令以发送 REST 请求:

$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://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.1-flash-image:generateContent" | Select-Object -Expand Content
 
请注意此示例网址中的以下内容:
  • 使用 generateContent 方法请求在回答完全生成后返回回答。 为了降低真人观众对于延迟的感知度,请使用 streamGenerateContent 方法在生成回答时流式传输回答。
  • 多模态模型 ID 位于网址末尾且位于方法之前 (例如 gemini-3.5-flash)。此示例可能还支持其他 模型。
  • 当您使用区域 API 端点(例如 us-central1)时,端点网址中的区域决定了请求的处理位置。资源路径中的任何冲突位置都会被忽略。

接下来怎么做?

如需详细了解 Gemini 图片生成,请参阅以下链接: