Virtual Try-On lets you generate images of people modeling clothing products. You provide an image of a person and a sample clothing product, and then you use Virtual Try-On to generate images of the person wearing the product.
Supported model versions
Virtual Try-On supports the following models:
- virtual-try-on-preview-08-04
For more information about the features that the model supports, see Imagen models.
HTTP request
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  }  } }' | Instances | |
|---|---|
| 
 | 
 Required. An image of a person to try-on the clothing product, which can be either of the following: 
 | 
| 
 | 
 Required. An image of a product to try-on a person, which can be either of the following: 
 | 
| Parameters | |
|---|---|
| addWatermark | 
 Optional. Add an invisible watermark to the generated images.  The default value is  | 
| 
 | 
 Required. An integer that controls image generation, with higher steps trading higher quality for increased latency. Integer values greater than  | 
| personGeneration | 
 Optional. Allow generation of people by the model. The following values are supported: 
 The default value is  | 
| safetySetting | 
 Optional. Adds a filter level to safety filtering. The following values are supported: 
 The default value is  | 
| 
 | 
 Required. The number of images to generate.  An integer value between  | 
| seed | 
  Optional. The random seed for image generation. This isn't available when  | 
| storageUri | 
 Optional. A string URI to a Cloud Storage bucket location to store the generated images. | 
| outputOptions | 
  Optional. Describes the output image format in an  | 
Output options object
The outputOptions object describes the image output.
| Parameters | |
|---|---|
| outputOptions.mimeType | Optional:  The image output format.. The following values are supported: 
 The default value is  | 
| outputOptions.compressionQuality | Optional:   The level of compression if the output type is  | 
Sample request
REST
Before using any of the request data, make the following replacements:
- REGION: The region that your project is located in. For more information about supported regions, see Generative AI on Vertex AI locations.
- PROJECT_ID: Your Google Cloud project ID.
- BASE64_PERSON_IMAGE: The Base64-encoded image of the person image.
- BASE64_PRODUCT_IMAGE: The Base64-encoded image of the product image.
-  IMAGE_COUNT: The number of images to generate. The accepted range of values is 1to4.
- GCS_OUTPUT_PATH: The Cloud Storage path to store the virtual try-on output to.
HTTP method and URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/virtual-try-on-preview-08-04:predict
Request JSON body:
 { "instances": [ { "personImage": { "image": { "bytesBase64Encoded": "BASE64_PERSON_IMAGE" } }, "productImages": [ { "image": { "bytesBase64Encoded": "BASE64_PRODUCT_IMAGE" } } ] } ], "parameters": { "sampleCount": IMAGE_COUNT, "storageUri": "GCS_OUTPUT_PATH" } } To send your request, choose one of these options:
curl
 Save the request body in a file named request.json, and execute the following command: 
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
 Save the request body in a file named request.json, and execute the following command: 
$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
 { "predictions": [ { "mimeType": "image/png", "bytesBase64Encoded": "BASE64_IMG_BYTES" }, { "bytesBase64Encoded": "BASE64_IMG_BYTES", "mimeType": "image/png" } ] }