Genera immagini utilizzando prompt di testo con Imagen su Vertex AI

Puoi utilizzare Imagen su Vertex AI per generare nuove immagini da un prompt di testo. Le interfacce supportate includono la console Google Cloud e l'API Vertex AI.

I seguenti modelli supportano la generazione di immagini a partire da prompt di testo:

Per saperne di più sulla scrittura di prompt di testo per la generazione e la modifica di immagini, consulta la guida ai prompt.

Visualizza la scheda del modello Imagen per la generazione

Prova la generazione di immagini (Vertex AI Studio)

Provare Imagen in Colab

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Configura l'autenticazione per il tuo ambiente.

    Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.

    Python

    Per utilizzare gli esempi di Python in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.

    1. Installa Google Cloud CLI.

    2. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    3. Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:

      gcloud auth application-default login

      Non è necessario eseguire questa operazione se utilizzi Cloud Shell.

      Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI.

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .

Generare immagini con testo

Puoi generare nuove immagini utilizzando solo testo descrittivo come input. Gli esempi seguenti mostrano le istruzioni di base per generare immagini.

Console

1. Nella console Google Cloud , vai alla pagina Vertex AI > Media Studio.

<a href="https://console.cloud.google.com/vertex-ai/studio/media/generate;tab=image" class="button button-primary"
target="console" track-name="consoleLink" track-type="task">Go to Media
Studio</a>
  1. Fai clic su Immagine. Viene visualizzata la pagina di generazione di immagini di Imagen Media Studio.

  2. (Facoltativo) Nel riquadro Impostazioni, configura le seguenti impostazioni:

    • Modello: scegli un modello tra le opzioni disponibili.

      Per saperne di più sui modelli disponibili, consulta Modelli Imagen.

    • Proporzioni: scegli un formato tra le opzioni disponibili.

    • Numero di risultati: regola il cursore o inserisci un valore compreso tra 1 e 4.

    • Risoluzione output: scegli una risoluzione tra le opzioni disponibili.

  3. (Facoltativo) Nella sezione Opzioni avanzate, seleziona una Regione in cui generare le immagini.

  4. Nella casella Scrivi il prompt, inserisci il prompt di testo che descrive le immagini da generare. Ad esempio, piccola barca sull'acqua al mattino illustrazione ad acquerello.

    Per saperne di più su come scrivere prompt efficaci, consulta la guida ai prompt e agli attributi delle immagini.

  5. Fai clic su Genera.

Alle immagini generate viene aggiunta automaticamente una filigrana digitale. Non puoi disattivare la filigrana digitale per la generazione di immagini utilizzando la console Google Cloud .

Puoi selezionare un'immagine da visualizzare nella finestra Dettagli immagine. Le immagini con filigrana contengono un badge Filigrana digitale.

Un&#39;immagine generata di esempio con filigrana applicata utilizzando il testo
Visualizzazione dei dettagli di un'immagine con filigrana generata con Imagen 2 dal prompt: piccola barca rossa sull'acqua al mattino, illustrazione ad acquerello con colori tenui.

Python

Installa

pip install --upgrade google-genai

Per saperne di più, consulta la documentazione di riferimento dell'SDK.

Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

In questo esempio, chiami il metodo generate_images su ImageGenerationModel e salvi le immagini generate localmente. Puoi quindi utilizzare facoltativamente il metodo show() in un blocco note per visualizzare le immagini generate. Per ulteriori informazioni sulle versioni e sulle funzionalità dei modelli, consulta Modelli Imagen.

from google import genai
from google.genai.types import GenerateImagesConfig

client = genai.Client()

# TODO(developer): Update and un-comment below line
# output_file = "output-image.png"

image = client.models.generate_images(
    model="imagen-4.0-generate-001",
    prompt="A dog reading a newspaper",
    config=GenerateImagesConfig(
        image_size="2K",
    ),
)

image.generated_images[0].image.save(output_file)

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

REST

Per saperne di più sull'API Imagen, consulta le seguenti risorse:

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

  • REGION: la regione in cui si trova il progetto. Per ulteriori informazioni sulle regioni supportate, consulta Località dell'AI generativa su Vertex AI.
  • PROJECT_ID: il tuo Google Cloud ID progetto.
  • MODEL_VERSION: la versione del modello Imagen da utilizzare. Per ulteriori informazioni sui modelli disponibili, consulta Modelli Imagen.

  • TEXT_PROMPT: il prompt di testo che guida le immagini che il modello genera. Questo campo è obbligatorio sia per la generazione che per la modifica.
  • IMAGE_COUNT: il numero di immagini da generare. L'intervallo accettato di valori è compreso tra 1 e 4.
  • Parametri facoltativi aggiuntivi

    Utilizza le seguenti variabili facoltative a seconda del tuo caso d'uso. Aggiungi alcuni o tutti i seguenti parametri nell'oggetto "parameters": {}. Questo elenco mostra i parametri facoltativi comuni e non è esaustivo. Per saperne di più sui parametri facoltativi, consulta Riferimento 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"
    }
    
    • ADD_WATERMARK: booleano. Facoltativo. Se attivare una filigrana per le immagini generate. Qualsiasi immagine generata quando il campo è impostato su true contiene una filigrana digitale SynthID che puoi utilizzare per verificare un'immagine con filigrana. Se ometti questo campo, viene utilizzato il valore predefinito true; devi impostare il valore su false per disattivare questa funzionalità. Puoi utilizzare il campo seed per ottenere un output deterministico solo quando questo campo è impostato su false.
    • ASPECT_RATIO: stringa. Facoltativo. Un parametro della modalità di generazione che controlla le proporzioni. Valori del rapporto supportati e loro 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 disabilitazione di questa funzionalità potrebbe influire sulla qualità delle immagini e sull'aderenza del prompt. Valore predefinito: true.
    • INCLUDE_RAI_REASON: booleano. Facoltativo. Se attivare il codice del motivo del filtro dell'AI responsabile nelle risposte con input o output bloccati. Valore predefinito: true.
    • INCLUDE_SAFETY_ATTRIBUTES: booleano. Facoltativo. Se abilitare i punteggi di AI 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 del contenuto 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 che il modello conserva per le immagini generate in formato file JPEG. Valori: Da 0 a 100, dove un numero più alto indica una maggiore compressione. Valore predefinito: 75.
    • PERSON_SETTING: stringa. Facoltativo. L'impostazione di sicurezza che controlla il tipo di persone o generazione di volti consentita dal modello. Il valore predefinito dipende dal modello. Valori disponibili:
      • allow_all: Consenti la generazione di persone, inclusi i minorenni. Questo è il valore predefinito per i modelli di generazione Imagen 4, imagen-3.0-capability-001 e imagen-product-recontext-preview-06-30.
      • allow_adult: Consenti la generazione di immagini solo di adulti, comprese le celebrità. Questo è il valore predefinito per tutti gli altri modelli.
      • 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 il filtraggio della maggior parte delle immagini generate. Valore precedente: block_most.
      • block_medium_and_above (impostazione predefinita): una soglia di sicurezza media che bilancia il filtraggio di 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. Fornire lo stesso numero di seed genera 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 vengono forniti, nella risposta vengono restituiti i byte dell'immagine con codifica base64. Valore di esempio: gs://image-bucket/output/.

Metodo HTTP e URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/MODEL_VERSION:predict

Corpo JSON della richiesta:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "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, 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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/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 dei prompt, la risposta include un ulteriore campo prompt 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"
    }
  ]
}

Passaggi successivi

Leggi gli articoli su Imagen e altri prodotti di AI generativa su Vertex AI: