Imagen プロダクト リコンテキスト API

Vertex AI API の Imagen 商品の再コンテキストを使用すると、商品画像をさまざまなシーンや背景に編集できます。商品の画像とプロンプトを指定すると、Imagen product recontext は、新しいシーンや異なる背景で商品の画像を生成します。

Imagen の商品リコンテキストへのアクセスをリクエストするには、Vertex AI - マーケティング用生成メディア アクセス リクエスト フォームに記入します。

サポートされているモデル バージョン

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 を最大 3 つまで含むリスト。モデルは画像を使用して、商品をさまざまなシーンや背景に再コンテキスト化します。

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

省略可。画像生成用の乱数シード。addWatermarktrue に設定されている場合は使用できません。

enhancePrompttrue に設定されている場合、seed パラメータは機能しません。これは、enhancePrompt が新しいプロンプトを生成し、新しい画像または別の画像が生成されるためです。

storageUri

string

省略可。生成された画像の保存に使用される Cloud Storage バケットの場所への文字列 URI。Cloud Storage バケットが指定されていない場合、Base64 エンコードされた画像バイトがレスポンスで返されます。

outputOptions

outputOptions

省略可。outputOptions オブジェクトで出力画像形式を記述します。

出力オプション オブジェクト

outputOptions オブジェクトは画像出力を記述します。

パラメータ
outputOptions.mimeType

省略可: string

画像出力形式。次の値を使用できます。

  • "image/png": PNG 画像として保存します。
  • "image/jpeg": JPEG 画像として保存します。

デフォルト値は "image/png" です。

outputOptions.compressionQuality

省略可: int

出力タイプが "image/jpeg" である場合の圧縮レベル。指定できる値は 0100 です。デフォルト値は 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 に設定されている場合、モデルは拡張 prmopts を使用します。デフォルト値は true です。

HTTP メソッドと URL:

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
リクエストは画像オブジェクトを返します。この例では、2 つの画像オブジェクトが返され、2 つの予測オブジェクトが base64 でエンコードされた画像として返されます。
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}