Personnaliser des images

L'API Imagen vous permet de créer des images de haute qualité en quelques secondes, en vous appuyant sur des requêtes textuelles et des images de référence pour guider la génération de style ou de sujet.

Afficher la fiche de modèle Imagen pour la modification et la personnalisation

Modèles compatibles

Modèle Code
Personnalisation à l'aide d'images de référence (few-shot) imagen-3.0-capability-001

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

Méthode HTTP et URL :

POST https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/imagen-3.0-capability-001:predict

Exemple de syntaxe

Syntaxe pour personnaliser une image à partir d'une requête textuelle et d'images de référence.

Syntaxe

Syntaxe pour personnaliser une image.

REST

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/imagen-3.0-capability-001:predict \
-d '{
    "instances": [
      {
        // Use [1] to refer to the reference images with referenceId=1
        // [2] to refer to the reference images with referenceId=2,
        // following the same format for all reference IDs that you provide.
        "prompt": "${TEXT_PROMPT}",
        "referenceImages": [
          // A list of at most 4 reference image objects.
          [...]
        ]
      }
    ],
    "parameters": {
        [...]
    }
}'

Exemple de corps de requête :

Cette requête concerne la personnalisation d'une personne avec une image de contrôle du maillage du visage et trois images de référence.

{
  "instances": [
    {
      "prompt": "Create an image about a man with short hair [1] in the pose of
       control image [2] to match the description: A pencil style sketch of a
       full-body portrait of a man with short hair [1] with hatch-cross drawing,
       hatch drawing of portrait with 6B and graphite pencils, white background,
       pencil drawing, high quality, pencil stroke, looking at camera, natural
       human eyes",
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_CONTROL",
          "referenceId": 2,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_1}"
          },
          "controlImageConfig": {
            "controlType": "CONTROL_TYPE_FACE_MESH",
            "enableControlImageComputation": true
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_2}"
          },
          "subjectImageConfig": {
            "subjectDescription": "a man with short hair",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_3}"
          },
          "subjectImageConfig": {
            "subjectDescription": "a man with short hair",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_4}"
          },
          "subjectImageConfig": {
            "subjectDescription": "a man with short hair",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        }
      ]
    }
  ],
  "parameters": {
    "negativePrompt": "wrinkles, noise, Low quality, dirty, low res, multi face,
      rough texture, messy, messy background, color background, photo realistic,
      photo, super realistic, signature, autograph, sign, text, characters,
      alphabet, letter",
    "seed": 1,
    "language": "en",
    "sampleCount": 4
  }
}

Liste des paramètres

Consultez des exemples pour en savoir plus sur l'implémentation.

Personnaliser des images

REST

Paramètres
referenceType Énumération des paramètres requis :
  • REFERENCE_TYPE_RAW
    • Une image de référence brute est nécessaire pour les cas d'utilisation de modification.
    • Aucune image de référence brute n'est nécessaire pour les autres cas d'utilisation.
    • Une seule image de référence brute peut exister dans une requête.
    • L'image de sortie a la même taille que l'image d'entrée de référence brute.
  • REFERENCE_TYPE_MASK
    • Une image de référence de masque est requise pour les cas d'utilisation de modification masquée.
    • Aucune image de référence de masque n'est requise pour les autres cas d'utilisation.
    • Si une image de référence brute est présente, l'image de masque doit avoir la même taille que l'image de référence brute.
    • L'utilisateur peut fournir son propre masque ou laisser Imagen en calculer un à partir de l'image de référence fournie.
    • Si l'image de référence de masque est vide et que maskMode n'est pas défini sur MASK_MODE_USER_PROVIDED, le masque est calculé en fonction de l'image de référence brute.
  • REFERENCE_TYPE_CONTROL
    • Si une image de référence brute est présente, l'image de contrôle doit avoir la même taille que l'image de référence brute.
    • Si l'image de référence de contrôle est vide et que enableControlImageComputation est défini sur true, l'image de contrôle est calculée en fonction de l'image de référence brute.
  • REFERENCE_TYPE_SUBJECT
    • L'utilisateur peut fournir plusieurs images de référence avec le même ID de référence. Par exemple, plusieurs images du même sujet peuvent avoir le même ID de référence. Cela peut améliorer la qualité de la sortie.
  • REFERENCE_TYPE_STYLE
    • Image de référence pour le style que le modèle utilise pour guider le style de l'image générée.
referenceId integer (obligatoire)

ID de référence. Utilisez cet ID de référence dans la requête. Par exemple, utilisez [1] pour renvoyer aux images de référence avec referenceId=1, et [2] pour renvoyer aux images de référence avec referenceId=2.
referenceImage.bytesBase64Encoded string (obligatoire)

Chaîne en base64 pour l'image de référence encodée.
maskImageConfig.maskMode Énumération des paramètres facultatifs :
  • MASK_MODE_USER_PROVIDED, si l'image de référence est une image de masque.
  • MASK_MODE_BACKGROUND, pour générer automatiquement un masque à l'aide de la segmentation de l'arrière-plan.
  • MASK_MODE_FOREGROUND, pour générer automatiquement un masque à l'aide de la segmentation du premier plan.
  • MASK_MODE_SEMANTIC, pour générer automatiquement un masque à l'aide de la segmentation sémantique et de la classe de masque concernée.

Spécifié lorsque referenceType est défini sur REFERENCE_TYPE_MASK.
maskImageConfig.dilation
float (facultatif). Plage : [0, 1]

Pourcentage de la largeur de l'image à utiliser pour dilater ce masque.

Spécifié lorsque referenceType est défini sur REFERENCE_TYPE_MASK.
maskImageConfig.maskClasses
list[Integer] facultatif.

Classes de masque pour le mode MASK_MODE_SEMANTIC.

Spécifié lorsque referenceType est défini sur REFERENCE_TYPE_MASK.
controlImageConfig.controlType
Énumération des paramètres requis :
  • CONTROL_TYPE_FACE_MESH pour le maillage du visage (personnalisation d'une personne).
  • CONTROL_TYPE_CANNY pour des contours de Canny.
  • CONTROL_TYPE_SCRIBBLE pour un croquis.

Spécifié lorsque referenceType est défini sur REFERENCE_TYPE_CONTROL.
controlImageConfig.enableControlImageComputation
bool (facultatif).
Par défaut : false.

  • Définissez cet élément sur false si vous fournissez votre propre image de contrôle.
  • Définissez cet élément sur true si vous souhaitez qu'Imagen calcule l'image de contrôle à partir de l'image de référence.

Spécifié lorsque referenceType est défini sur REFERENCE_TYPE_CONTROL.
language

Facultatif : string (imagen-3.0-capability-001, imagen-3.0.generate-001 et imagegeneration@006 uniquement)

Code de la langue de votre requête textuelle. Les valeurs suivantes sont acceptées :

  • auto : détection automatique. Si Imagen détecte une langue compatible, la requête et une requête négative facultative sont traduites en anglais. Si la langue détectée n'est pas compatible, Imagen utilise le texte d'entrée tel quel, ce qui peut entraîner un résultat inattendu. Aucun code d'erreur n'est renvoyé.
  • en : anglais (valeur par défaut en cas d'omission)
  • es : espagnol
  • hi : hindi
  • ja : japonais
  • ko : coréen
  • pt : portugais
  • zh-TW : chinois (traditionnel)
  • zh ou zh-CN : chinois (simplifié)
subjectImageConfig.subjectDescription
string (obligatoire).

Brève description du sujet de l'image. Par exemple, une femme aux cheveux bruns courts.

Spécifié lorsque referenceType est défini sur REFERENCE_TYPE_SUBJECT.
subjectImageConfig.subjectType
Énumération des paramètres requis :
  • SUBJECT_TYPE_PERSON : type de sujet "Personne".
  • SUBJECT_TYPE_ANIMAL : type de sujet "Animal".
  • SUBJECT_TYPE_PRODUCT : type de sujet "Produit".
  • SUBJECT_TYPE_DEFAULT : type d'objet par défaut.

Spécifié lorsque referenceType est défini sur REFERENCE_TYPE_SUBJECT.
styleImageConfig.styleDescription
string (facultatif).
Brève description du style.

Spécifié lorsque referenceType est défini sur REFERENCE_TYPE_STYLE.

Réponse

Corps de la réponse à la requête REST.

Paramètre
predictions

Un tableau d'objets VisionGenerativeModelResult, un pour chaque sampleCount demandé. Si des images sont filtrées par l'IA responsable, elles ne sont pas incluses.

Objet du résultat du modèle génératif Vision

Informations sur le résultat du modèle.

Paramètre
bytesBase64Encoded

Image générée encodée en base64. Absent si l'image de sortie n'a pas passé les filtres d'IA responsable.

mimeType

Type de l'image générée. Non présent si l'image de sortie n'a pas passé les filtres d'IA responsables.

Exemples

Les exemples suivants montrent comment utiliser le modèle Imagen pour personnaliser des images.

Personnaliser des images

REST

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

  • PROJECT_ID : ID de votre projet Google Cloud .
  • LOCATION : région de votre projet (us-central1, europe-west2 ou asia-northeast3, par exemple). Pour obtenir la liste des régions disponibles, consultez IA générative sur les emplacements Vertex AI.
  • TEXT_PROMPT : prompt textuel qui guide le modèle pour la génération d'images. Pour utiliser la personnalisation Imagen 3, incluez le referenceId de l'image ou des images de référence que vous fournissez au format [$referenceId]. Par exemple :
    • La requête textuelle suivante concerne une requête comportant deux images de référence avec "referenceId": 1. Les deux images sont accompagnées d'une description facultative de "subjectDescription": "man with short hair" : Crée une image d'un homme aux cheveux courts correspondant à la description : un croquis au crayon d'un portrait en pied d'un man with short hair [1] avec un dessin en hachures, dessin en hachures du portrait avec des crayons 6B et graphite, fond blanc, dessin au crayon, haute qualité, trait de crayon, regardant l'objectif, yeux humains naturels
  • "referenceId" : ID de l'image de référence ou ID d'une série d'images de référence correspondant au même sujet ou style. Dans cet exemple, les deux images de référence correspondent à la même personne. Elles partagent donc le même referenceId (1).
  • BASE64_REFERENCE_IMAGE : image de référence pour guider la génération d'images. L'image doit être spécifiée en tant que chaîne d'octets encodée en base64.
  • SUBJECT_DESCRIPTION : facultatif. Description textuelle de l'image de référence que vous pouvez ensuite utiliser dans le champ prompt. Exemple :
          "prompt": "a full-body portrait of a man with short hair [1] with hatch-cross
          drawing",
          [...],
          "subjectDescription": "man with short hair"
        
  • IMAGE_COUNT : nombre d'images générées. Valeurs entières acceptées : 1 à 4. Valeur par défaut : 4.

Méthode HTTP et URL :

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict

Corps JSON de la requête :

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
          },
          "subjectImageConfig": {
            "subjectDescription": "SUBJECT_DESCRIPTION",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
          },
          "subjectImageConfig": {
            "subjectDescription": "SUBJECT_DESCRIPTION",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        }
      ]
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT
  }
}

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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001: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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
L'exemple suivant représente la réponse à une requête avec "sampleCount": 2. La réponse renvoie deux objets de prédiction, avec les octets d'image générés encodés en base64.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

