Genera immagini

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: string

Il prompt di testo per l'immagine.

Il modello imagen-3.0-generate-002 supporta fino a 480 token.

Il modello imagen-3.0-generate-001 supporta fino a 480 token.

Il modello imagen-3.0-fast-generate-001 supporta fino a 480 token.

Il modello imagegeneration@006 supporta fino a 128 token.

Il modello imagegeneration@005 supporta fino a 128 token.

Il modello imagegeneration@002 supporta fino a 64 token.

sampleCount

Obbligatorio: int

Il numero di immagini da generare. Il valore predefinito è 4.

Il modello imagen-3.0-generate-002 supporta i valori da 1 a 4.

Il modello imagen-3.0-generate-001 supporta i valori da 1 a 4.

Il modello imagen-3.0-fast-generate-001 supporta i valori da 1 a 4.

Il modello imagegeneration@006 supporta i valori da 1 a 4.

Il modello imagegeneration@005 supporta i valori da 1 a 4.

Il modello imagegeneration@002 supporta i valori da 1 a 8.

seed

(Facoltativo) Uint32

Il seed casuale per la generazione di immagini. Questa opzione non è disponibile se addWatermark è impostato su true.

enhancePrompt

(Facoltativo) boolean

Un parametro facoltativo per utilizzare una funzionalità di riscrittura del prompt basata su LLM per fornire immagini di qualità superiore che riflettano meglio l'intenzione del prompt originale. La disattivazione di questa funzionalità potrebbe influire sulla qualità delle immagini e sulla sollecitazione dell'adesione.

imagen-3.0-generate-002 supporta questo campo. Valore predefinito: true.

imagen-3.0-generate-001 non supporta questo campo.

imagen-3.0-fast-generate-001 non supporta questo campo.

imagegeneration@006 non supporta questo campo.

imagegeneration@005 non supporta questo campo.

imagegeneration@002 non supporta questo campo.

negativePrompt

(Facoltativo) string

Una descrizione di ciò che non deve essere presente nelle immagini generate.

imagen-3.0-generate-002 non supporta questo campo.

Il modello imagen-3.0-generate-001 supporta fino a 480 token.

Il modello imagen-3.0-fast-generate-001 supporta fino a 480 token.

Il modello imagegeneration@006 supporta fino a 128 token.

Il modello imagegeneration@005 supporta fino a 128 token.

Il modello imagegeneration@002 supporta fino a 64 token.

aspectRatio

(Facoltativo) string

Le proporzioni dell'immagine. Il valore predefinito è "1:1".

Il modello imagen-3.0-generate-002 supporta "1:1", "9:16", "16:9", "3:4" o "4:3".

Il modello imagen-3.0-generate-001 supporta "1:1", "9:16", "16:9", "3:4" o "4:3".

Il modello imagen-3.0-fast-generate-001 supporta "1:1", "9:16", "16:9", "3:4" o "4:3".

Il modello imagegeneration@006 supporta "1:1", "9:16", "16:9", "3:4" o "4:3".

Il modello imagegeneration@005 supporta "1:1" o "9:16".

Il modello imagegeneration@002 supporta "1:1".

outputOptions

(Facoltativo) outputOptions

Descrive il formato dell'immagine di output in un oggetto outputOptions.

sampleImageStyle

(Facoltativo) string (solo imagegeneration@002)

Descrive lo stile delle immagini generate. Sono supportati i seguenti valori:

  • "photograph"
  • "digital_art"
  • "landscape"
  • "sketch"
  • "watercolor"
  • "cyberpunk"
  • "pop_art"
personGeneration

(Facoltativo) string (solo imagen-3.0-generate-002, imagen-3.0-generate-001, imagen-3.0-fast-generate-001 e imagegeneration@006)

Consenti la generazione di persone dal modello. Sono supportati i seguenti valori:

  • "dont_allow": non consentire l'inclusione di persone o volti nelle immagini.
  • "allow_adult": consenti la generazione solo di adulti.
  • "allow_all": consenti la generazione di persone di tutte le età.

Il valore predefinito è "allow_adult".

safetySetting

(Facoltativo) string (solo imagen-3.0-generate-002, imagen-3.0-generate-001, imagen-3.0-fast-generate-001 e imagegeneration@006)

