バーチャルでお試し API

「バーチャルでお試し」では、衣料品を着用している人物の画像を生成できます。人物の画像と衣料品のサンプル画像を提供すると、「バーチャルでお試し」機能がその衣料品を着用している人物の画像を生成します。

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

バーチャル試着は、次のモデルに対応しています。

  • virtual-try-on-preview-08-04

モデルでサポートされている機能の詳細については、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": [
    {
      "personImage": {
        "image": {
          // Union field can be only one of the following:
          "bytesBase64Encoded": string,
          "gcsUri": string,
        }
      },
      "productImages": [
        {
          "image": {
            // Union field can be only one of the following:
            "bytesBase64Encoded": string,
            "gcsUri": string,
          }
        }
      ]
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "baseSteps": integer,
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    }
  }
}'
インスタンス

personImage

string

必須。衣料品を試着する人物の画像。次のいずれかになります。

  • 画像をエンコードする bytesBase64Encoded 文字列。
  • Cloud Storage バケットのロケーションへの gcsUri 文字列 URI。

productImages

string

必須。人物に試着させる商品の画像。次のいずれかになります。

  • 画像をエンコードする bytesBase64Encoded 文字列。
  • Cloud Storage バケットのロケーションへの gcsUri 文字列 URI。
パラメータ
addWatermark

bool

省略可。生成された画像に目に見えない透かしを追加します。

デフォルト値は true です。

baseSteps

int

必須。画像生成を制御する整数。ステップ数を増やすと、レイテンシが増加しますが、画質が向上します。

0 より大きい整数値。デフォルトは 32 です。

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 に設定されている場合は使用できません。

storageUri

string

省略可。生成された画像を保存する Cloud Storage バケットの場所への文字列 URI。

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
  • BASE64_PERSON_IMAGE: base64 でエンコードされた人物の画像。
  • BASE64_PRODUCT_IMAGE: base64 でエンコードされた商品の画像。
  • IMAGE_COUNT: 生成する画像の数。指定できる値の範囲は 14 です。
  • GCS_OUTPUT_PATH: 「バーチャルでお試し」の出力を保存する Cloud Storage パス。

HTTP メソッドと URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/virtual-try-on-preview-08-04:predict

リクエストの本文(JSON):

{
  "instances": [
    {
      "personImage": {
        "image": {
          "bytesBase64Encoded": "BASE64_PERSON_IMAGE"
        }
      },
      "productImages": [
        {
          "image": {
            "bytesBase64Encoded": "BASE64_PRODUCT_IMAGE"
          }
        }
      ]
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT,
    "storageUri": "GCS_OUTPUT_PATH"
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

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