使用 Gemini 從影片生成圖像

你可以使用 Gemini 從影片生成圖像,這對於製作影片縮圖非常實用。支援的介面包括 Cloud de Confiance 控制台和 Agent Platform API。

下列 Gemini 模型支援從影片生成圖像:

按一下即可展開支援的模型

根據影片生成圖像

以下說明如何使用 Agent Studio 或 API,從影片生成圖片。

如要進一步瞭解提示詞最佳做法,請參閱「設計多模態提示詞」。

控制台

如要使用 Gemini 從影片生成圖像,請按照下列步驟操作:

  1. 在 Cloud de Confiance 控制台的「Agent Platform」部分,依序前往「Agent Studio」>「Image」。

    前往 Vertex AI Studio

  2. 在「模型設定」中,選取顯示的模型。

  3. 在「Prompt」(提示) 文字區域中,按一下「add」按鈕,然後選取影片檔案的來源:

    上傳

    選取要上傳的檔案,然後按一下「開啟」。

    使用網址上傳

    輸入要使用的檔案網址,然後按一下「插入」。

    YouTube

    輸入要使用的 YouTube 影片網址,然後按一下「插入」。

    您可以使用任何公開影片,或登入 Cloud de Confiance 控制台所用帳戶擁有的影片。

    Cloud Storage

    依序選取 bucket 和要匯入的檔案,然後按一下「Select」(選取)。

    Google 雲端硬碟

    1. 選擇帳戶並同意 Vertex AI Studio 存取帳戶。您可以上傳多個檔案,總大小上限為 10 MB。單一檔案不得超過 7 MB。
    2. 按一下要新增的檔案。
    3. 按一下「選取」。

      檔案縮圖會顯示在「提示詞」窗格中。系統也會顯示權杖總數。如果提示資料超過符記上限,系統會截斷符記,且不會將其納入資料處理程序。

  4. 在「提示」文字區域中,撰寫要生成的圖片說明。

  5. 按一下「提示」 () 按鈕。

Gemini 會根據您的描述生成圖片。這項程序需要幾秒鐘的時間,但視容量而定,可能需要較長的時間。

Python

安裝

pip install --upgrade google-genai

詳情請參閱 SDK 參考文件。

設定環境變數,以便透過 Vertex AI 使用 Google Gen AI SDK:

# 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 bucket URI:物件必須可公開讀取,或位於傳送要求的 Cloud de Confiance 專案中。
    • HTTP 網址:檔案網址必須可公開讀取。每項要求可指定一個影片檔案、一個音訊檔案,以及最多 10 個圖片檔案。音訊檔案、影片檔案和文件不得超過 15 MB。
    • YouTube 影片網址:YouTube 影片必須由您用來登入 Cloud de Confiance 控制台的帳戶擁有,或設為公開。每項要求僅支援一個 YouTube 影片網址。

    指定 fileURI 時,您也必須指定檔案的媒體類型 (mimeType)。如果啟用 VPC Service Controls,系統不支援為 fileURI 指定媒體檔案網址。

    如果 Cloud Storage 中沒有影片檔案,可以使用下列公開檔案:gs://cloud-samples-data/video/animals.mp4,MIME 類型為 video/mp4。如要觀看這部影片,請 開啟 MP4 範例檔案。

  • MIME_TYPE:data 或 fileUri 欄位中指定檔案的媒體類型。可接受的值如下:

    按一下即可展開 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 圖像生成功能,請參閱下列連結: