Modifier les images

Imagen vous permet de modifier des images en quelques secondes, à l'aide de requêtes textuelles, de masques et d'images existantes pour guider les modifications.

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

Versions de modèles compatibles

L'API Imagen est compatible avec les modèles suivants :

  • imagen-3.0-capability-001

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/imagen-3.0-capability-001:predict \

-d '{
  "instances": [
    {
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_RAW",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": string
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_MASK",
          "referenceId": 2,
          "referenceImage": {
            "bytesBase64Encoded": string
          },
          "maskImageConfig": {
            "maskMode": "MASK_MODE_USER_PROVIDED"
          }
        }
      ],
      "prompt": string
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "baseSteps": integer,
    "editMode": string,
    "guidanceScale": integer,
    "includeRaiReason": boolean,
    "includeSafetyAttributes": boolean,
    "language": string,
    "negativePrompt": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    },
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string
  }
}'

Instances

Instances
prompt

string

Facultatif. Prompt textuel pour l'image. Si aucun prompt n'est spécifié, le modèle insère du contenu à partir du contexte de l'image.

referenceImages

Liste d'objets ReferenceImage.

Obligatoire. Pour la modification du masque, deux images de référence doivent être spécifiées, l'une avec REFERENCE_TYPE_RAW et l'autre avec REFERENCE_TYPE_MASK.

Objet referenceImages

L'objet referenceImages décrit les composants Image à modifier dans Imagen.

Paramètres
referenceType

string

Obligatoire. Type d'image de référence. Choisissez l'une des options suivantes :

  • REFERENCE_TYPE_RAW : image de base à modifier.
  • REFERENCE_TYPE_MASK : image de masque dont les valeurs non nulles indiquent où modifier l'image de base.
referenceId

integer

Obligatoire. Identifiant unique de l'image de référence. Non utilisé pour la modification masquée.

referenceImage.bytesBase64Encoded

string

Obligatoire. Octets de l'image encodés en base64. Accepte les fichiers PNG, JPEG, GIF et BMP. La taille maximale est de 20 Mo après le transcodage au format PNG. Si vous fournissez une image de masque, elle doit avoir les mêmes dimensions que l'image de base.

maskImageConfig.maskMode

string

Obligatoire lorsque referenceType est défini sur REFERENCE_TYPE_MASK. Doit être l'un des éléments suivants :

  • MASK_MODE_USER_PROVIDED : utilisez le masque de referenceImage.bytesBase64Encoded.
  • MASK_MODE_BACKGROUND : utilisez un masque généré automatiquement à partir de la segmentation de l'arrière-plan.
  • MASK_MODE_FOREGROUND : utilisez un masque généré automatiquement à partir de la segmentation du premier plan.
  • MASK_MODE_SEMANTIC : utilisez un masque généré automatiquement à partir de la segmentation sémantique avec la classe de masque concernée.
maskImageConfig.dilation

float

Facultatif. Plage : [0, 1]. Pourcentage de la largeur de l'image à utiliser pour dilater (agrandir) le masque. Cela peut aider à compenser les masques imprécis. Pour obtenir les meilleurs résultats, nous vous recommandons les paramètres maskImageConfig.maskMode suivants :

  • EDIT_MODE_INPAINT_INSERTION : 0.01
  • EDIT_MODE_INPAINT_REMOVAL : 0.01
  • EDIT_MODE_BGSWAP : 0.0
  • EDIT_MODE_OUTPAINT : 0.01-0.03
maskImageConfig.maskClasses

list[integer]

Facultatif. Masque les classes pour le mode MASK_MODE_SEMANTIC.

Paramètres

Paramètres
addWatermark

bool

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

La valeur par défaut est true.

baseSteps

integer

Facultatif. Nombre d'étapes d'échantillonnage. Une valeur plus élevée améliore la qualité de l'image, tandis qu'une valeur plus faible améliore la latence. La valeur par défaut est 75.

Pour les zones de masque plus petites ou pour les modes de suppression ou d'insertion, utilisez les étapes 16 à 35 pour réduire la latence tout en conservant un niveau de qualité similaire.

editMode

string

Obligatoire pour la modification de masque.

Énumération avec l'une des valeurs suivantes :

  • EDIT_MODE_INPAINT_REMOVAL : supprime les objets et remplit l'arrière-plan de l'image dans la zone du masque.
  • EDIT_MODE_INPAINT_INSERTION : ajoute des objets à partir d'un prompt donné.
  • EDIT_MODE_BGSWAP : ajoute du contenu d'arrière-plan dans la zone du masque, tout en conservant le contenu de l'objet dans la zone non masquée. Utile pour modifier un produit.
  • EDIT_MODE_OUTPAINT : étend l'image dans la zone du masque. Contrairement à EDIT_MODE_BGSWAP, cela complète des objets partiels qui se trouvent à la limite de l'image.
