Vertex AI API 的 Veo

Veo 是支援影片產生的模型名稱。Veo 會根據您提供的文字提示或圖片提示生成影片。

如要在控制台中探索這個模型,請參閱 Model Garden 中的 Video Generation 模型資訊卡。

在 Vertex AI (Vertex AI Studio) 上試用 Veo

在 Colab 中試用 Veo

要求存取權:實驗功能

支援的型號

Veo API 支援下列型號:

HTTP 要求

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
https://LOCATION}-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:predictLongRunning \

-d '{
  "instances": [
    {
      "prompt": string,
      // Optional. An image to guide video generation.
      "image": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      }
    }
  ],
  "parameters": {
    "aspectRatio": string,
    "negativePrompt": string,
    "personGeneration": string,
    "sampleCount": integer,
    "seed": uint32,
    "storageUri": string,
    "durationSeconds": integer,
    "enhancePrompt": boolean
  }
}'

請為 Veo 型號使用下列參數。詳情請參閱「使用 Veo 以文字和圖片提示生成影片」。

參數

prompt

string

文字轉換成影片功能需要使用這項參數。
如果提供輸入圖片提示 (圖片轉換為影片),則為選用項目。

用於引導影片前八秒的文字字串。例如:

  • 快速追蹤鏡頭,穿越熱鬧的反烏托邦景觀,包括明亮的霓虹燈、飛車、薄霧、夜晚、鏡頭光暈、體積照明
  • 以霓虹燈製作的極速行駛汽車全息圖,以電影般的視覺效果呈現令人驚嘆的細節和體積照明
  • 許多斑點水母在水下脈動,牠們的身體透明,在深海中發光
  • 街道上水坑的極近特寫,具有淺景深度,反映出充滿未來感的東京城市,包括明亮的霓虹燈、夜晚、鏡頭光暈
  • 極光在北極天空中舞動、星光閃爍、白雪覆蓋的風景的縮時攝影
  • 一位牛仔騎著馬在廣闊的平原上奔馳,背景是美麗的夕陽、柔和的光線和溫暖的色彩

image

string

這是圖片轉換成影片的必要權限。
如果提供文字提示 (文字轉換為影片),則為選填。

用於引導影片生成作業的輸入圖片。建議使用 1280 x 720 像素或 720 x 1280 像素的圖片。

可以是下列其中一項:

  • Base64 編碼的圖片位元組字串
  • Cloud Storage 值區 URI

如果圖片的顯示比例不同,系統會使用中心裁剪工具裁剪圖片。

如果圖片的顯示比例相同,但解析度較大,系統會調整圖片大小。

durationSeconds

integer

這是必要旗標,要產生的影片檔長度。 可接受的整數值為 58。預設值為 8

negativePrompt

string

(非必要) 文字字串,描述您希望模型避免產生的任何內容。例如:

  • 頂燈、亮色調
  • 人物、動物
  • 多輛車、風
enhancePrompt

boolean

(非必要) 使用 Gemini 提升提示功能。可接受的值為 truefalse。預設值為 true

seed

uint32

(非必要) 請求的數字,用於產生確定性的影片。如果在要求中加入種子編號,但不變更其他參數,模型就會產生相同的影片。

可接受的範圍為 04,294,967,295

storageURI

string

(非必要) 儲存輸出影片的 Cloud Storage 值區 URI,格式為 gs://BUCKET_NAME/SUBDIRECTORY。如果未提供 Cloud Storage 值區,回應中會傳回 Base64 編碼的影片位元組。

sampleCount

int

(非必要) 要求的輸出圖片數量。可接受的值為 1-4

aspectRatio

string

(非必要) 定義產生影片的顯示比例。下列任一項:

  • 16:9 (預設,橫向)
  • 9:16 (直向)

personGeneration

string

(非必要) 安全性設定,用於控制是否允許產生人物或臉孔。下列任一項:

  • allow_adult (預設值):允許產生僅限成人內容
  • dont_allow:禁止在圖片中加入人物/臉孔
generateAudio

boolean

veo-3.0-generate-preview 的必要欄位。為影片產生音訊。可接受的值為 truefalse

veo-2.0-generate-001 不支援 generateAudio

要求範例

請使用下列要求,傳送文字轉影片要求或圖片轉影片要求:

文字轉影片生成要求

REST

如要使用 Vertex AI Veo API 測試文字提示,請將 POST 要求傳送至發布者模型端點。

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

  • PROJECT_ID:您的 Google Cloud 專案 ID
  • MODEL_ID:要使用的模型 ID。可用值:
    • veo-2.0-generate-001 (Google Analytics 許可清單)
    • veo-3.0-generate-preview (預先發布版)
  • 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"
}

圖片轉影片生成要求

REST

如要使用 Vertex AI Veo API 測試文字提示,請將 POST 要求傳送至發布者模型端點。

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

  • PROJECT_ID:您的 Google Cloud 專案 ID
  • MODEL_ID:要使用的模型 ID。可用值:
    • veo-2.0-generate-001 (Google Analytics 許可清單)
    • veo-3.0-generate-preview (預先發布版)
  • 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"
}

輪詢影片產生長時間執行作業的狀態

檢查影片產生長時間執行作業的狀態。

REST

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

  • PROJECT_ID:您的 Google Cloud 專案 ID
  • MODEL_ID:要使用的模型 ID。可用值:
    • veo-2.0-generate-001 (Google Analytics 許可清單)
    • veo-3.0-generate-preview (預先發布版)
  • 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
這項要求會傳回作業相關資訊,包括作業是否仍在執行或已完成。

回應主體 (產生影片要求)

傳送文字轉影片或圖片轉影片要求時,系統會傳回以下回應:

{
  "name": string
}
回應元素 說明
name 在傳送影片產生要求後開始的長期執行作業的全名。

回應範例 (產生影片要求)

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

回應主體 (輪詢長時間執行的作業)

輪詢原始影片產生長時間執行作業的狀態時,會傳回以下回應:

{
   "name": string,
   "done": boolean,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "generatedSamples":[
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
      ]
   }
}
回應元素 說明
name 在傳送影片產生要求後開始的長期執行作業的完整作業名稱。
done 表示作業是否完成的布林值。
response 長時間執行作業的回應主體。
generatedSamples 產生的影片樣本物件陣列。
video 生成的影片。
uri 產生影片的 Cloud Storage URI。
encoding 影片編碼類型。

回應範例 (輪詢長時間執行作業)

{
   "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID",
   "done":true,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "generatedSamples":[
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_0.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_1.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_2.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_3.mp4",
               "encoding":"video/mp4"
            }
         }
      ]
   }
}

更多資訊

後續步驟