Generazione di immagini con Gemini (alias Nano Banana)

Gemini può generare ed elaborare immagini in modo conversazionale. Puoi usare prompt con Gemini con testo, immagini o una combinazione di entrambi, per creare, modificare e iterare le immagini con un controllo senza precedenti:

  • Text-to-Image::genera immagini di alta qualità da descrizioni di testo semplici o complesse.
  • Immagine + Text-to-Image (modifica): fornisci un'immagine e utilizza prompt di testo per aggiungere, rimuovere o modificare elementi, cambiare lo stile o regolare la classificazione del colore.
  • Da più immagini a un'immagine (composizione e trasferimento dello stile): utilizza più immagini di input per comporre una nuova scena o trasferire lo stile da un'immagine all'altra.
  • Raffinamento iterativo:partecipa a una conversazione per perfezionare progressivamente l'immagine in più turni, apportando piccoli aggiustamenti finché non è perfetta.
  • Rendering del testo ad alta fedeltà: genera con precisione immagini che contengono testo leggibile e ben posizionato, ideale per loghi, diagrammi e poster.

Tutte le immagini generate includono una filigrana SynthID.

Generazione di immagini (da testo a immagine)

Il seguente codice mostra come generare un'immagine in base a un prompt descrittivo.

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

prompt = (
    "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"
)

response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents=[prompt],
)

for part in response.candidates[0].content.parts:
    if part.text is not None:
        print(part.text)
    elif part.inline_data is not None:
        image = Image.open(BytesIO(part.inline_data.data))
        image.save("generated_image.png")

JavaScript

import { GoogleGenAI, Modality } from "@google/genai";
import * as fs from "node:fs";

async function main() {

  const ai = new GoogleGenAI({});

  const prompt =
    "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme";

  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash-image-preview",
    contents: prompt,
  });
  for (const part of response.candidates[0].content.parts) {
    if (part.text) {
      console.log(part.text);
    } else if (part.inlineData) {
      const imageData = part.inlineData.data;
      const buffer = Buffer.from(imageData, "base64");
      fs.writeFileSync("gemini-native-image.png", buffer);
      console.log("Image saved as gemini-native-image.png");
    }
  }
}

main();

Go

package main

import (
  "context"
  "fmt"
  "os"
  "google.golang.org/genai"
)

func main() {

  ctx := context.Background()
  client, err := genai.NewClient(ctx, nil)
  if err != nil {
      log.Fatal(err)
  }

  result, _ := client.Models.GenerateContent(
      ctx,
      "gemini-2.5-flash-image-preview",
      genai.Text("Create a picture of a nano banana dish in a " +
                 " fancy restaurant with a Gemini theme"),
  )

  for _, part := range result.Candidates[0].Content.Parts {
      if part.Text != "" {
          fmt.Println(part.Text)
      } else if part.InlineData != nil {
          imageBytes := part.InlineData.Data
          outputFilename := "gemini_generated_image.png"
          _ = os.WriteFile(outputFilename, imageBytes, 0644)
      }
  }
}

REST

curl -s -X POST
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"}
      ]
    }]
  }' \
  | grep -o '"data": "[^"]*"' \
  | cut -d'"' -f4 \
  | base64 --decode > gemini-native-image.png
Immagine di un piatto di nano banane creata con l'AI
Immagine creata con l'AI di un piatto di nano banane in un ristorante a tema Gemini

Modifica delle immagini (da testo e immagine a immagine)

Promemoria: assicurati di disporre dei diritti necessari per le immagini che carichi. Non generare contenuti che violano i diritti di altri, inclusi video o immagini che ingannano, molestano o danneggiano. L'utilizzo di questo servizio di AI generativa è soggetto alle nostre Norme relative all'uso vietato.

L'esempio seguente mostra il caricamento di immagini codificate in base64. Per più immagini, payload più grandi e tipi MIME supportati, consulta la pagina Comprensione delle immagini.

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

prompt = (
    "Create a picture of my cat eating a nano-banana in a "
    "fancy restaurant under the Gemini constellation",
)

image = Image.open("/path/to/cat_image.png")

response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents=[prompt, image],
)

for part in response.candidates[0].content.parts:
    if part.text is not None:
        print(part.text)
    elif part.inline_data is not None:
        image = Image.open(BytesIO(part.inline_data.data))
        image.save("generated_image.png")

