API Imagen Product Recontext

Le produit Imagen recontext sur l'API Vertex AI vous permet de modifier des images de produits en les insérant dans différentes scènes ou en les plaçant sur différents arrière-plans. Vous fournissez une image d'un produit et un prompt, et le produit Imagen recontextualise les images de votre produit dans de nouvelles scènes ou avec différents arrière-plans.

Pour demander l'accès à la fonctionnalité de recontextualisation de produits Imagen, remplissez le formulaire Vertex AI – Demande d'accès à Generative Media for Marketing.

Versions de modèles compatibles

La recontextualisation de produits Imagen est compatible avec les modèles suivants :

  • imagen-product-recontext-preview-06-30

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": [
    {
      "prompt": string,
      "productImages": [
        // The following fields can be repeated up to 3 times for different
        // views of the same product.
        {
          "image": {
            // Union field can be only one of the following:
            "bytesBase64Encoded": string,
            "gcsUri": string,
            // End of list of possible types for union field.
          },
        }
      ]
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "enhancePrompt": boolean
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    }
  }
}'

Instances

Instances
prompt

string

Facultatif. Requête textuelle pour guider la génération de la scène.

productImages

list[productImages]

Liste de trois ProductImages maximum de vues différentes du même produit. Le modèle utilise les images pour recontextualiser le produit dans différentes scènes ou avec différents arrière-plans.

Objet productImages

L'objet productImages décrit les composants Image à placer dans différentes scènes ou arrière-plans.

productImages

Champ d'union image.

Image du produit imagen-product-recontext-preview-06-30 comme entrée pour différentes vues du produit. Chaque image peut être une chaîne bytesBase64Encoded qui encode une image ou une chaîne gcsUri qui est un URI vers un emplacement de bucket Cloud Storage.

bytesBase64Encoded

string

Chaîne d'octets encodée en base64 d'un fichier image ou vidéo.

gcsUri

string

URI de chaîne vers un emplacement de bucket Cloud Storage.

Paramètres

Paramètres
addWatermark

boolean

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

La valeur par défaut est true.

enhancePrompt

boolean

Facultatif. Paramètre facultatif permettant d'utiliser une fonctionnalité de reformulation de requête basée sur un LLM pour générer des images de meilleure qualité qui reflètent mieux l'intention de la requête d'origine. La désactivation de cette fonctionnalité peut avoir un impact sur la qualité de l'image et le respect de la requête.

La valeur par défaut est true.

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 volume de contenus répréhensibles générés 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

Nombre d'images à générer.

Valeur entière comprise entre 1 et 4. 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.

Si enhancePrompt est défini sur true, le paramètre seed ne fonctionnera pas, car enhancePrompt génère une nouvelle requête qui génère une image nouvelle ou différente.

storageUri

string

Facultatif. URI de chaîne vers un emplacement de bucket Cloud Storage utilisé pour stocker les images générées. Si aucun bucket Cloud Storage n'est fourni, les octets d'image encodés en base64 sont renvoyés dans la réponse.

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" : enregistrez-la 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 sont comprises entre 0 et 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 .
  • TEXT_PROMPT : facultatif. Une requête textuelle pour guider les images générées par le modèle.
  • BASE64_SUBJECT_IMAGE : image encodée en base64 de l'image du sujet.
  • PERSON_SETTING : facultatif. Valeur de chaîne qui contrôle le type de génération de personnes ou de visages autorisé par le modèle. Vous pouvez utiliser les valeurs suivantes pour personGeneration :
    • "allow_adult" : autorise uniquement la génération d'adultes, à l'exception de la génération de célébrités. La génération de célébrités n'est autorisée pour aucun paramètre. Il s'agit du paramètre par défaut.
    • "allow_all" : autorise la génération de personnes de tous âges, à l'exception de la génération de célébrités. La génération de célébrités n'est autorisée pour aucun paramètre.
    • "dont_allow" : ne permet pas de générer des personnes ni des visages dans les résultats.
  • SAFETY_SETTING : facultatif. Valeur de chaîne qui contrôle le seuil du filtre de sécurité pour les images générées. Vous pouvez utiliser les valeurs suivantes pour sélectionner votre paramètre de sécurité :
    • "block_low_and_above" : seuil de sécurité le plus strict. "block_low_and_above" filtre le plus grand nombre d'images générées.
    • "block_medium_and_above" : seuil de sécurité moyen qui équilibre le filtrage des contenus potentiellement dangereux et sécurisés. "block_medium_and_above" est le paramètre de sécurité par défaut.
    • "block_only_high" : seuil de sécurité le plus bas, qui réduit le nombre de requêtes bloquées en raison du filtre de sécurité. L'utilisation du seuil de sécurité "block_only_high" peut augmenter le nombre d'images répréhensibles générées par le modèle.
  • WATERMARK_SETTING : Facultatif : valeur booléenne. Lorsque cette valeur est définie sur true, le modèle ajoute un filigrane numérique que vous pouvez utiliser pour vérifier l'image générée. La valeur par défaut est true.
  • IMAGE_COUNT : nombre d'images à générer. La plage de valeurs acceptée est 1-4.
  • PROMPT_SETTING : Facultatif : valeur booléenne. Lorsque cette valeur est définie sur true, le modèle utilise des prmopts améliorés. La valeur par défaut est true.

Méthode HTTP et URL :

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30:predict

Corps JSON de la requête :

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "productImages": [
        {
          "image": {
            "bytesBase64Encoded": "BASE64_SUBJECT_IMAGE"
          },
        }
      ]
    }
  ],
  "parameters": {
    "personGeneration": PERSON_SETTING,
    "safetySetting": SAFETY_SETTING,
    "addWatermark": WATERMARK_SETTING,
    "sampleCount": IMAGE_COUNT,
    "enhancePrompt": PROMPT_SETTING
  }
}

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/imagen-product-recontext-preview-06-30: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/imagen-product-recontext-preview-06-30: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"
    }
  ]
}