Personalizzare le immagini

L'API Imagen ti consente di creare immagini di alta qualità in pochi secondi, utilizzando prompt di testo e immagini di riferimento per guidare la generazione di soggetti o stili.

Visualizzare la scheda del modello Imagen per la modifica e la personalizzazione

Modelli supportati

Modello Codice
Personalizzazione tramite immagini di riferimento (few-shot) imagen-3.0-capability-001

Per saperne di più sulle funzionalità supportate da ciascun modello, consulta Modelli Imagen.

Metodo HTTP e URL

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

Sintassi di esempio

Sintassi per personalizzare un'immagine da un prompt di testo e immagini di riferimento.

Sintassi

Sintassi per personalizzare un'immagine.

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": {
        [...]
    }
}'

Corpo della richiesta di esempio:

Questa richiesta riguarda la personalizzazione di una persona con un'immagine di controllo della mesh del volto e tre immagini di riferimento.

{
  "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
  }
}

Elenco dei parametri

Per informazioni dettagliate sull'implementazione, consulta gli esempi.

Personalizzare le immagini

REST

Parametri
referenceType Enumerazione obbligatoria:
  • REFERENCE_TYPE_RAW
    • Per i casi d'uso di modifica è necessaria un'immagine di riferimento non elaborata.
    • Un'immagine di riferimento grezza non è necessaria per altri casi d'uso.
    • In una richiesta esiste al massimo un'immagine di riferimento non elaborata.
    • L'immagine di output ha le stesse dimensioni dell'immagine di input di riferimento non elaborata.
  • REFERENCE_TYPE_MASK
    • Per i casi d'uso di modifica mascherata è necessaria un'immagine di riferimento della maschera.
    • Un'immagine di riferimento della maschera non è necessaria per altri casi d'uso.
    • Se è presente un'immagine di riferimento grezza, l'immagine della maschera deve avere le stesse dimensioni dell'immagine di riferimento grezza.
    • L'utente può fornire la propria maschera o lasciare che Imagen la calcoli a partire dall'immagine di riferimento fornita.
    • Se l'immagine di riferimento della maschera è vuota e maskMode non è impostato su MASK_MODE_USER_PROVIDED, la maschera viene calcolata in base all'immagine di riferimento non elaborata.
  • REFERENCE_TYPE_CONTROL
    • Se è presente l'immagine di riferimento grezza, l'immagine di controllo deve avere le stesse dimensioni.
    • Se l'immagine di riferimento del controllo è vuota e enableControlImageComputation è impostato su true, l'immagine del controllo viene calcolata in base all'immagine di riferimento non elaborata.
  • REFERENCE_TYPE_SUBJECT
    • L'utente può fornire più immagini di riferimento con lo stesso ID riferimento. Ad esempio, più immagini dello stesso soggetto possono avere lo stesso ID riferimento. In questo modo, potresti migliorare la qualità dell'output.
  • REFERENCE_TYPE_STYLE
referenceId Obbligatorio integer

L'ID riferimento. Utilizza questo ID di riferimento nel prompt. Ad esempio, utilizza [1] per fare riferimento alle immagini di riferimento con referenceId=1, [2] per fare riferimento alle immagini di riferimento con referenceId=2.
referenceImage.bytesBase64Encoded Obbligatorio string

Una stringa Base64 per l'immagine di riferimento codificata.
maskImageConfig.maskMode Enumerazione facoltativa:
  • MASK_MODE_USER_PROVIDED, se l'immagine di riferimento è un'immagine maschera.
  • MASK_MODE_BACKGROUND, per generare automaticamente una maschera utilizzando la segmentazione dello sfondo.
  • MASK_MODE_FOREGROUND, per generare automaticamente una maschera utilizzando la segmentazione del primo piano.
  • MASK_MODE_SEMANTIC, per generare automaticamente una maschera utilizzando la segmentazione semantica e la classe di maschera specificata.

Specificato quando referenceType è impostato su REFERENCE_TYPE_MASK.
maskImageConfig.dilation
Facoltativo float. Intervallo: [0, 1]

La percentuale di larghezza dell'immagine in base alla quale dilatare questa maschera.

Specificato quando referenceType è impostato su REFERENCE_TYPE_MASK.
maskImageConfig.maskClasses
Facoltativo list[Integer].

Maschere classi per la modalità MASK_MODE_SEMANTIC.