guidanceScale

integer

Facultatif. Contrôle dans quelle mesure le modèle respecte le prompt textuel. Des valeurs élevées augmentent la sortie et l'alignement des prompts, mais peuvent compromettre la qualité de l'image.

Plage acceptée : 0 – 500

Valeur par défaut : 60 pour le mode d'insertion, 75 pour les modes de suppression, bgswap et outpainting.

includeRaiReason

boolean

Facultatif. Indique si un motif de sécurité doit être inclus dans la réponse pour les images filtrées. La valeur par défaut est false.

includeSafetyAttributes

boolean

Facultatif. Indique si les scores de sécurité de chaque image doivent être indiqués dans la réponse. La valeur par défaut est false.

language

string

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

  • "auto" : détection automatique. Si Imagen détecte une langue compatible, le prompt et un prompt négatif facultatif sont traduits 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)
  • "zh" ou "zh-CN" : chinois (simplifié)
  • "zh-TW" : chinois (traditionnel)
  • "hi" : hindi
  • "ja" : japonais
  • "ko" : coréen
  • "pt" : Portugais
  • "es" : espagnol

language n'est compatible qu'avec imagen-3.0-capability-001.

negativePrompt

string

Facultatif. Description de ce que vous ne voulez pas voir apparaître dans les images générées.

outputOptions

outputOptions

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

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.

Pour la modification basée sur un masque, personGeneration est défini par défaut sur allow_adult. Pour la modification sans masque, personGeneration est défini par défaut sur allow_adult.

sampleCount

integer

Facultatif. Nombre d'images à générer. La valeur par défaut est 4.

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.

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

La valeur par défaut est "block_medium_and_above".

safetySetting n'est compatible qu'avec imagen-3.0-capability-001.

storageUri

string

Facultatif. URI Cloud Storage pour stocker les images générées.

Objet outputOptions

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

Paramètres
outputOptions.mimeType

string

Facultatif. Format d'image dans lequel la sortie doit être enregistrée. 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

integer

Facultatif. 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 .
  • TEXT_PROMPT : Facultatif. Une requête textuelle pour guider les images que le modèle génère. Pour de meilleurs résultats, décrivez la zone masquée et évitez les requêtes d'un seul mot. Par exemple, utilisez "un corgi mignon" au lieu de "corgi".
  • B64_BASE_IMAGE : image encodée en base64 de l'image en cours de modification, dont la taille ne dépasse pas 10 Mo. Pour en savoir plus sur l'encodage en base64, consultez Encoder et décoder des fichiers en Base64.
  • B64_MASK_IMAGE : image de masque en noir et blanc encodée en base64, dont la taille ne dépasse pas 10 Mo.
  • MASK_DILATION : Facultatif. Valeur flottante comprise entre 0 et 1 (inclus) représentant le pourcentage de la largeur de l'image à utiliser pour agrandir le masque. L'utilisation de dilation permet de compenser les masques imprécis. Nous vous recommandons de définir une valeur de 0.01.
  • EDIT_STEPS : facultatif. Entier représentant le nombre d'étapes d'échantillonnage. Une valeur plus élevée améliore la qualité de l'image, tandis qu'une valeur plus faible améliore la latence.

    Nous vous recommandons de commencer par 35 étapes. Si la qualité ne répond pas à vos exigences, nous vous recommandons d'augmenter la valeur jusqu'à la limite supérieure de 75.

  • SAMPLE_COUNT : Facultatif. Entier qui décrit le nombre d'images à générer. La plage de valeurs acceptée est comprise entre 1 et 4. La valeur par défaut est 4.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_RAW",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "B64_BASE_IMAGE"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_MASK",
          "referenceImage": {
            "bytesBase64Encoded": "B64_MASK_IMAGE"
          },
          "maskImageConfig": {
            "maskMode": "MASK_MODE_USER_PROVIDED",
            "dilation": MASK_DILATION
          }
        }
      ]
    }
  ],
  "parameters": {
    "editConfig": {
      "baseSteps": EDIT_STEPS
    },
    "editMode": "EDIT_MODE_INPAINT_INSERTION",
    "sampleCount": SAMPLE_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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
L'exemple de réponse suivant concerne 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