API d'essai virtuel

L'essai virtuel vous permet de générer des images de personnes portant des vêtements. Vous fournissez une image d'une personne et un exemple de vêtement, puis vous utilisez l'essayage virtuel pour générer des images de la personne portant le vêtement.

Versions de modèles compatibles

L'essayage virtuel est compatible avec les modèles suivants :

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

Pour en savoir plus sur les fonctionnalités compatibles avec le modèle, consultez Modèles Imagen.

Requête 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
    }
  }
}'
Instances

personImage

string

Obligatoire. Image d'une personne essayant le vêtement, qui peut être l'une des suivantes :

  • Chaîne bytesBase64Encoded qui encode une image.
  • URI de chaîne gcsUri vers un emplacement de bucket Cloud Storage.

productImages

string

Obligatoire. Image d'un produit à essayer sur une personne, qui peut être l'une des suivantes :

  • Chaîne bytesBase64Encoded qui encode une image.
  • URI de chaîne gcsUri vers un emplacement de bucket Cloud Storage.
Paramètres
addWatermark

bool

Facultatif. Ajoute un filigrane invisible aux images générées.

La valeur par défaut est true.

baseSteps

int

Obligatoire. Nombre entier qui contrôle la génération d'images. Plus le nombre d'étapes est élevé, plus la qualité est bonne, mais plus la latence est importante.

Valeurs entières supérieures à 0. La valeur par défaut est 32.

personGeneration

string

Facultatif. Autorise ou non la génération de personnes par le modèle. Les valeurs suivantes sont acceptées :

  • "dont_allow" : interdit l'inclusion de personnes ou de visages dans les images.
  • "allow_adult" : autorise uniquement la génération d'adultes.
  • "allow_all" : autorise la génération de personnes de tous âges.

La valeur par défaut est "allow_adult".

safetySetting

string

Facultatif. Ajoute un niveau de filtrage de sécurité. Les valeurs suivantes sont acceptées :

  • "block_low_and_above" : niveau de filtrage le plus élevé, blocage le plus strict. Valeur obsolète : "block_most".
  • "block_medium_and_above" : bloque certaines requêtes et réponses problématiques. Valeur obsolète : "block_some".
  • "block_only_high" : réduit le nombre de requêtes bloquées en raison de filtres de sécurité. Peut augmenter le contenu répréhensible généré par Imagen. Valeur obsolète : "block_few".
  • "block_none" : bloque très peu de requêtes et de réponses problématiques. L'accès à cette fonctionnalité est limité. Ancienne valeur du champ : "block_fewest".

La valeur par défaut est "block_medium_and_above".

sampleCount

int

Obligatoire. Nombre d'images à générer.

Nombre entier compris entre 1 et 4 (inclus). La valeur par défaut est 1.

seed

Uint32

Facultatif. Graine aléatoire pour la génération d'images. Ce paramètre n'est pas disponible lorsque addWatermark est défini sur true.

storageUri

string

Facultatif. URI de chaîne vers un emplacement de bucket Cloud Storage pour stocker les images générées.

outputOptions

outputOptions

Facultatif. Décrit le format des images de sortie dans un objet outputOptions.

Objet outputOptions

L'objet outputOptions décrit la sortie d'image.

Paramètres
outputOptions.mimeType

Facultatif : string

Format de sortie de l'image. Les valeurs suivantes sont acceptées :

  • "image/png" : enregistrer au format PNG.
  • "image/jpeg" : enregistrer au format JPEG.

La valeur par défaut est "image/png".

outputOptions.compressionQuality

Facultatif : int

Niveau de compression si le type de sortie est "image/jpeg". Les valeurs acceptées vont de 0 à 100. La valeur par défaut est 75.

Exemple de requête

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • REGION : région dans laquelle se trouve votre projet. Pour en savoir plus sur les régions compatibles, consultez Emplacements de l'IA générative sur Vertex AI.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • BASE64_PERSON_IMAGE : image de la personne encodée en Base64.
  • BASE64_PRODUCT_IMAGE : image du produit encodée en base64.
  • IMAGE_COUNT : nombre d'images à générer. La plage de valeurs acceptée est comprise entre 1 et 4.
  • GCS_OUTPUT_PATH : chemin d'accès Cloud Storage où stocker le résultat de l'essayage virtuel.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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 requête renvoie des objets image. Dans cet exemple, deux objets image sont renvoyés, avec deux objets de prédiction sous forme d'images encodées en base64.
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}