使用參考圖片引導影片生成

在 Vertex AI 運用 Veo 時,您可以透過 veo-2.0-generate-exp 參考圖像,引導生成影片的內容和藝術風格。使用 Veo 參考圖片時,你可以選擇下列其中一種做法:

  • 素材資源圖片:最多提供三張圖片,內容可以是同一個人、角色或產品。Veo 會在輸出影片中保留主體的外觀。

  • 風格圖片:提供單一風格圖片。Veo 會將上傳圖片的風格套用至輸出影片。

如要進一步瞭解如何撰寫有效的影片生成文字提示,請參閱 Veo 提示指南

事前準備

  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 的憑證。

      安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。

    使用主體圖片生成影片

    請執行下列步驟:

    控制台

    1. 在 Google Cloud 控制台中,前往「Vertex AI Studio」>「Media Studio」頁面。

      媒體工作室

    2. 按一下「Veo」Veo

    3. 在「設定」窗格中,選取下列設定:

      • 模型:選取 veo-2.0-generate-exp

      • 結果數量:調整滑桿或輸入介於 14 之間的值。

    4. 在「參考資料」部分,選取「主題」> 點按「新增」

    5. 選擇電腦中的一到三張圖片並上傳。

    6. 選用步驟:在「安全性」部分,選取下列其中一個「人物生成」設定:

      • 允許 (僅限成人):預設值。只能生成成人人物或臉孔。請勿生成青少年、兒童的人物或臉部。

      • 不允許:不要生成人物或臉孔。

    7. 選用:在「Advanced options」(進階選項) 區段中,輸入「Seed」(種子) 值,隨機生成影片。

    8. 在「撰寫提示」方塊中,輸入描述要生成影片的文字提示。

    9. 按一下「生成」

    REST

    設定環境後,即可使用 REST 測試文字提示。下列範例會將要求傳送至發布商模型端點。

    如要進一步瞭解 Veo API,請參閱 Vertex AI 上的 Veo API

    1. 請使用下列指令傳送影片生成要求。這項要求會啟動長時間執行的作業,並將輸出內容儲存至您指定的 Cloud Storage bucket。

      使用任何要求資料之前,請先替換以下項目:

      • PROJECT_ID:您的 Google Cloud 專案 ID。
      • TEXT_PROMPT:用於引導影片生成的文字提示。
      • BASE64_ENCODED_IMAGE:採用 base64 位元組編碼的主體圖片。您可以重複這個欄位和 mimeType,最多指定三張主體圖片。
      • IMAGE_MIME_TYPE:輸入圖片的 MIME 類型。只能是下列其中一項:

        • image/jpeg
        • image/png

        您可以重複這個欄位和 bytesBase64Encoded,最多指定三張主體圖片。

      • OUTPUT_STORAGE_URI: 選用:用於儲存輸出影片的 Cloud Storage bucket。如果未提供,回應中會傳回 Base64 位元組編碼的影片。例如:gs://video-bucket/output/
      • RESPONSE_COUNT:要生成的影片檔案數量。接受的整數值:1 到 4。
      • 其他選用參數

        請視用途使用下列選用變數。在 "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"

          預設值為 "720p"

        • RESPONSE_COUNT: 選用。整數值,說明要生成的影片數量。 可接受的值範圍為 14
        • SEED_NUMBER: 選用。模型用來生成確定性影片的 uint32 值。在要求中指定種子號碼,但不變更其他參數,即可引導模型產生相同的影片。可接受的值範圍為 04294967295

      HTTP 方法和網址:

      POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001: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": {
          "durationSeconds": 8,
          "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/veo-2.0-generate-001: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/veo-2.0-generate-001:predictLongRunning" | Select-Object -Expand Content
      這項要求會傳回完整作業名稱和專屬作業 ID。使用這個完整作業名稱輪詢影片生成要求的狀態。
      {
        "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
      }
      

    2. 選用:檢查影片生成長時間執行作業的狀態。

      使用任何要求資料之前,請先替換以下項目:

      • PROJECT_ID:您的 Google Cloud 專案 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
      這項要求會傳回作業相關資訊,包括作業是否仍在執行中或已完成。

    使用風格圖片生成影片

    請執行下列步驟:

    控制台

    1. 在 Google Cloud 控制台中,前往「Vertex AI Studio」>「Media Studio」頁面。

      媒體工作室

    2. 按一下「Veo」Veo

    3. 在「設定」窗格中,選取下列設定:

      • 模型:選取 veo-2.0-generate-exp

      • 結果數量:調整滑桿或輸入介於 14 之間的值。

    4. 在「參考資料」部分,依序選取「樣式」> 點按「新增」

    5. 選擇電腦中的圖片並上傳。

    6. 選用步驟:在「安全性」部分,選取下列其中一個「人物生成」設定:

      • 允許 (僅限成人):預設值。只能生成成人人物或臉孔。請勿生成青少年、兒童的人物或臉部。

      • 不允許:不要生成人物或臉孔。

    7. 選用:在「Advanced options」(進階選項) 區段中,輸入「Seed」(種子) 值,隨機生成影片。

    8. 在「撰寫提示」方塊中,輸入描述要生成影片的文字提示。

    9. 按一下「生成」

    REST

    設定環境後,即可使用 REST 測試文字提示。下列範例會將要求傳送至發布商模型端點。

    如要進一步瞭解 Veo API,請參閱 Vertex AI 上的 Veo API

    1. 請使用下列指令傳送影片生成要求。這項要求會啟動長時間執行的作業,並將輸出內容儲存至您指定的 Cloud Storage bucket。

      使用任何要求資料之前,請先替換以下項目:

      • PROJECT_ID:您的 Google Cloud 專案 ID。
      • TEXT_PROMPT:用於引導影片生成的文字提示。
      • BASE64_ENCODED_IMAGE:採用 base64 位元組編碼的樣式圖片。
      • IMAGE_MIME_TYPE:輸入圖片的 MIME 類型。下列其中一項:
        • image/jpeg
        • image/png
      • OUTPUT_STORAGE_URI: 選用:用於儲存輸出影片的 Cloud Storage bucket。如果未提供,回應中會傳回影片位元組。例如: gs://video-bucket/output/
      • RESPONSE_COUNT:要生成的影片檔案數量。接受的整數值:1 到 4。
      • 其他選用參數

        請視用途使用下列選用變數。在 "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"

          預設值為 "720p"

        • RESPONSE_COUNT: 選用。整數值,說明要生成的影片數量。 可接受的值範圍為 14
        • SEED_NUMBER: 選用。模型用來生成確定性影片的 uint32 值。在要求中指定種子號碼,但不變更其他參數,即可引導模型產生相同的影片。可接受的值範圍為 04294967295

      HTTP 方法和網址:

      POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning

      JSON 要求主體:

      {
        "instances": [
          {
            "prompt": "TEXT_PROMPT",
            "referenceImages": [
              {
                "image": {
                  "bytesBase64Encoded": "BASE64_ENCODED_IMAGE",
                  "mimeType": "IMAGE_MIME_TYPE"
                },
                "referenceType": "style"
              }
            ]
          }
        ],
        "parameters": {
          "durationSeconds": 8,
          "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/veo-2.0-generate-001: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/veo-2.0-generate-001:predictLongRunning" | Select-Object -Expand Content
      這項要求會傳回完整作業名稱和專屬作業 ID。使用這個完整作業名稱輪詢影片生成要求的狀態。
      {
        "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
      }
      

    2. 選用:檢查影片生成長時間執行作業的狀態。

      使用任何要求資料之前,請先替換以下項目:

      • PROJECT_ID:您的 Google Cloud 專案 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
      這項要求會傳回作業相關資訊,包括作業是否仍在執行中或已完成。

    後續步驟