Specificato quando referenceType è impostato su REFERENCE_TYPE_MASK.
controlImageConfig.controlType
Enumerazione obbligatoria:
  • CONTROL_TYPE_FACE_MESH per la mesh del volto (personalizzazione della persona).
  • CONTROL_TYPE_CANNY per canny edge.
  • CONTROL_TYPE_SCRIBBLE per scarabocchiare.

Specificato quando referenceType è impostato su REFERENCE_TYPE_CONTROL.
controlImageConfig.enableControlImageComputation
Facoltativo bool.
Predefinito: false.

  • Imposta su false se fornisci la tua immagine di controllo.
  • Imposta true se vuoi che Imagen calcoli l'immagine di controllo dall'immagine di riferimento.

Specificato quando referenceType è impostato su REFERENCE_TYPE_CONTROL.
language

(Facoltativo) string (imagen-3.0-capability-001, imagen-3.0.generate-001 e imagegeneration@006)

Il codice lingua che corrisponde alla lingua del prompt di testo. Sono supportati i seguenti valori:

  • auto: rilevamento automatico. Se Imagen rileva una lingua supportata, il prompt e un prompt negativo facoltativo vengono tradotti in inglese. Se la lingua rilevata non è supportata, Imagen utilizza il testo di input letteralmente, il che potrebbe generare un output imprevisto. Non viene restituito alcun codice di errore.
  • en: inglese (se omesso, il valore predefinito)
  • es: spagnolo
  • hi: Hindi
  • ja: giapponese
  • ko: coreano
  • pt: portoghese
  • zh-TW: cinese (tradizionale)
  • zh o zh-CN: cinese (semplificato)
subjectImageConfig.subjectDescription
Obbligatorio string.

Una breve descrizione del soggetto nell'immagine. Ad esempio, una donna con i capelli castani corti.

Specificato quando referenceType è impostato su REFERENCE_TYPE_SUBJECT.
subjectImageConfig.subjectType
Enumerazione obbligatoria:
  • SUBJECT_TYPE_PERSON: Tipo di soggetto persona.
  • SUBJECT_TYPE_ANIMAL: Tipo di soggetto animale.
  • SUBJECT_TYPE_PRODUCT: Tipo di argomento del prodotto.
  • SUBJECT_TYPE_DEFAULT: Tipo di soggetto predefinito.

Specificato quando referenceType è impostato su REFERENCE_TYPE_SUBJECT.
styleImageConfig.styleDescription
Facoltativo string.
Una breve descrizione dello stile.

Specificato quando referenceType è impostato su REFERENCE_TYPE_STYLE.

Risposta

Il corpo della risposta della richiesta REST.

Parametro
predictions

Un array di oggetti VisionGenerativeModelResult, uno per ogni sampleCount richiesto. Se alcune immagini vengono filtrate dall'AI responsabile, non vengono incluse.

Oggetto risultato del modello generativo di visione

Informazioni sul risultato del modello.

Parametro
bytesBase64Encoded

L'immagine generata con codifica base64. Non presente se l'immagine di output non ha superato i filtri di AI responsabile.

mimeType

Il tipo di immagine generata. Non presente se l'immagine di output non ha superato i filtri di AI responsabile.

Esempi

Gli esempi riportati di seguito mostrano come utilizzare il modello Imagen per personalizzare le immagini.

Personalizzare le immagini

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo Google Cloud ID progetto.
  • LOCATION: la regione del progetto. Ad esempio, us-central1, europe-west2 o asia-northeast3. Per un elenco delle regioni disponibili, consulta Località dell'AI generativa su Vertex AI.
  • TEXT_PROMPT: Il prompt di testo guida le immagini che il modello genera. Per utilizzare la personalizzazione di Imagen 3, includi l'referenceId dell'immagine o delle immagini di riferimento che fornisci nel formato [$referenceId]. Ad esempio:
    • Il seguente prompt di testo è per una richiesta che ha due immagini di riferimento con "referenceId": 1. Entrambe le immagini hanno una descrizione opzionale di "subjectDescription": "man with short hair": Crea un'immagine di un uomo con i capelli corti che corrisponda alla descrizione: uno schizzo a matita di un ritratto a figura intera di un man with short hair [1] con tratteggio incrociato, disegno a tratteggio di un ritratto con matite 6B e di grafite, sfondo bianco, disegno a matita, alta qualità, tratto di matita, che guarda la fotocamera, occhi umani naturali
  • "referenceId": L'ID dell'immagine di riferimento o l'ID di una serie di immagini di riferimento che corrispondono allo stesso soggetto o stile. In questo esempio, le due immagini di riferimento sono della stessa persona, quindi condividono lo stesso referenceId (1).
  • BASE64_REFERENCE_IMAGE: Un'immagine di riferimento per guidare la generazione di immagini. L'immagine deve essere specificata come stringa di byte con codifica base64.
  • SUBJECT_DESCRIPTION: (Facoltativo) Una descrizione testuale dell'immagine di riferimento che puoi utilizzare nel campo prompt. Ad esempio:
          "prompt": "a full-body portrait of a man with short hair [1] with hatch-cross
          drawing",
          [...],
          "subjectDescription": "man with short hair"
        
  • IMAGE_COUNT: Il numero di immagini generate. Valori interi accettati: 1-4. Il valore predefinito è 4.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "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
  }
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

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

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

