API de Virtual Try-On

La Prueba virtual te permite generar imágenes de personas modelando productos de indumentaria. Proporcionas una imagen de una persona y una muestra de un producto de indumentaria, y luego usas la función de Prueba virtual para generar imágenes de la persona usando el producto.

Versiones de modelos compatibles

La función de Prueba virtual admite los siguientes modelos:

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

Para obtener más información sobre las funciones que admite el modelo, consulta Modelos de Imagen.

Solicitud 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
    }
  }
}'
Instancias

personImage

string

Obligatorio. Imagen de una persona para probarse el producto de indumentaria, que puede ser cualquiera de las siguientes opciones:

  • Es una cadena bytesBase64Encoded que codifica una imagen.
  • Es un URI de cadena gcsUri a la ubicación de un bucket de Cloud Storage.

productImages

string

Obligatorio. Imagen de un producto para probar en una persona, que puede ser cualquiera de las siguientes opciones:

  • Es una cadena bytesBase64Encoded que codifica una imagen.
  • Es un URI de cadena gcsUri a la ubicación de un bucket de Cloud Storage.
Parámetros
addWatermark

bool

Opcional. Agrega una marca de agua invisible a las imágenes generadas.

El valor predeterminado es true.

baseSteps

int

Obligatorio. Es un número entero que controla la generación de imágenes. Cuanto mayor sea la cantidad de pasos, mayor será la calidad, pero también la latencia.

Valores de números enteros mayores que 0. El valor predeterminado es 32.

personGeneration

string

Opcional. Permite que el modelo genere personas. Se admiten los siguientes valores:

  • "dont_allow": No permite la inclusión de personas ni rostros en las imágenes.
  • "allow_adult": Permite la generación de adultos solamente.
  • "allow_all": permite la generación de personas de todas las edades.

El valor predeterminado es "allow_adult".

safetySetting

string

Opcional. Agrega un nivel de filtro al filtrado de seguridad. Se admiten los siguientes valores:

  • "block_low_and_above": Es el nivel de filtrado más estricto y el bloqueo más estricto. Valor obsoleto: "block_most".
  • "block_medium_and_above": Bloquea algunas instrucciones y respuestas problemáticas. Valor obsoleto: "block_some".
  • "block_only_high": Reduce la cantidad de solicitudes bloqueadas debido a los filtros de seguridad. Puede aumentar el contenido censurable que genera Imagen. Valor obsoleto: "block_few".
  • "block_none": Bloquea muy pocas instrucciones y respuestas problemáticas. El acceso a esta función está restringido. Valor anterior del campo: "block_fewest".

El valor predeterminado es "block_medium_and_above".

sampleCount

int

Obligatorio. Es la cantidad de imágenes que se generarán.

Es un valor entero entre 1 y 4, ambos incluidos. El valor predeterminado es 1.

seed

Uint32

Opcional. La semilla aleatoria para la generación de imágenes. No está disponible cuando addWatermark se configura como true.

storageUri

string

Opcional. Es un URI de cadena a la ubicación de un bucket de Cloud Storage para almacenar las imágenes generadas.

outputOptions

outputOptions

Opcional. Describe el formato de imagen de salida en un objeto outputOptions.

Objeto de opciones de salida

El objeto outputOptions describe el resultado de la imagen.

Parámetros
outputOptions.mimeType

Opcional: string

Es el formato de salida de la imagen. Se admiten los siguientes valores:

  • "image/png": Guardar como imagen PNG
  • "image/jpeg": Guardar como imagen JPEG

El valor predeterminado es "image/png".

outputOptions.compressionQuality

Opcional: int

El nivel de compresión si el tipo de salida es "image/jpeg". Los valores aceptados son de 0 a 100. El valor predeterminado es 75.

Solicitud de muestra

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • REGION: Es la región en la que se encuentra tu proyecto. Para obtener más información sobre las regiones admitidas, consulta Ubicaciones de la IA generativa en Vertex AI.
  • PROJECT_ID: El Google Cloud ID del proyecto.
  • BASE64_PERSON_IMAGE: Es la imagen codificada en Base64 de la imagen de la persona.
  • BASE64_PRODUCT_IMAGE: Es la imagen del producto codificada en Base64.
  • IMAGE_COUNT: Es la cantidad de imágenes que se generarán. El rango de valores aceptado es de 1 a 4.
  • GCS_OUTPUT_PATH: Es la ruta de acceso de Cloud Storage en la que se almacenará el resultado de la prueba virtual.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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
La solicitud devuelve objetos de imagen. En este ejemplo, se devuelven dos objetos de imagen, con dos objetos de predicción como imágenes codificadas en base64.
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}