Imagen 產品重新脈絡化 API

Vertex AI API 的 Imagen 產品重構功能可將產品圖片編輯成不同場景或背景。你提供產品圖片和提示,Imagen 產品重構功能就會生成產品圖片,並套用新場景或不同背景。

如要申請 Imagen 產品重新脈絡化功能,請填寫 Vertex AI - Generative Media for Marketing Access Request 表單。

支援的模型版本

Imagen 產品重新脈絡化功能支援下列模型:

  • imagen-product-recontext-preview-06-30

如要進一步瞭解模型支援的功能,請參閱 Imagen 模型

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:predict \

-d '{
  "instances": [
    {
      "prompt": string,
      "productImages": [
        // The following fields can be repeated up to 3 times for different
        // views of the same product.
        {
          "image": {
            // Union field can be only one of the following:
            "bytesBase64Encoded": string,
            "gcsUri": string,
            // End of list of possible types for union field.
          },
        }
      ]
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "enhancePrompt": boolean
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    }
  }
}'

執行個體

執行個體
prompt

string

(選用步驟) 引導生成場景的文字提示。

productImages

list[productImages]

最多三種不同 ProductImages的相同產品檢視畫面。模型會使用這些圖片,將產品重新置入不同場景或背景。

productImages 個物件

productImages 物件會說明要放置到不同場景或背景中的圖片素材資源。

productImages

聯集欄位 image

imagen-product-recontext-preview-06-30 的產品圖片 ,做為產品不同視角的輸入內容。每張圖片可以是編碼圖片的 bytesBase64Encoded 字串,也可以是 Cloud Storage 值區位置的 gcsUri 字串 URI。

bytesBase64Encoded

string

圖片或影片檔案的位元組 Base64 編碼字串。

gcsUri

string

Cloud Storage 值區位置的字串 URI。

參數

參數
addWatermark

boolean

(選用步驟) 在生成的圖片中加入隱形浮水印。

預設值為 true

enhancePrompt

boolean

(選用步驟) 選用參數,可使用以 LLM 為基礎的提示重寫功能,提供更能反映原始提示意圖的高畫質圖像。停用這項功能可能會影響影像品質和提示遵循率。

預設值為 true

personGeneration

string

(選用步驟) 允許模型生成人物。支援的值如下:

  • "dont_allow":禁止在圖片中加入人物或臉部。
  • "allow_adult":僅允許生成成人內容。
  • "allow_all":允許生成所有年齡層的人物。

預設值為 "allow_adult"

safetySetting

string

(選用步驟) 為安全篩選功能新增篩選等級。支援的值如下:

  • "block_low_and_above":最強的篩選層級,封鎖最嚴格。已淘汰的值:"block_most"
  • "block_medium_and_above":封鎖部分有問題的提示和回覆。已淘汰的值:"block_some"
  • "block_only_high":減少因安全篩選器而遭到封鎖的要求數量。可能會增加 Imagen 生成的不當內容。已淘汰的值: "block_few"
  • "block_none":封鎖極少數有問題的提示和回覆。這項功能僅開放部分帳戶使用。先前欄位值:"block_fewest"

預設值為 "block_medium_and_above"

sampleCount

int

要生成的圖片數量。

介於 14 之間的整數值。預設值為 1

seed

Uint32

(選用步驟) 生成圖片的隨機種子。如果 addWatermark 設為 true,就無法使用這項功能。

如果 enhancePrompt 設為 trueseed 參數就不會運作,因為 enhancePrompt 會產生新的提示,進而生成新的或不同的圖片。

storageUri

string

(選用步驟) Cloud Storage bucket 位置的字串 URI,用於儲存產生的圖片。如果未提供 Cloud Storage bucket,回應中會傳回 base64 編碼的圖片位元組。

outputOptions

outputOptions

(選用步驟) 說明 outputOptions 物件中的輸出圖片格式

輸出選項物件

outputOptions 物件會說明圖片輸出內容。

參數
outputOptions.mimeType

自由參加:string

圖片輸出格式。支援的值如下:

  • "image/png":另存為 PNG 圖片。
  • "image/jpeg":儲存為 JPEG 圖片。

預設值為 "image/png"

outputOptions.compressionQuality

自由參加:int

如果輸出類型為 "image/jpeg",則為壓縮程度。可接受的值為 0-100。預設值為 75

要求範例

REST

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

  • REGION:專案所在的區域。如要進一步瞭解支援的區域,請參閱「Vertex AI 的生成式 AI 服務地區」。
  • PROJECT_ID:您的 Google Cloud 專案 ID。
  • TEXT_PROMPT:選用。文字提示,引導模型生成圖片。
  • BASE64_SUBJECT_IMAGE:主體圖片的 Base64 編碼圖片。
  • PERSON_SETTING: 選用:控制模型允許生成的人物或臉部類型字串值。您可以為 personGeneration 使用下列值:
    • "allow_adult":僅允許生成成人,名人除外。任何設定都不允許生成名人圖像。這是預設設定。
    • "allow_all":可生成所有年齡層的人物,但無法生成名人。任何設定都不允許生成名人圖像。
    • "dont_allow":不允許在生成的輸出內容中生成人物或臉部。
  • SAFETY_SETTING: 選用:字串值,可控制生成圖像的安全篩選器門檻。你可以使用下列值選取安全設定:
    • "block_low_and_above":最嚴格的安全門檻。"block_low_and_above" 會篩選出最多生成的圖片。
    • "block_medium_and_above":中等安全門檻,可平衡篩選可能有害和安全的內容。"block_medium_and_above" 是預設安全設定。
    • "block_only_high":最低安全門檻,可減少因安全篩選器而遭封鎖的請求數量。使用 "block_only_high" 安全門檻可能會增加模型生成不當圖片的數量。
  • WATERMARK_SETTING: 選用:布林值。如果將這個值設為 true,模型會加入數位浮水印,方便您驗證生成的圖片。預設值為 true
  • IMAGE_COUNT:要生成的圖片數量。可接受的值範圍為 14
  • PROMPT_SETTING: 選用:布林值。如果將這個值設為 true,模型會使用強化版提示。預設值為 true

HTTP 方法和網址:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30:predict

JSON 要求主體:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "productImages": [
        {
          "image": {
            "bytesBase64Encoded": "BASE64_SUBJECT_IMAGE"
          },
        }
      ]
    }
  ],
  "parameters": {
    "personGeneration": PERSON_SETTING,
    "safetySetting": SAFETY_SETTING,
    "addWatermark": WATERMARK_SETTING,
    "sampleCount": IMAGE_COUNT,
    "enhancePrompt": PROMPT_SETTING
  }
}

如要傳送要求,請選擇以下其中一個選項:

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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30:predict"

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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30:predict" | Select-Object -Expand Content
要求會傳回圖片物件。在本例中,系統會傳回兩個圖片物件,並以 Base64 編碼圖片的形式提供兩個預測物件。
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}