$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
La seguente risposta di esempio è per una richiesta con "sampleCount": 2. La risposta restituisce due oggetti di previsione, con i byte dell'immagine generata codificati in base64.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

ID classi

Utilizza i seguenti ID classe di oggetti per creare automaticamente una maschera dell'immagine in base a oggetti specifici.

ID classe (class_id) Oggetto
0 zaino
1 ombrello
2 borsa
3 cravatta
4 valigia
5 richiesta
6 uccello
7 gatto
8 cane
9 cavallo
10 pecora
11 mucca
12 elefante
13 orso
14 zebra
15 giraffa
16 animale (altro)
17 forno a microonde
18 radiatore
19 forno
20 tostapane
21 serbatoio di stoccaggio
22 nastro trasportatore
23 sink
24 frigorifero
25 Lavasciuga
26 ventilatore
27 lavastoviglie
28 toilette
29 vasca da bagno
30 doccia
31 tunnel
32 ponte
33 pier wharf
34 tenda
35 in fase di creazione
36 ceiling
37 laptop
38 tastiera
39 topo
40 telecomando
41 cellulare
42 televisione
43 piano
44 fase
45 banana
46 apple
47 sandwich
48 orange
49 broccoli
50 carota
51 hot dog
52 pizza
53 ciambella
54 torta
55 frutta (altro)
56 cibo (altro)
57 sedia (altro)
58 poltrona
59 sedia girevole
60 sgabello
61 utenza
62 divano
63 cestino
64 pianta in vaso
65 comodino
66 letto
67 tabella
68 tavolo da biliardo
69 barile
70 scrivania
71 ottoman
72 guardaroba
73 culla
74 cestino
75 cassettiera
76 libreria
77 contatore (altro)
78 mobile bagno
79 isola da cucina
80 porta
81 luce (altro)
82 lampada
83 applique
84 candelabro
85 specchio
86 lavagna
87 scaffale
88 scale
89 scala mobile
90 armadietto
91 camino
92 stufa
93 macchina arcade
94 ghiaia
95 piattaforma
96 playingfield
97 ferrovia
98 strada
99 neve
100 pavimentazione del marciapiede
101 pista
102 rilievo
103 libro
104 box
105 orologio
106 vaso
107 forbici
108 giocattolo (altro)
109 orsacchiotto
110 asciugacapelli
111 spazzolino da denti
112 dipinto
113 poster
114 bacheca
115 bottiglia
116 tazza
117 bicchiere di vino
118 coltello
119 fork
120 cucchiaio
121 ciotola
122 vassoio
123 cappa
124 piatto
125 persona
126 rider (other)
127 ciclista
128 motociclista
129 documento
130 lampione
131 barriera stradale
132 cassetta postale
133 cctv camera
134 scatola di giunzione
135 segnale stradale
136 semaforo
137 idrante
138 parchimetro
139 panchina
140 portabiciclette
141 billboard
142 Sky
143 palo
144 recinto
145 ringhiera
146 guard rail
147 collina di montagna
148 rock
149 frisbee
150 sci
151 snowboard
152 palla sportiva
153 aquilone
154 mazza da baseball
155 guanto da baseball
156 skateboard
157 tavola da surf
158 racchetta da tennis
159 net
160 base
161 scultura
162 colonna
163 fontana
164 tenda parasole
165 abbigliamento
166 banner
167 flag
168 coperta
169 tenda (altro)
170 tenda da doccia
171 cuscino
172 asciugamano
173 tappetino
174 vegetazione
175 bicicletta
176 automobile
177 autorickshaw
178 motocicletta
179 aereo
180 autobus
181 train
182 camion
183 trailer
184 boat ship
185 oggetto lento con ruote
186 lago fluviale
187 sea
188 acqua (altro)
189 piscina
190 cascata
191 parete
192 finestra
193 tapparella

Passaggi successivi