JavaScript

import { GoogleGenAI, Modality } from "@google/genai";
import * as fs from "node:fs";

async function main() {

  const ai = new GoogleGenAI({});

  const imagePath = "path/to/cat_image.png";
  const imageData = fs.readFileSync(imagePath);
  const base64Image = imageData.toString("base64");

  const prompt = [
    { text: "Create a picture of my cat eating a nano-banana in a" +
            "fancy restaurant under the Gemini constellation" },
    {
      inlineData: {
        mimeType: "image/png",
        data: base64Image,
      },
    },
  ];

  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash-image-preview",
    contents: prompt,
  });
  for (const part of response.candidates[0].content.parts) {
    if (part.text) {
      console.log(part.text);
    } else if (part.inlineData) {
      const imageData = part.inlineData.data;
      const buffer = Buffer.from(imageData, "base64");
      fs.writeFileSync("gemini-native-image.png", buffer);
      console.log("Image saved as gemini-native-image.png");
    }
  }
}

main();

Go

package main

import (
 "context"
 "fmt"
 "os"
 "google.golang.org/genai"
)

func main() {

 ctx := context.Background()
 client, err := genai.NewClient(ctx, nil)
 if err != nil {
     log.Fatal(err)
 }

 imagePath := "/path/to/cat_image.png"
 imgData, _ := os.ReadFile(imagePath)

 parts := []*genai.Part{
   genai.NewPartFromText("Create a picture of my cat eating a nano-banana in a fancy restaurant under the Gemini constellation"),
   &genai.Part{
     InlineData: &genai.Blob{
       MIMEType: "image/png",
       Data:     imgData,
     },
   },
 }

 contents := []*genai.Content{
   genai.NewContentFromParts(parts, genai.RoleUser),
 }

 result, _ := client.Models.GenerateContent(
     ctx,
     "gemini-2.5-flash-image-preview",
     contents,
 )

 for _, part := range result.Candidates[0].Content.Parts {
     if part.Text != "" {
         fmt.Println(part.Text)
     } else if part.InlineData != nil {
         imageBytes := part.InlineData.Data
         outputFilename := "gemini_generated_image.png"
         _ = os.WriteFile(outputFilename, imageBytes, 0644)
     }
 }
}

REST

IMG_PATH=/path/to/cat_image.jpeg

if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
  B64FLAGS="--input"
else
  B64FLAGS="-w0"
fi

IMG_BASE64=$(base64 "$B64FLAGS" "$IMG_PATH" 2>&1)