Aggiunge un livello di filtro al filtro di sicurezza. Sono supportati i seguenti valori:

  • "block_low_and_above": livello di filtro più elevato, blocco più rigoroso. Valore deprecato: "block_most".
  • "block_medium_and_above": blocca alcune richieste e risposte problematiche. Valore deprecato: "block_some".
  • "block_only_high": riduce il numero di richieste bloccate a causa dei filtri di sicurezza. Potrebbe aumentare i contenuti discutibili generati da Imagen. Valore deprecato: "block_few".
  • "block_none": blocca pochissimi prompt e risposte problematici. L'accesso a questa funzionalità è limitato. Valore del campo precedente: "block_fewest".

Il valore predefinito è "block_medium_and_above".

addWatermark

(Facoltativo) bool

Aggiungi una filigrana invisibile alle immagini generate. Il valore predefinito è false per i modelli imagegeneration@002 e imagegeneration@005 e true per i modelli imagen-3.0-generate-002, imagen-3.0-generate-001, imagen-3.0-fast-generate-001, imagegeneration@006 e imagegeneration@006.

storageUri

(Facoltativo) string

URI Cloud Storage per archiviare le immagini generate.

Oggetto Opzioni di output

L'oggetto outputOptions descrive l'output dell'immagine.

Parametri
outputOptions.mimeType

(Facoltativo) string

Il formato dell'immagine in cui deve essere salvato l'output. Sono supportati i seguenti valori:

  • "image/png": salva come immagine PNG
  • "image/jpeg": salva come immagine JPEG

Il valore predefinito è "image/png".

outputOptions.compressionQuality

(Facoltativo) int

Il livello di compressione se il tipo di output è "image/jpeg". I valori accettati vanno da 0 a 100. Il valore predefinito è 75.

Risposta

Il corpo della risposta della richiesta REST.

Parametro
predictions

Un array di oggetti VisionGenerativeModelResult, uno per ogni sampleCount richiesto. Se le immagini vengono filtrate dall'AI responsabile, non vengono incluse, a meno che includeRaiReason non sia impostato su true.

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 AI responsabile.

mimeType

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

raiFilteredReason

Il motivo del filtro AI responsabile. Viene restituito solo se includeRaiReason è attivato e questa immagine è stata esclusa.

safetyAttributes.categories

Il nome dell'attributo di sicurezza. Viene restituito solo se includeSafetyAttributes è attivato e l'immagine di output ha superato i filtri di AI responsabile.

safetyAttributes.scores

Il punteggio dell'attributo di sicurezza. Viene restituito solo se includeSafetyAttributes è attivato e l'immagine di output ha superato i filtri di AI responsabile.

Python

Parametri
prompt

Obbligatorio: string

Il prompt di testo per l'immagine.

Il modello imagen-3.0-generate-001 supporta fino a 480 token.

Il modello imagen-3.0-fast-generate-001 supporta fino a 480 token.

Il modello imagegeneration@006 supporta fino a 128 token.

Il modello imagegeneration@005 supporta fino a 128 token.

Il modello imagegeneration@002 supporta fino a 64 token.

number_of_images

Obbligatorio: int

Il numero di immagini da generare. Il valore predefinito è 1.

Il modello imagen-3.0-generate-001 supporta i valori da 1 a 8.

Il modello imagen-3.0-fast-generate-001 supporta i valori da 1 a 8.

Il modello imagegeneration@006 supporta i valori da 1 a 4.

Il modello imagegeneration@005 supporta i valori da 1 a 4.

Il modello imagegeneration@002 supporta i valori da 1 a 8.

seed

(Facoltativo) int

Il seed casuale per la generazione di immagini. Questa opzione non è disponibile se addWatermark è impostato su true.

negative_prompt

(Facoltativo) string

Una descrizione di ciò che non deve essere presente nelle immagini generate.

Il modello imagen-3.0-generate-001 supporta fino a 480 token.

Il modello imagen-3.0-fast-generate-001 supporta fino a 480 token.

Il modello imagegeneration@006 supporta fino a 128 token.

Il modello imagegeneration@005 supporta fino a 128 token.

Il modello imagegeneration@002 supporta fino a 64 token.

aspect_ratio

(Facoltativo) string

Le proporzioni dell'immagine. Il valore predefinito è "1:1".

Il modello imagen-3.0-generate-001 supporta "1:1", "9:16", "16:9", "3:4" o "4:3".

Il modello imagen-3.0-fast-generate-001 supporta "1:1", "9:16", "16:9", "3:4" o "4:3".

Il modello imagegeneration@006 supporta "1:1", "9:16", "16:9", "3:4" o "4:3".

output_mime_type

