Generare immagini con Gemini

Gemini 2.0 Flash supporta la generazione di risposte in più modalità, tra cui testo e immagini.

Generazione di immagini

L'anteprima pubblica di Gemini 2.0 Flash per la generazione di immagini (gemini-2.0-flash-preview-image-generation) supporta la possibilità di generare immagini oltre al testo. In questo modo, le funzionalità di Gemini vengono ampliate per includere quanto segue:

  • Genera immagini in modo iterativo tramite conversazioni in linguaggio naturale, modificando le immagini mantenendo coerenza e contesto.
  • Genera immagini con rendering di testo lungo di alta qualità.
  • Genera output di testo e immagini con interleaving. Ad esempio, un post del blog con testo e immagini in un unico turno. In precedenza, ciò richiedeva di concatenare più modelli.
  • Genera immagini utilizzando le conoscenze del mondo e le capacità di ragionamento di Gemini.

Con questa release sperimentale pubblica, Gemini 2.0 Flash può generare immagini a 1024 px, supporta la generazione e la modifica di immagini di persone e contiene filtri di sicurezza aggiornati che offrono un'esperienza utente più flessibile e meno restrittiva.

Supporta le seguenti modalità e funzionalità:

  • Da testo a immagine

    • Prompt di esempio: "Genera un'immagine della Torre Eiffel con fuochi d'artificio sullo sfondo".
  • Da testo a immagine (rendering del testo)

    • Prompt di esempio: "genera una foto cinematografica di un grande edificio con questa proiezione di testo gigante mappata sulla parte anteriore dell'edificio: "Gemini 2.0 ora può generare testo in formato lungo""
  • Testo in immagine/i e testo (interleaving)

    • Prompt di esempio: "Genera una ricetta illustrata per una paella. Crea immagini insieme al testo mentre generi la ricetta."
    • Prompt di esempio: "Genera una storia su un cane in stile di animazione di cartoni animati 3D. Per ogni scena, genera un'immagine"
  • Immagine/i e testo in immagine/i e testo (interleaved)

    • Prompt di esempio: (con l'immagine di una stanza arredata) "Quali altri colori di divani si abbinerebbero al mio spazio? Puoi aggiornare l'immagine?"
  • Modifica delle immagini (da testo a immagine e da immagine a immagine)

    • Prompt di esempio: "Modifica questa immagine per farla sembrare un cartone animato"
    • Prompt di esempio: [immagine di un gatto] + [immagine di un cuscino] + "Crea un punto croce del mio gatto su questo cuscino".
  • Modifica di immagini in più passaggi (chat)

    • Prompt di esempio: [carica un'immagine di un'auto blu.] "Trasforma questa auto in una cabriolet." "Ora cambia il colore in giallo."

Limitazioni:

  • Per ottenere il massimo rendimento, utilizza le seguenti lingue: EN, es-MX, ja-JP, zh-CN, hi-IN.
  • La generazione di immagini non supporta input audio o video.
  • La generazione di immagini potrebbe non essere sempre attivata:
    • Il modello potrebbe restituire solo testo. Prova a chiedere esplicitamente output di immagini. Ad esempio, "fornisci immagini man mano che procedi".
    • Il modello potrebbe generare testo come immagine. Prova a chiedere esplicitamente output di testo. Ad esempio, "genera un testo narrativo insieme alle illustrazioni".
    • Il modello potrebbe interrompere la generazione a metà. Riprova o prova un prompt diverso.

Genera immagini

Le sezioni seguenti descrivono come generare immagini utilizzando Vertex AI Studio o l'API.

Per indicazioni e best practice per i prompt, consulta Progettare prompt multimodali.

Console

Per utilizzare la generazione di immagini:

  1. Apri Vertex AI Studio > Crea prompt.
  2. Fai clic su Cambia modello e seleziona gemini-2.0-flash-preview-image-generation dal menu.
  3. Nel riquadro Output, seleziona Immagine e testo dal menu a discesa.
  4. Scrivi una descrizione dell'immagine che vuoi generare nell'area di testo dell'area di testo Scrivi un prompt.
  5. Fai clic sul pulsante Prompt ().

Gemini genererà un'immagine in base alla tua descrizione. Questa operazione dovrebbe richiedere alcuni secondi, ma potrebbe essere relativamente più lenta a seconda della capacità.

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

from google import genai
from google.genai.types import GenerateContentConfig, Modality
from PIL import Image
from io import BytesIO

client = genai.Client()

response = client.models.generate_content(
    model="gemini-2.0-flash-preview-image-generation",
    contents=(
        "Generate an image of the Eiffel tower with fireworks in the background."
    ),
    config=GenerateContentConfig(response_modalities=[Modality.TEXT, Modality.IMAGE]),
)
for part in response.candidates[0].content.parts:
    if part.text:
        print(part.text)
    elif part.inline_data:
        image = Image.open(BytesIO((part.inline_data.data)))
        image.save("example-image.png")
# Example response:
#   A beautiful photograph captures the iconic Eiffel Tower in Paris, France,
#   against a backdrop of a vibrant and dynamic fireworks display. The tower itself...

REST

Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${API_ENDPOINT}:generateContent \
  -d '{
    "contents": {
      "role": "USER",
      "parts": { "text": "Create a tutorial explaining how to make a peanut butter and jelly sandwich in three easy steps."},
    },
    "generation_config": {
      "response_modalities": ["TEXT", "IMAGE"],
     },
     "safetySettings": {
      "method": "PROBABILITY",
      "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
      "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    },
  }' 2>/dev/null >response.json

Gemini genererà un'immagine in base alla tua descrizione. Questa procedura dovrebbe richiedere alcuni secondi, ma potrebbe essere relativamente più lenta a seconda della capacità.

Modificare un'immagine

Console

Per modificare le immagini:

  1. Apri Vertex AI Studio > Crea prompt.
  2. Fai clic su Cambia modello e seleziona gemini-2.0-flash-preview-image-generation dal menu.
  3. Nel riquadro Output, seleziona Immagine e testo dal menu a discesa.
  4. Fai clic su Inserisci contenuti multimediali () e seleziona un'origine dal menu, poi segui le istruzioni della finestra di dialogo.
  5. Scrivi le modifiche che vuoi apportare all'immagine nell'area di testo Scrivi un prompt.
  6. Fai clic sul pulsante Prompt ().

Gemini genererà una versione modificata dell'immagine fornita in base alla tua descrizione. Questa procedura dovrebbe richiedere pochi secondi, ma potrebbe essere più lenta a seconda della capacità.

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

from google import genai
from google.genai.types import GenerateContentConfig, Modality
from PIL import Image
from io import BytesIO

client = genai.Client()

# Using an image of Eiffel tower, with fireworks in the background.
image = Image.open("example-image.png")

response = client.models.generate_content(
    model="gemini-2.0-flash-exp",
    contents=[image, "Edit this image to make it look like a cartoon."],
    config=GenerateContentConfig(response_modalities=[Modality.TEXT, Modality.IMAGE]),
)
for part in response.candidates[0].content.parts:
    if part.text:
        print(part.text)
    elif part.inline_data:
        image = Image.open(BytesIO((part.inline_data.data)))
        image.save("bw-example-image.png")
# Example response:
#  Here's the cartoon-style edit of the image:
#  Cartoon-style edit:
#  - Simplified the Eiffel Tower with bolder lines and slightly exaggerated proportions.
#  - Brightened and saturated the colors of the sky, fireworks, and foliage for a more vibrant, cartoonish look.
#  ....

REST

Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${API_ENDPOINT}:generateContent \
  -d '{
    "contents": {
      "role": "USER",
      "parts": [
        {"file_data": {
          "mime_type": "image/jpg",
          "file_uri": "<var>FILE_NAME</var>"
          }
        },
        {"text": "Convert this photo to black and white, in a cartoonish style."},
      ]

    },
    "generation_config": {
      "response_modalities": ["TEXT", "IMAGE"],
    },
    "safetySettings": {
      "method": "PROBABILITY",
      "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
      "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    },
  }' 2>/dev/null >response.json

Gemini genererà un'immagine in base alla tua descrizione. Questa procedura dovrebbe richiedere alcuni secondi, ma potrebbe essere relativamente più lenta a seconda della capacità.

Genera testo e immagini interleaving

Gemini 2.0 Flash può generare immagini intercalate con le sue risposte di testo. Ad esempio, puoi generare immagini di come potrebbe apparire ogni passaggio di una ricetta generata per accompagnare il testo del passaggio, senza dover fare richieste separate al modello.

Console

Per generare immagini interleaving con risposte di testo:

  1. Apri Vertex AI Studio > Crea prompt.
  2. Fai clic su Cambia modello e seleziona gemini-2.0-flash-preview-image-generation dal menu.
  3. Nel riquadro Output, seleziona Immagine e testo dal menu a discesa.
  4. Scrivi una descrizione dell'immagine che vuoi generare nell'area di testo dell'area di testo Scrivi un prompt. Ad esempio, "Crea un tutorial che spieghi come preparare un panino con burro di arachidi e marmellata in tre semplici passaggi. Per ogni passaggio, fornisci un titolo con il numero del passaggio, una spiegazione e genera anche un'immagine, genera ogni immagine con un formato 1:1".
  5. Fai clic sul pulsante Prompt ().

Gemini genererà una risposta in base alla tua descrizione. Questa procedura dovrebbe richiedere alcuni secondi, ma potrebbe essere relativamente più lenta a seconda della capacità.

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

from google import genai
from google.genai.types import GenerateContentConfig, Modality
from PIL import Image
from io import BytesIO

client = genai.Client()

response = client.models.generate_content(
    model="gemini-2.0-flash-exp",
    contents=(
        "Generate an illustrated recipe for a paella."
        "Create images to go alongside the text as you generate the recipe"
    ),
    config=GenerateContentConfig(response_modalities=[Modality.TEXT, Modality.IMAGE]),
)
with open("paella-recipe.md", "w") as fp:
    for i, part in enumerate(response.candidates[0].content.parts):
        if part.text is not None:
            fp.write(part.text)
        elif part.inline_data is not None:
            image = Image.open(BytesIO((part.inline_data.data)))
            image.save(f"example-image-{i+1}.png")
            fp.write(f"![image](./example-image-{i+1}.png)")
# Example response:
#  A markdown page for a Paella recipe(`paella-recipe.md`) has been generated.
#   It includes detailed steps and several images illustrating the cooking process.

REST

Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${API_ENDPOINT}:generateContent \
  -d '{
    "contents": {
      "role": "USER",
      "parts": { "text": "Create a tutorial explaining how to make a peanut butter and jelly sandwich in three easy steps. For each step, provide a title with the number of the step, an explanation, and also generate an image, generate each image in a 1:1 aspect ratio."},
    },
    "generation_config": {
      "response_modalities": ["TEXT", "IMAGE"],
     },
     "safetySettings": {
      "method": "PROBABILITY",
      "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
      "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    },
  }' 2>/dev/null >response.json

Gemini genererà un'immagine in base alla tua descrizione. Questa procedura dovrebbe richiedere alcuni secondi, ma potrebbe essere relativamente più lenta a seconda della capacità.