curl -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent" \
    -H "x-goog-api-key: $GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -d "{
      \"contents\": [{
        \"parts\":[
            {\"text\": \"'Create a picture of my cat eating a nano-banana in a fancy restaurant under the Gemini constellation\"},
            {
              \"inline_data\": {
                \"mime_type\":\"image/jpeg\",
                \"data\": \"$IMG_BASE64\"
              }
            }
        ]
      }]
    }"  \
  | grep -o '"data": "[^"]*"' \
  | cut -d'"' -f4 \
  | base64 --decode > gemini-edited-image.png
Immagine creata con l'AI di un gatto che mangia una banana
Immagine creata con l'AI di un gatto che mangia una nano banana

Altre modalità di generazione di immagini

Gemini supporta altre modalità di interazione con le immagini in base alla struttura del prompt e al contesto, tra cui:

  • Testo in immagini e testo (interleaved): restituisce immagini con testo correlato.
    • Prompt di esempio: "Genera una ricetta illustrata per una paella".
  • Immagini e testo in immagini e testo (interleaved): utilizza immagini e testo di input per creare nuovi contenuti correlati.
    • Prompt di esempio: (con un'immagine di una stanza arredata) "Quali altri divani colorati si abbinerebbero al mio spazio? Puoi aggiornare l'immagine?"
  • Modifica di immagini in più passaggi (chat): continua a generare e modificare immagini in modo conversazionale.
    • Prompt di esempio: [carica un'immagine di un'auto blu]. , "Trasforma questa auto in una cabriolet", "Ora cambia il colore in giallo."

Guida e strategie per i prompt

Per padroneggiare la generazione di immagini con Gemini 2.5 Flash, devi partire da un principio fondamentale:

Descrivi la scena, non elencare solo le parole chiave. Il punto di forza principale del modello è la sua profonda comprensione del linguaggio. Un paragrafo narrativo e descrittivo produrrà quasi sempre un'immagine migliore e più coerente rispetto a un elenco di parole scollegate.

Prompt per la generazione di immagini

Le seguenti strategie ti aiuteranno a creare prompt efficaci per generare esattamente le immagini che stai cercando.

1. Scene fotorealistiche

Per immagini realistiche, utilizza termini fotografici. Menziona angolazioni della videocamera, tipi di obiettivo, illuminazione e dettagli precisi per guidare il modello verso un risultato fotorealistico.

Modello

A photorealistic [shot type] of [subject], [action or expression], set in
[environment]. The scene is illuminated by [lighting description], creating
a [mood] atmosphere. Captured with a [camera/lens details], emphasizing
[key textures and details]. The image should be in a [aspect ratio] format.

Prompt

A photorealistic close-up portrait of an elderly Japanese ceramicist with
deep, sun-etched wrinkles and a warm, knowing smile. He is carefully
inspecting a freshly glazed tea bowl. The setting is his rustic,
sun-drenched workshop. The scene is illuminated by soft, golden hour light
streaming through a window, highlighting the fine texture of the clay.
Captured with an 85mm portrait lens, resulting in a soft, blurred background
(bokeh). The overall mood is serene and masterful. Vertical portrait
orientation.

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents="A photorealistic close-up portrait of an elderly Japanese ceramicist with deep, sun-etched wrinkles and a warm, knowing smile. He is carefully inspecting a freshly glazed tea bowl. The setting is his rustic, sun-drenched workshop with pottery wheels and shelves of clay pots in the background. The scene is illuminated by soft, golden hour light streaming through a window, highlighting the fine texture of the clay and the fabric of his apron. Captured with an 85mm portrait lens, resulting in a soft, blurred background (bokeh). The overall mood is serene and masterful.",
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('photorealistic_example.png')
    image.show()
Un ritratto fotorealistico in primo piano di un anziano ceramista giapponese…
Un ritratto ravvicinato fotorealistico di un ceramista giapponese anziano…

2. Illustrazioni e adesivi stilizzati

Per creare adesivi, icone o asset, specifica lo stile e richiedi uno sfondo trasparente.

Modello

A [style] sticker of a [subject], featuring [key characteristics] and a
[color palette]. The design should have [line style] and [shading style].
The background must be transparent.

Prompt

A kawaii-style sticker of a happy red panda wearing a tiny bamboo hat. It's
munching on a green bamboo leaf. The design features bold, clean outlines,
simple cel-shading, and a vibrant color palette. The background must be white.

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents="A kawaii-style sticker of a happy red panda wearing a tiny bamboo hat. It's munching on a green bamboo leaf. The design features bold, clean outlines, simple cel-shading, and a vibrant color palette. The background must be white.",
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('red_panda_sticker.png')
    image.show()
Un adesivo in stile kawaii di un pomodoro rosso felice…
Un adesivo in stile kawaii di un panda rosso felice…

3. Testo accurato nelle immagini

Gemini eccelle nel rendering del testo. Descrivi in modo chiaro il testo, lo stile del carattere (in modo descrittivo) e il design complessivo.

Modello

Create a [image type] for [brand/concept] with the text "[text to render]"
in a [font style]. The design should be [style description], with a
[color scheme].

Prompt

Create a modern, minimalist logo for a coffee shop called 'The Daily Grind'.
The text should be in a clean, bold, sans-serif font. The design should
feature a simple, stylized icon of a a coffee bean seamlessly integrated
with the text. The color scheme is black and white.

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents="Create a modern, minimalist logo for a coffee shop called 'The Daily Grind'. The text should be in a clean, bold, sans-serif font. The design should feature a simple, stylized icon of a a coffee bean seamlessly integrated with the text. The color scheme is black and white.",
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('logo_example.png')
    image.show()
Crea un logo moderno e minimalista per una caffetteria chiamata "The Daily Grind"…
Crea un logo moderno e minimalista per una caffetteria chiamata "The Daily Grind"…

4. Mockup di prodotti e fotografia commerciale

Ideale per creare scatti di prodotti puliti e professionali per l'e-commerce, la pubblicità o il branding.

Modello

A high-resolution, studio-lit product photograph of a [product description]
on a [background surface/description]. The lighting is a [lighting setup,
e.g., three-point softbox setup] to [lighting purpose]. The camera angle is
a [angle type] to showcase [specific feature]. Ultra-realistic, with sharp
focus on [key detail]. [Aspect ratio].

Prompt

A high-resolution, studio-lit product photograph of a minimalist ceramic
coffee mug in matte black, presented on a polished concrete surface. The
lighting is a three-point softbox setup designed to create soft, diffused
highlights and eliminate harsh shadows. The camera angle is a slightly
elevated 45-degree shot to showcase its clean lines. Ultra-realistic, with
sharp focus on the steam rising from the coffee. Square image.

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents="A high-resolution, studio-lit product photograph of a minimalist ceramic coffee mug in matte black, presented on a polished concrete surface. The lighting is a three-point softbox setup designed to create soft, diffused highlights and eliminate harsh shadows. The camera angle is a slightly elevated 45-degree shot to showcase its clean lines. Ultra-realistic, with sharp focus on the steam rising from the coffee. Square image.",
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('product_mockup.png')
    image.show()
Fotografia di un prodotto ad alta risoluzione e illuminato in studio di una tazza da caffè in ceramica minimalista…
Una fotografia di un prodotto ad alta risoluzione e con illuminazione da studio di una tazza da caffè in ceramica minimalista…

5. Design minimalista e con spazio negativo

Ideale per creare sfondi per siti web, presentazioni o materiali di marketing in cui verrà sovrapposto il testo.

Modello

A minimalist composition featuring a single [subject] positioned in the
[bottom-right/top-left/etc.] of the frame. The background is a vast, empty
[color] canvas, creating significant negative space. Soft, subtle lighting.
[Aspect ratio].

Prompt

A minimalist composition featuring a single, delicate red maple leaf
positioned in the bottom-right of the frame. The background is a vast, empty
off-white canvas, creating significant negative space for text. Soft,
diffused lighting from the top left. Square image.

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents="A minimalist composition featuring a single, delicate red maple leaf positioned in the bottom-right of the frame. The background is a vast, empty off-white canvas, creating significant negative space for text. Soft, diffused lighting from the top left. Square image.",
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('minimalist_design.png')
    image.show()
Una composizione minimalista con una singola e delicata foglia di acero rosso…
Una composizione minimalista con una singola e delicata foglia di acero rosso…

6. Arte sequenziale (riquadro di fumetto / storyboard)

Si basa sulla coerenza dei personaggi e sulla descrizione della scena per creare riquadri per la narrazione visiva.

Modello

A single comic book panel in a [art style] style. In the foreground,
[character description and action]. In the background, [setting details].
The panel has a [dialogue/caption box] with the text "[Text]". The lighting
creates a [mood] mood. [Aspect ratio].

Prompt

A single comic book panel in a gritty, noir art style with high-contrast
black and white inks. In the foreground, a detective in a trench coat stands
under a flickering streetlamp, rain soaking his shoulders. In the
background, the neon sign of a desolate bar reflects in a puddle. A caption
box at the top reads "The city was a tough place to keep secrets." The
lighting is harsh, creating a dramatic, somber mood. Landscape.

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents="A single comic book panel in a gritty, noir art style with high-contrast black and white inks. In the foreground, a detective in a trench coat stands under a flickering streetlamp, rain soaking his shoulders. In the background, the neon sign of a desolate bar reflects in a puddle. A caption box at the top reads \"The city was a tough place to keep secrets.\" The lighting is harsh, creating a dramatic, somber mood. Landscape.",
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('comic_panel.png')
    image.show()
Una singola vignetta di un fumetto in uno stile artistico noir e crudo…
Una singola vignetta di un fumetto in uno stile artistico noir e crudo...

Prompt per la modifica delle immagini

Questi esempi mostrano come fornire immagini insieme ai prompt di testo per modifica, composizione e trasferimento dello stile.

1. Aggiunta e rimozione di elementi

Fornisci un'immagine e descrivi la modifica. Il modello corrisponderà allo stile, all'illuminazione e alla prospettiva dell'immagine originale.

Modello

Using the provided image of [subject], please [add/remove/modify] [element]
to/from the scene. Ensure the change is [description of how the change should
integrate].

Prompt

"Using the provided image of my cat, please add a small, knitted wizard hat
on its head. Make it look like it's sitting comfortably and matches the soft
lighting of the photo."

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Base image prompt: "A photorealistic picture of a fluffy ginger cat sitting on a wooden floor, looking directly at the camera. Soft, natural light from a window."
image_input = Image.open('/path/to/your/cat_photo.png')
text_input = """Using the provided image of my cat, please add a small, knitted wizard hat on its head. Make it look like it's sitting comfortably and not falling off."""

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents=[text_input, image_input],
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('cat_with_hat.png')
    image.show()

Input

Output

Un'immagine fotorealistica di un gatto rosso e soffice.
Una foto realistica di un gatto rosso e soffice...
Utilizzando l'immagine fornita del mio gatto, aggiungi un piccolo cappello da mago lavorato a maglia…
Utilizzando l'immagine fornita del mio gatto, aggiungi un piccolo cappello da mago lavorato a maglia...

2. Inpainting (mascheratura semantica)

Definisci in modo conversazionale una "maschera" per modificare una parte specifica di un'immagine lasciando invariato il resto.

Modello

Using the provided image, change only the [specific element] to [new
element/description]. Keep everything else in the image exactly the same,
preserving the original style, lighting, and composition.

Prompt

"Using the provided image of a living room, change only the blue sofa to be
a vintage, brown leather chesterfield sofa. Keep the rest of the room,
including the pillows on the sofa and the lighting, unchanged."

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Base image prompt: "A wide shot of a modern, well-lit living room with a prominent blue sofa in the center. A coffee table is in front of it and a large window is in the background."
living_room_image = Image.open('/path/to/your/living_room.png')
text_input = """Using the provided image of a living room, change only the blue sofa to be a vintage, brown leather chesterfield sofa. Keep the rest of the room, including the pillows on the sofa and the lighting, unchanged."""

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents=[living_room_image, text_input],
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('living_room_edited.png')
    image.show()

Input

Output

Una ripresa ampia di un soggiorno moderno e ben illuminato…
Un'inquadratura ampia di un soggiorno moderno e ben illuminato…
Utilizzando l'immagine fornita di un soggiorno, cambia solo il divano blu in un divano Chesterfield vintage in pelle marrone…
Utilizzando l'immagine fornita di un soggiorno, cambia solo il divano blu in un divano Chesterfield vintage in pelle marrone...

3. Trasferimento stile

Fornisci un'immagine e chiedi al modello di ricreare i suoi contenuti in uno stile artistico diverso.

Modello

Transform the provided photograph of [subject] into the artistic style of [artist/art style]. Preserve the original composition but render it with [description of stylistic elements].

Prompt

"Transform the provided photograph of a modern city street at night into the artistic style of Vincent van Gogh's 'Starry Night'. Preserve the original composition of buildings and cars, but render all elements with swirling, impasto brushstrokes and a dramatic palette of deep blues and bright yellows."

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Base image prompt: "A photorealistic, high-resolution photograph of a busy city street in New York at night, with bright neon signs, yellow taxis, and tall skyscrapers."
city_image = Image.open('/path/to/your/city.png')
text_input = """Transform the provided photograph of a modern city street at night into the artistic style of Vincent van Gogh's 'Starry Night'. Preserve the original composition of buildings and cars, but render all elements with swirling, impasto brushstrokes and a dramatic palette of deep blues and bright yellows."""

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents=[city_image, text_input],
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('city_style_transfer.png')
    image.show()

Input

Output

Una fotografia fotorealistica ad alta risoluzione di una strada trafficata della città…
Una fotografia fotorealistica ad alta risoluzione di una strada trafficata della città…
Trasforma la fotografia fornita di una strada moderna di una città di notte…
Trasforma la fotografia fornita di una strada moderna di una città di notte...

4. Composizione avanzata: combinare più immagini

Fornisci più immagini come contesto per creare una nuova scena composita. È perfetto per i mockup di prodotti o i collage creativi.

Modello

Create a new image by combining the elements from the provided images. Take
the [element from image 1] and place it with/on the [element from image 2].
The final image should be a [description of the final scene].

Prompt

"Create a professional e-commerce fashion photo. Take the blue floral dress
from the first image and let the woman from the second image wear it.
Generate a realistic, full-body shot of the woman wearing the dress, with
the lighting and shadows adjusted to match the outdoor environment."

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Base image prompts:
# 1. Dress: "A professionally shot photo of a blue floral summer dress on a plain white background, ghost mannequin style."
# 2. Model: "Full-body shot of a woman with her hair in a bun, smiling, standing against a neutral grey studio background."
dress_image = Image.open('/path/to/your/dress.png')
model_image = Image.open('/path/to/your/model.png')

text_input = """Create a professional e-commerce fashion photo. Take the blue floral dress from the first image and let the woman from the second image wear it. Generate a realistic, full-body shot of the woman wearing the dress, with the lighting and shadows adjusted to match the outdoor environment."""

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents=[dress_image, model_image, text_input],
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('fashion_ecommerce_shot.png')
    image.show()

Input 1

Input 2

Output

Una foto scattata da un professionista di un abito estivo blu a fiori…
Una foto scattata da un professionista di un abito estivo blu con stampa floreale…
Inquadratura a figura intera di una donna con i capelli raccolti in uno chignon…
Inquadratura a figura intera di una donna con i capelli raccolti in uno chignon…
Crea una foto professionale di moda per l'e-commerce…
Crea una foto di moda professionale per l'e-commerce…

5. Conservazione dei dettagli ad alta fedeltà

Per assicurarti che i dettagli importanti (come un volto o un logo) vengano conservati durante una modifica, descrivili in dettaglio insieme alla richiesta di modifica.

Modello

Using the provided images, place [element from image 2] onto [element from
image 1]. Ensure that the features of [element from image 1] remain
completely unchanged. The added element should [description of how the
element should integrate].

Prompt

"Take the first image of the woman with brown hair, blue eyes, and a neutral
expression. Add the logo from the second image onto her black t-shirt.
Ensure the woman's face and features remain completely unchanged. The logo
should look like it's naturally printed on the fabric, following the folds
of the shirt."

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

# Base image prompts:
# 1. Woman: "A professional headshot of a woman with brown hair and blue eyes, wearing a plain black t-shirt, against a neutral studio background."
# 2. Logo: "A simple, modern logo with the letters 'G' and 'A' in a white circle."
woman_image = Image.open('/path/to/your/woman.png')
logo_image = Image.open('/path/to/your/logo.png')
text_input = """Take the first image of the woman with brown hair, blue eyes, and a neutral expression. Add the logo from the second image onto her black t-shirt. Ensure the woman's face and features remain completely unchanged. The logo should look like it's naturally printed on the fabric, following the folds of the shirt."""

# Generate an image from a text prompt
response = client.models.generate_content(
    model="gemini-2.5-flash-image-preview",
    contents=[woman_image, logo_image, text_input],
)

image_parts = [
    part.inline_data.data
    for part in response.candidates[0].content.parts
    if part.inline_data
]

if image_parts:
    image = Image.open(BytesIO(image_parts[0]))
    image.save('woman_with_logo.png')
    image.show()

Input 1

Input 2

Output

Un ritratto professionale di una donna con capelli castani e occhi azzurri…
Un primo piano professionale di una donna con capelli castani e occhi azzurri…
Un logo semplice e moderno con le lettere "G" e "A"…
Un logo semplice e moderno con le lettere "G" e "A"...
Prendi la prima immagine della donna con capelli castani, occhi azzurri e un'espressione neutra…
Prendi la prima immagine della donna con capelli castani, occhi azzurri e un'espressione neutra…

Best practice

Per migliorare i tuoi risultati, incorpora queste strategie professionali nel tuo flusso di lavoro.

  • Fornisci dettagli specifici:più dettagli fornisci, maggiore sarà il controllo. Invece di "armatura fantasy", descrivila: "armatura a piastre elfica riccamente decorata, incisa con motivi a foglie d'argento, con un colletto alto e spallacci a forma di ali di falco".
  • Fornisci contesto e intenzione:spiega lo scopo dell'immagine. La comprensione del contesto da parte del modello influenzerà l'output finale. Ad esempio, "Crea un logo per un brand di prodotti per la cura della pelle minimalisti di fascia alta" produrrà risultati migliori rispetto a "Crea un logo".
  • Esegui l'iterazione e perfeziona:non aspettarti un'immagine perfetta al primo tentativo. Sfrutta la natura conversazionale del modello per apportare piccole modifiche. Segui con prompt come "Ottimo, ma puoi rendere l'illuminazione un po' più calda?" o "Lascia tutto invariato, ma cambia l'espressione del personaggio in modo che sia più serio".
  • Utilizza istruzioni passo passo:per scene complesse con molti elementi, suddividi il prompt in passaggi. "Per prima cosa, crea uno sfondo di una serena foresta nebbiosa all'alba. Poi, in primo piano, aggiungi un antico altare in pietra ricoperto di muschio. Infine, posiziona una spada singola e luminosa sopra l'altare".
  • Utilizza "Prompt negativi semantici": invece di dire "no auto", descrivi la scena desiderata in modo positivo: "una strada vuota e deserta senza segni di traffico".
  • Controlla la videocamera:utilizza un linguaggio fotografico e cinematografico per controllare la composizione. Termini come wide-angle shot, macro shot, low-angle perspective.

Limitazioni

  • Per ottenere prestazioni ottimali, utilizza le seguenti lingue: EN, es-MX, ja-JP, zh-CN, hi-IN.
  • La generazione di immagini non supporta input audio o video.
  • Il modello non sempre segue il numero esatto di output di immagini richiesto esplicitamente dall'utente.
  • Il modello funziona meglio con un massimo di tre immagini come input.
  • Quando genera testo per un'immagine, Gemini funziona meglio se prima genera il testo e poi chiede un'immagine con il testo.
  • Il caricamento di immagini di bambini non è attualmente supportato nel SEE, in Svizzera e nel Regno Unito.
  • Tutte le immagini generate includono una filigrana SynthID.

Quando utilizzare Imagen

Oltre a utilizzare le funzionalità di generazione di immagini integrate di Gemini, puoi accedere anche a Imagen, il nostro modello di generazione di immagini specializzato, tramite l'API Gemini.

Attributo Imagen Immagine nativa di Gemini
Punti di forza Il modello di generazione di immagini più avanzato finora. Consigliato per immagini fotorealistiche, maggiore nitidezza, ortografia e tipografia migliorate. Suggerimento predefinito.
Flessibilità senza pari, comprensione contestuale e modifica semplice e senza maschere. Capacità unica di editing conversazionale a più turni.
Disponibilità Disponibilità generale Anteprima (utilizzo in produzione consentito)
Latenza Basso. Ottimizzazione per prestazioni quasi in tempo reale. Maggiore. Per le sue funzionalità avanzate è necessario un maggiore calcolo.
Costo Conveniente per attività specializzate. Da $ 0,02/immagine a $0,12/immagine Prezzi basati su token. 30 $ per 1 milione di token per l'output di immagini (tokenizzazione dell'output di immagini a 1290 token per immagine, fino a 1024 x 1024 px)
Attività consigliate
  • Qualità dell'immagine, fotorealismo, dettagli artistici o stili specifici (ad es. impressionismo, anime) sono le priorità principali.
  • Incorporare il branding, lo stile o generare loghi e design di prodotti.
  • Generazione di ortografia o tipografia avanzata.
  • Generazione di testo e immagini con interleaving per combinare perfettamente testo e immagini.
  • Combina elementi creativi di più immagini con un unico prompt.
  • Apporta modifiche molto specifiche alle immagini, modifica singoli elementi con semplici comandi vocali e lavora in modo iterativo su un'immagine.
  • Applica un design o una texture specifici da un'immagine a un'altra preservando la forma e i dettagli del soggetto originale.

Imagen 4 dovrebbe essere il modello di riferimento per iniziare a generare immagini con Imagen. Scegli Imagen 4 Ultra per casi d'uso avanzati o quando hai bisogno della migliore qualità dell'immagine (tieni presente che può generare solo un'immagine alla volta).

Passaggi successivi

  • Trova altri esempi ed esempi di codice nella guida Cookbook.
  • Consulta la guida di Veo per scoprire come generare video con l'API Gemini.
  • Per scoprire di più sui modelli Gemini, consulta Modelli Gemini.