(Facoltativo) string (solo imagen-3.0-generate-001, imagen-3.0-fast-generate-001 e imagegeneration@006)

Il formato dell'immagine in cui deve essere salvato l'output. Sono supportati i seguenti valori:

  • "image/png": salva come immagine PNG
  • "image/jpeg": salva come immagine JPEG

Il valore predefinito è "image/png".

compression_quality

(Facoltativo) int

Il livello di compressione se il tipo MIME di output è "image/jpeg". Il valore predefinito è 75.

language

(Facoltativo) string

La lingua del prompt di testo per l'immagine. Sono supportati i seguenti valori:

  • "en": inglese
  • "hi": hindi
  • "ja": giapponese
  • "ko": coreano
  • "auto": rilevamento automatico della lingua

Il valore predefinito è "auto".

output_gcs_uri

(Facoltativo) string

URI Cloud Storage per archiviare le immagini generate.

add_watermark

(Facoltativo) bool

Aggiungi una filigrana all'immagine generata. Il valore predefinito è false per i modelli imagegeneration@002 e imagegeneration@005 e true per i modelli imagen-3.0-fast-generate-001, imagen-3.0-generate-001 e imagegeneration@006.

safety_filter_level

(Facoltativo) string

Aggiunge un livello di filtro al filtro di sicurezza. Sono supportati i seguenti valori:

  • "block_low_and_above": il livello di filtraggio più elevato, che comporta il blocco più rigoroso. Valore deprecato: "block_most".
  • "block_medium_and_above": blocca alcune richieste e risposte problematiche. Valore deprecato: "block_some".
  • "block_only_high": blocca meno prompt e risposte problematici. Valore deprecato: "block_few".
  • "block_none": blocca pochissimi prompt e risposte problematici. Valore deprecato: "block_fewest".

Il valore predefinito è "block_medium_and_above".

person_generation

(Facoltativo) string (solo imagen-3.0-generate-001, imagen-3.0-fast-generate-001 e imagegeneration@006)

Consenti la generazione di persone dal modello. Sono supportati i seguenti valori:

  • "dont_allow": Blocca la generazione di persone
  • "allow_adult": genera adulti, ma non bambini
  • "allow_all": genera adulti e bambini

Il valore predefinito è "allow_adult".

Aumenta la risoluzione delle immagini

REST

Parametro
mode

Obbligatorio: string

Deve essere impostato su "upscale" per le richieste di upscaling.

upscaleConfig

Obbligatorio: UpscaleConfig

Un oggetto UpscaleConfig.

outputOptions

(Facoltativo) OutputOptions

Descrive il formato dell'immagine di output in un oggetto outputOptions.

storageUri

(Facoltativo) string

URI Cloud Storage per la posizione in cui archiviare le immagini generate.

Oggetto di configurazione dell'upgrade

Parametro
upscaleConfig.upscaleFactor

Obbligatorio: string

Il fattore di upscale. I valori supportati sono "x2" e "x4".

Risposta

Il corpo della risposta della richiesta REST.

Parametro
predictions

Un array di oggetti VisionGenerativeModelResult, uno per ogni sampleCount richiesto. Se le immagini vengono filtrate dall'AI responsabile, non vengono incluse, a meno che includeRaiReason non sia impostato su true.

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 ID progetto Google Cloud .
  • 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.

  • LOCATION: la regione del progetto. Ad esempio, us-central1, europe-west2 o asia-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.

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

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.


import vertexai
from vertexai.preview.vision_models import ImageGenerationModel

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# output_file = "input-image.png"
# prompt = "" # The text prompt describing what you want to see.

vertexai.init(project=PROJECT_ID, location="us-central1")

model = ImageGenerationModel.from_pretrained("imagen-3.0-generate-001")

images = model.generate_images(
    prompt=prompt,
    # Optional parameters
    number_of_images=1,
    language="en",
    # You can't use a seed value and watermark at the same time.
    # add_watermark=False,
    # seed=100,
    aspect_ratio="1:1",
    safety_filter_level="block_some",
    person_generation="allow_adult",
)

images[0].save(location=output_file, include_generation_parameters=False)

# Optional. View the generated image in a notebook.
# images[0].show()

print(f"Created output image using {len(images[0]._image_bytes)} bytes")
# Example response:
# Created output image using 1234567 bytes

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 o asia-northeast3. Per un elenco delle regioni disponibili, consulta Località dell'IA generativa su Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • 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 a 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 o x4 .

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