L'API Imagen ti consente di creare immagini di alta qualità in pochi secondi, utilizzando il prompt di testo per guidare la generazione. Puoi anche eseguire l'upscaling delle immagini utilizzando l'API Imagen.
Visualizzare la scheda del modello Imagen per la generazione
Modelli supportati
Modello | Codice |
---|---|
Generazione di immagini | imagen-3.0-generate-002 imagen-3.0-generate-001 imagen-3.0-fast-generate-001 imagegeneration@006 imagegeneration@005 imagegeneration@002 |
Per ulteriori informazioni sulle funzionalità supportate da ciascun modello, consulta Versionamento dei modelli.
Sintassi di esempio
Sintassi per creare un'immagine da un prompt di testo.
Sintassi
Sintassi per generare 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/${MODEL_VERSION}:predict \ -d '{ "instances": [ { "prompt": "..." } ], "parameters": { "sampleCount": ... } }'
Python
generation_model = ImageGenerationModel.from_pretrained("imagen-3.0-generate-001") response = generation_model.generate_images( prompt="...", negative_prompt="...", aspect_ratio=..., ) response.images[0].show()
Elenco dei parametri
Per informazioni dettagliate sull'implementazione, consulta gli esempi.
Genera immagini
REST
Parametri | |
---|---|
prompt |
Obbligatorio: Il prompt di testo per l'immagine. Il modello Il modello Il modello Il modello Il modello Il modello |
sampleCount |
Obbligatorio: Il numero di immagini da generare. Il valore predefinito è 4. Il modello Il modello Il modello Il modello Il modello Il modello |
seed |
(Facoltativo) Il seed casuale per la generazione di immagini. Questa opzione non è disponibile quando
Se |
enhancePrompt |
(Facoltativo) Un parametro facoltativo per utilizzare una funzionalità di riscrittura del prompt basata su LLM per fornire immagini di qualità superiore che riflettano meglio l'intent del prompt originale. La disattivazione di questa funzionalità potrebbe influire sulla qualità delle immagini e sull'aderenza al prompt.
|
negativePrompt |
(Facoltativo) Una descrizione di ciò che non deve essere presente nelle immagini generate.
Il modello Il modello Il modello Il modello Il modello |
aspectRatio |
(Facoltativo) Le proporzioni dell'immagine. Il valore predefinito è "1:1". Il modello Il modello Il modello Il modello Il modello Il modello |
outputOptions |
(Facoltativo) Descrive il formato dell'immagine di output in un
oggetto |
sampleImageStyle |
(Facoltativo) Descrive lo stile delle immagini generate. Sono supportati i seguenti valori:
|
personGeneration |
(Facoltativo) Consenti la generazione di persone dal modello. Sono supportati i seguenti valori:
Il valore predefinito è |
safetySetting |
(Facoltativo) Aggiunge un livello di filtro al filtro di sicurezza. Sono supportati i seguenti valori:
Il valore predefinito è |
addWatermark |
(Facoltativo) Aggiungi una filigrana invisibile alle immagini generate. Il valore predefinito è |
storageUri |
(Facoltativo) URI Cloud Storage per archiviare le immagini generate. |
Oggetto Opzioni di output
L'oggetto outputOptions
descrive l'output dell'immagine.
Parametri | |
---|---|
outputOptions.mimeType |
(Facoltativo) Il formato dell'immagine in cui deve essere salvato l'output. Sono supportati i seguenti valori:
Il valore predefinito è |
outputOptions.compressionQuality |
(Facoltativo) Il livello di compressione se il tipo di output è
|
Risposta
Il corpo della risposta della richiesta REST.
Parametro | |
---|---|
predictions |
Un array di
oggetti |
Oggetto del 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 IA responsabile. |
mimeType |
Il tipo di immagine generata. Non presente se l'immagine di output non ha superato i filtri di IA responsabile. |
raiFilteredReason |
Il motivo del filtro AI responsabile. Viene restituito solo se
|
safetyAttributes.categories |
Il nome dell'attributo di sicurezza. Viene restituito solo se
|
safetyAttributes.scores |
Il punteggio dell'attributo di sicurezza. Viene restituito solo se
|
Python
Parametri | |
---|---|
prompt |
Obbligatorio: Il prompt di testo per l'immagine. Il modello Il modello Il modello Il modello Il modello |
number_of_images |
Obbligatorio: Il numero di immagini da generare. Il valore predefinito è 1. Il modello Il modello Il modello Il modello Il modello |
seed |
(Facoltativo) Il seed casuale per la generazione di immagini. Questa opzione non è disponibile quando
Se |
negative_prompt |
(Facoltativo) Una descrizione di ciò che non deve essere presente nelle immagini generate. Il modello Il modello Il modello Il modello Il modello |
aspect_ratio |
(Facoltativo) Le proporzioni dell'immagine. Il valore predefinito è "1:1". Il modello Il modello Il modello |
output_mime_type |
(Facoltativo) Il formato dell'immagine in cui deve essere salvato l'output. Sono supportati i seguenti valori:
Il valore predefinito è |
compression_quality |
(Facoltativo) Il livello di compressione se il tipo MIME di output è
|
language |
(Facoltativo) La lingua del prompt di testo per l'immagine. Sono supportati i seguenti valori:
Il valore predefinito è |
output_gcs_uri |
(Facoltativo) URI Cloud Storage per archiviare le immagini generate. |
add_watermark |
(Facoltativo) Aggiungi una filigrana all'immagine generata. Il valore predefinito è
|
safety_filter_level |
(Facoltativo) Aggiunge un livello di filtro al filtro di sicurezza. Sono supportati i seguenti valori:
Il valore predefinito è |
person_generation |
(Facoltativo) Consenti la generazione di persone dal modello. Sono supportati i seguenti valori:
Il valore predefinito è |
Aumenta la risoluzione delle immagini
REST
Parametro | |
---|---|
mode |
Obbligatorio: Deve essere impostato su |
upscaleConfig |
Obbligatorio: |
outputOptions |
(Facoltativo) Descrive il formato dell'immagine di output in un
oggetto |
storageUri |
(Facoltativo) URI Cloud Storage per la posizione in cui archiviare le immagini generate. |
Oggetto di configurazione dell'upgrade
Parametro | |
---|---|
upscaleConfig.upscaleFactor |
Obbligatorio: Il fattore di upscale. I valori supportati sono |
Risposta
Il corpo della risposta della richiesta REST.
Parametro | |
---|---|
predictions |
Un array di
oggetti |
Esempi
Gli esempi riportati di seguito mostrano come utilizzare i modelli Imagen per generare immagini.
Genera immagini
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo Google Cloud ID progetto.
- MODEL_VERSION: la versione del modello
imagegeneration
da utilizzare. Valori disponibili:-
Imagen 3:
imagen-3.0-generate-002
(modello più recente)imagen-3.0-generate-001
imagen-3.0-fast-generate-001
- Versione del modello a bassa latenza.
-
Versione del modello predefinita:
imagegeneration
: utilizza la versione predefinita del modello v.006. Come best practice, devi sempre specificare una versione del modello, in particolare negli ambienti di produzione.
Per ulteriori informazioni sulle funzionalità e sulle versioni dei modelli, consulta le versioni del modello.
-
Imagen 3:
- LOCATION: la regione del progetto. Ad esempio,
us-central1
,europe-west2
oasia-northeast3
. Per un elenco delle regioni disponibili, consulta Località dell'IA generativa su Vertex AI. - TEXT_PROMPT: il prompt di testo che indica le immagini generate dal modello. Questo campo è obbligatorio sia per la generazione che per la modifica.
- IMAGE_COUNT: il numero di immagini generate.
Valori interi accettati: 1-8 (
imagegeneration@002
), 1-4 (tutte le altre versioni del modello). Valore predefinito: 4. - ADD_WATERMARK: booleano. Facoltativo. Indica se attivare una filigrana per le immagini generate.
Qualsiasi immagine generata quando il campo è impostato su
true
contiene un SynthID digitale che puoi utilizzare per verificare un'immagine con filigrana. Se ometti questo campo, viene utilizzato il valore predefinitotrue
. Per disattivare questa funzionalità, devi impostare il valore sufalse
. Puoi utilizzare il camposeed
per ottenere un output deterministico solo se questo campo è impostato sufalse
. - ASPECT_RATIO: stringa. Facoltativo. Un parametro della modalità di generazione che controlla il rapporto
immagine. Valori del rapporto supportati e relativo utilizzo previsto:
1:1
(valore predefinito, quadrato)3:4
(annunci, social media)4:3
(TV, fotografia)16:9
(orizzontale)9:16
(verticale)
- ENABLE_PROMPT_REWRITING: booleano. Facoltativo. Un parametro per utilizzare una funzionalità di riscrittura del prompt basata su LLM per fornire immagini di qualità superiore che riflettano meglio l'intent del prompt originale. La disattivazione di questa funzionalità potrebbe influire sulla qualità delle immagini e sull'aderenza al prompt. Valore predefinito:
true
. - INCLUDE_RAI_REASON: booleano. Facoltativo. Indica se attivare il
codice motivo filtrato dell'IA responsabile nelle risposte con input o output bloccati. Valore predefinito:
false
. - INCLUDE_SAFETY_ATTRIBUTES: booleano. Facoltativo. Indica se attivare i punteggi dell'IA responsabile arrotondati per un elenco di attributi di sicurezza nelle risposte per input e output non filtrati. Categorie di attributi di sicurezza:
"Death, Harm & Tragedy"
,"Firearms & Weapons"
,"Hate"
,"Health"
,"Illicit Drugs"
,"Politics"
,"Porn"
,"Religion & Belief"
,"Toxic"
,"Violence"
,"Vulgarity"
,"War & Conflict"
. Valore predefinito:false
. - MIME_TYPE: stringa. Facoltativo. Il tipo MIME dei contenuti dell'immagine. Valori
disponibili:
image/jpeg
image/gif
image/png
image/webp
image/bmp
image/tiff
image/vnd.microsoft.icon
- COMPRESSION_QUALITY: numero intero. Facoltativo. Si applica solo ai file di output JPEG. Il livello di dettaglio mantenuto dal modello per le immagini generate in formato file JPEG. Valori:
da
0
a100
, dove un numero più elevato indica una maggiore compressione. Valore predefinito:75
. - PERSON_SETTING: stringa. Facoltativo. L'impostazione di sicurezza che controlla il tipo di generazione di persone o volti consentito dal modello. Valori disponibili:
allow_adult
(impostazione predefinita): consente la generazione solo di persone adulte, ad eccezione della generazione di celebrità. La generazione di celebrità non è consentita per nessuna impostazione.dont_allow
: disattiva l'inclusione di persone o volti nelle immagini generate.
- SAFETY_SETTING: stringa. Facoltativo. Un'impostazione che controlla le soglie del filtro di sicurezza per le immagini generate. Valori disponibili:
block_low_and_above
: la soglia di sicurezza più elevata, che comporta la maggior quantità di immagini generate filtrate. Valore precedente:block_most
.block_medium_and_above
(valore predefinito): una soglia di sicurezza media che bilancia il filtro per contenuti potenzialmente dannosi e sicuri. Valore precedente:block_some
.block_only_high
: una soglia di sicurezza che riduce il numero di richieste bloccate a causa dei filtri di sicurezza. Questa impostazione potrebbe aumentare i contenuti discutibili generati da Imagen. Valore precedente:block_few
.
- SEED_NUMBER: numero intero. Facoltativo. Qualsiasi numero intero non negativo fornito per rendere deterministiche le immagini di output. Se fornisci lo stesso numero di seed, otterrai sempre le stesse immagini di output. Se
il modello che utilizzi supporta la filigrana digitale, devi impostare
"addWatermark": false
per utilizzare questo campo. Valori interi accettati:1
-2147483647
. - OUTPUT_STORAGE_URI: stringa. Facoltativo. Il bucket Cloud Storage in cui archiviare le immagini di output. Se non viene fornito, nella risposta vengono restituiti i byte dell'immagine con codifica base64. Valore di esempio:
gs://image-bucket/output/
.
Parametri facoltativi aggiuntivi
Utilizza le seguenti variabili facoltative in base al tuo caso d'uso. Aggiungi alcuni o tutti i seguenti parametri all'oggetto "parameters": {}
.
Questo elenco mostra i parametri facoltativi comuni e non è esaustivo. Per ulteriori informazioni sui parametri facoltativi, consulta la sezione Riferimento all'API Imagen: genera immagini.
"parameters": { "sampleCount": IMAGE_COUNT, "addWatermark": ADD_WATERMARK, "aspectRatio": "ASPECT_RATIO", "enhancePrompt": ENABLE_PROMPT_REWRITING, "includeRaiReason": INCLUDE_RAI_REASON, "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES, "outputOptions": { "mimeType": "MIME_TYPE", "compressionQuality": COMPRESSION_QUALITY }, "personGeneration": "PERSON_SETTING", "safetySetting": "SAFETY_SETTING", "seed": SEED_NUMBER, "storageUri": "OUTPUT_STORAGE_URI" }
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict
Corpo JSON della richiesta:
{ "instances": [ { "prompt": "TEXT_PROMPT" } ], "parameters": { "sampleCount": IMAGE_COUNT } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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/MODEL_VERSION:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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/MODEL_VERSION:predict" | Select-Object -Expand Content
"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" } ] }
Se utilizzi un modello che supporta il miglioramento del prompt, la risposta include un campo prompt
aggiuntivo con il prompt migliorato utilizzato per la generazione:
{ "predictions": [ { "mimeType": "MIME_TYPE", "prompt": "ENHANCED_PROMPT_1", "bytesBase64Encoded": "BASE64_IMG_BYTES_1" }, { "mimeType": "MIME_TYPE", "prompt": "ENHANCED_PROMPT_2", "bytesBase64Encoded": "BASE64_IMG_BYTES_2" } ] }
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
In questo esempio, chiami il metodo generate_images
su ImageGenerationModel
(versione @006
) e salvi le immagini generate localmente. Se vuoi, puoi utilizzare il metodo show()
in un notebook per visualizzare le immagini generate. Per ulteriori informazioni su funzionalità e versioni dei modelli, consulta Versioni dei modelli.
Aumenta la risoluzione delle immagini
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione del progetto. Ad esempio,
us-central1
,europe-west2
oasia-northeast3
. Per un elenco delle regioni disponibili, consulta Località dell'IA generativa su Vertex AI. - PROJECT_ID: il tuo Google Cloud ID progetto.
- B64_BASE_IMAGE: l'immagine di base da modificare o aumentare di risoluzione. L'immagine deve essere specificata come stringa di byte codificata in base64. Dimensioni massime: 10 MB.
- IMAGE_SOURCE: la posizione in Cloud Storage dell'immagine che vuoi modificare o ridimensionare. Ad esempio:
gs://output-bucket/source-photos/photo.png
. - UPSCALE_FACTOR: facoltativo. Il fattore di cui verrà aumentata la risoluzione dell'immagine. Se non viene specificato, il fattore di aumento verrà determinato dal lato più lungo dell'immagine di input e da
sampleImageSize
. Valori disponibili:x2
ox4
.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@002:predict
Corpo JSON della richiesta:
{ "instances": [ { "prompt": "", "image": { // use one of the following to specify the image to upscale "bytesBase64Encoded": "B64_BASE_IMAGE" "gcsUri": "IMAGE_SOURCE" // end of base image input options }, } ], "parameters": { "sampleCount": 1, "mode": "upscale", "upscaleConfig": { "upscaleFactor": "UPSCALE_FACTOR" } } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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/imagegeneration@002:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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/imagegeneration@002:predict" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "predictions": [ { "mimeType": "image/png", "bytesBase64Encoded": "iVBOR..[base64-encoded-upscaled-image]...YII=" } ] }
Passaggi successivi
- Per ulteriori informazioni, consulta la panoramica di Imagen su Vertex AI e Genera immagini utilizzando prompt di testo.