虚拟试穿 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

可选。用于生成图片的随机种子。当 addWatermark 设置为 true 时,此参数不可用。

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 方法和网址:

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
请求返回图片对象。在此示例中,系统会返回两个图片对象,其中包含两个预测对象(以 base64 编码的图片形式)。
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}