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'essai virtuel pour générer des images de la personne portant le vêtement.

Versions de modèles compatibles

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

  • virtual-try-on-001

Pour en savoir plus sur les fonctionnalités compatibles avec le modèle, consultez la section 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 portant 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 porté par 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. Entier qui contrôle la génération d'images. Plus le nombre d'étapes est élevé, plus la qualité est élevée, mais la latence augmente.

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 certains prompts 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 valeur : "block_fewest".

La valeur par défaut est "block_medium_and_above".

sampleCount

int

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

Valeur entière comprise 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. Cette option 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 outputOptions objet.

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 ci-dessous, effectuez les remplacements suivants :

  • REGION : région dans laquelle se trouve votre projet. Pour en savoir plus sur les régions compatibles, consultez la section IA générative dans les emplacements Vertex AI.
  • PROJECT_ID : ID de votre Google Cloud projet.
  • BASE64_PERSON_IMAGE : image de la personne image 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 pour stocker la sortie de l'essai virtuel.

Méthode HTTP et URL :

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/virtual-try-on-001: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-001:predict"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, et 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-001: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 en tant qu'images encodées en base64.
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}