ID de classe

Utilisez les ID de classe d'objets suivants pour créer automatiquement un masque d'image basé sur des objets spécifiques.

ID de classe (class_id) Objet
0 sac à dos
1 parapluie
2 sac
3 cravate
4 valise
5 étui
6 oiseau
7 chat
8 chien
9 cheval
10 mouton
11 vache
12 éléphant
13 ours
14 zèbre
15 girafe
16 animal (autre)
17 micro-ondes
18 radiateur
19 four
20 grille-pain
21 réservoir de stockage
22 tapis roulant
23 évier
24 réfrigérateur
25 lave-linge séchant
26 ventilateur
27 lave-vaisselle
28 toilettes
29 baignoire
30 douche
31 tunnel
32 pont
33 jetée
34 tente
35 bâtiment
36 plafond
37 ordinateur portable
38 clavier
39 souris
40 télécommande
41 téléphone portable
42 télévision
43 étage
44 scène
45 banane
46 pomme
47 sandwich
48 orange
49 brocoli
50 carotte
51 hot dog
52 pizza
53 beignet
54 gâteau
55 fruit (autre)
56 aliment (autre)
57 chaise (autre)
58 fauteuil
59 siège de bureau
60 tabouret
61 siège
62 canapé
63 poubelle
64 plante en pot
65 table de chevet
66 lit
67 table
68 table de billard
69 tonneau
70 bureau
71 méridienne
72 penderie
73 lit d'enfant
74 panier
75 commode
76 bibliothèque
77 rangement (autre)
78 meuble de salle de bain
79 îlot de cuisine
80 porte
81 éclairage (autre)
82 lampe
83 applique
84 lustre
85 miroir
86 tableau blanc
87 étagère
88 escaliers
89 escalier mécanique
90 meuble de rangement
91 cheminée
92 cuisinière
93 borne d'arcade
94 gravier
95 plate-forme
96 terrain de sport
97 chemin de fer
98 route
99 neige
100 trottoir
101 piste
102 relief
103 livre
104 boîte
105 horloge
106 vase
107 ciseaux
108 jouet (autre)
109 ours en peluche
110 sèche-cheveux
111 brosse à dents
112 peinture
113 affiche
114 panneau d'affichage
115 bouteille
116 tasse
117 verre de vin
118 couteau
119 fourchette
120 cuillère
121 bol
122 plateau
123 hotte aspirante
124 assiette
125 personne
126 pilote (autre)
127 cycliste
128 motocycliste
129 papier
130 lampadaire
131 barrière
132 boîte aux lettres
133 caméra de surveillance
134 boîtier de raccordement
135 panneau de signalisation
136 feu tricolore
137 borne d'incendie
138 horodateur
139 banc
140 range-vélos
141 panneau publicitaire
142 ciel
143 poteau
144 clôture
145 rampe
146 garde-fou
147 colline montagneuse
148 rocher
149 frisbee
150 skis
151 snowboard
152 ballon de sport
153 cerf-volant
154 batte de base-ball
155 gant de base-ball
156 skateboard
157 planche de surf
158 raquette de tennis
159 filet
160 base
161 sculpture
162 colonne
163 fontaine
164 auvent
165 vêtement
166 bannière
167 drapeau
168 couverture
169 rideau (autre)
170 rideau de douche
171 oreiller
172 serviette
173 paillasson
174 végétation
175 vélo
176 voiture
177 tuk-tuk
178 moto
179 avion
180 bus
181 train
182 camion
183 remorque
184 bateau navire
185 objet à roues lent
186 rivière lac
187 mer
188 eau (autre)
189 piscine
190 cascade
191 mur
192 fenêtre
193 store

Étape suivante