Genera immagini utilizzando prompt di testo con Imagen su Vertex AI

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

I seguenti modelli supportano la generazione di immagini 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 l'immagine della scheda del modello Generation

Prova la generazione di immagini (Vertex AI Studio)

Prova Imagen in un 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 carichi di lavoro.
  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 serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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 serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  8. Configura l'autenticazione per il tuo ambiente.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi 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 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. Opzionale: nella sezione Opzioni avanzate, seleziona una Regione in cui generare le immagini.

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

    Per ulteriori informazioni su come scrivere prompt efficaci, consultare Guida agli attributi del prompt e dell'immagine.

  5. Fai clic su Genera.

Una filigrana digitale viene aggiunta automaticamente alle immagini generate. 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 esempio di immagine generata con filigrana 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_ENTERPRISE=True

In questo esempio chiami ilgenerate_images metodo sulImageGenerationModel e salvare le immagini generate localmente. È quindi possibile utilizzare facoltativamente ilshow() metodo in un notebook per mostrarti 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 saperne di più sui modelli disponibili, consulta Modelli Imagen.

  • TEXT_PROMPT: il prompt testuale 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 (paesaggio)
      • 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 abilitare il codice motivo filtrato IA 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 soli adulti, comprese le celebrità. Questa è l'impostazione predefinita 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 per 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: