Generar imágenes con Gemini

La vista previa de Gemini 2.5 Flash Image admite la generación de respuestas en varias modalidades, como texto e imágenes.

Generación de imágenes

La versión preliminar pública de Gemini Flash Preview Image para la generación de imágenes (gemini-2.5-flash-image-preview) permite generar imágenes, además de texto. De esta forma, Gemini puede hacer lo siguiente:

  • Genera imágenes de forma iterativa mediante conversaciones con lenguaje natural y ajusta las imágenes manteniendo la coherencia y el contexto.
  • Genera imágenes con renderización de texto largo de alta calidad.
  • Genera una salida de texto e imagen intercalada. Por ejemplo, una entrada de blog con texto e imágenes en una sola petición. Antes, esto requería encadenar varios modelos.
  • Genera imágenes usando el conocimiento del mundo y las capacidades de razonamiento de Gemini.

Con esta versión experimental pública, Gemini 2.5 Flash Image Preview puede generar imágenes de 1024 px, admite la generación de imágenes de personas y contiene filtros de seguridad actualizados que proporcionan una experiencia de usuario más flexible y menos restrictiva.

Admite las siguientes modalidades y funciones:

  • Texto a imagen

    • Petición de ejemplo: "Genera una imagen de la Torre Eiffel con fuegos artificiales de fondo".
  • Texto a imagen (renderización de texto)

    • Petición de ejemplo: "genera una foto cinematográfica de un edificio grande con esta proyección de texto gigante en la parte delantera del edificio: "Gemini 2.5 ahora puede generar texto extenso""
  • Texto a imagen(es) y texto (intercalado)

    • Petición de ejemplo: "Genera una receta ilustrada de paella. Crea imágenes junto al texto a medida que generas la receta".
    • Petición de ejemplo: "Genera una historia sobre un perro con un estilo de animación de dibujos animados en 3D. Genera una imagen para cada escena"
  • Imágenes y texto a imágenes y texto (intercalados)

    • Petición de ejemplo: (Con una imagen de una habitación amueblada) "¿Qué otros colores de sofá quedarían bien en mi espacio? ¿Puedes actualizar la imagen?"
  • Generación de imágenes según la configuración regional

    • Petición de ejemplo: "Genera una imagen de un desayuno".

Limitaciones:

  • Para obtener el mejor rendimiento posible, usa los siguientes idiomas: inglés (EN), español de México (es-MX), japonés (ja-JP), chino (zh-CN) e hindi (hi-IN).
  • La generación de imágenes no admite entradas de audio ni de vídeo.
  • Es posible que la generación de imágenes no siempre se active:
    • El modelo solo puede generar texto. Prueba a pedirle que genere imágenes explícitamente. Por ejemplo, "proporciona imágenes a medida que avanzamos".
    • El modelo puede generar texto como una imagen. Prueba a pedir explícitamente que te dé resultados de texto. Por ejemplo, "genera texto narrativo junto con ilustraciones".
    • El modelo puede dejar de generar contenido a mitad de la tarea. Inténtalo de nuevo o prueba con otra petición.

Generar imágenes

En las siguientes secciones se explica cómo generar imágenes con Vertex AI Studio o con la API.

Para obtener directrices y prácticas recomendadas sobre cómo crear peticiones, consulta Diseñar peticiones multimodales.

Consola

Para usar la generación de imágenes, sigue estos pasos:

  1. Abre Vertex AI Studio > Crear petición.
  2. Haz clic en Cambiar modelo y selecciona gemini-2.5-flash-image-preview en el menú.
  3. En el panel Resultados, selecciona Imagen y texto en el menú desplegable.
  4. Escribe una descripción de la imagen que quieras generar en el área de texto Escribe una petición.
  5. Haz clic en el botón Petición ().

Gemini generará una imagen basada en tu descripción. Este proceso debería tardar unos segundos, pero puede ser relativamente más lento en función de la capacidad.

Python

Instalar

pip install --upgrade google-genai

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa 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.5-flash-image-preview",
    contents=("Generate an image of the Eiffel tower with fireworks in the background."),
    config=GenerateContentConfig(
        response_modalities=[Modality.TEXT, Modality.IMAGE],
        candidate_count=1,
        safety_settings=[
            {"method": "PROBABILITY"},
            {"category": "HARM_CATEGORY_DANGEROUS_CONTENT"},
            {"threshold": "BLOCK_MEDIUM_AND_ABOVE"},
        ],
    ),
)
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("output_folder/example-image-eiffel-tower.png")
# Example response:
#   I will generate an image of the Eiffel Tower at night, with a vibrant display of
#   colorful fireworks exploding in the dark sky behind it. The tower will be
#   illuminated, standing tall as the focal point of the scene, with the bursts of
#   light from the fireworks creating a festive atmosphere.

Node.js

Instalar

npm install @google/genai

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa 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

const fs = require('fs');
const {GoogleGenAI, Modality} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION =
  process.env.GOOGLE_CLOUD_LOCATION || 'us-central1';

async function generateContent(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const ai = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const response = await ai.models.generateContentStream({
    model: 'gemini-2.0-flash-exp',
    contents:
      'Generate an image of the Eiffel tower with fireworks in the background.',
    config: {
      responseModalities: [Modality.TEXT, Modality.IMAGE],
    },
  });

  const generatedFileNames = [];
  let imageIndex = 0;
  for await (const chunk of response) {
    const text = chunk.text;
    const data = chunk.data;
    if (text) {
      console.debug(text);
    } else if (data) {
      const fileName = `generate_content_streaming_image_${imageIndex++}.png`;
      console.debug(`Writing response image to file: ${fileName}.`);
      try {
        fs.writeFileSync(fileName, data);
        generatedFileNames.push(fileName);
      } catch (error) {
        console.error(`Failed to write image file ${fileName}:`, error);
      }
    }
  }

  return generatedFileNames;
}

REST

Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

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 generará una imagen basada en tu descripción. Este proceso debería tardar unos segundos, pero puede ser relativamente más lento en función de la capacidad.

Generar imágenes y texto intercalados

La vista previa de Gemini 2.5 Flash Image puede generar imágenes intercaladas con sus respuestas de texto. Por ejemplo, puedes generar imágenes de cada paso de una receta generada para acompañar el texto de ese paso, sin tener que hacer solicitudes independientes al modelo para ello.

Consola

Para generar imágenes intercaladas con respuestas de texto, sigue estos pasos:

  1. Abre Vertex AI Studio > Crear petición.
  2. Haz clic en Cambiar modelo y selecciona gemini-2.5-flash-image-preview en el menú.
  3. En el panel Resultados, selecciona Imagen y texto en el menú desplegable.
  4. Escribe una descripción de la imagen que quieras generar en el área de texto Escribe una petición. Por ejemplo, "Crea un tutorial en el que se explique cómo hacer un sándwich de mantequilla de cacahuete y mermelada en tres sencillos pasos. En cada paso, indica un título con el número del paso y una explicación. Además, genera una imagen con una relación de aspecto de 1:1".
  5. Haz clic en el botón Petición ().

Gemini generará una respuesta basada en tu descripción. Este proceso debería tardar unos segundos, pero puede ser relativamente más lento en función de la capacidad.

Python

Instalar

pip install --upgrade google-genai

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa 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.5-flash-image-preview",
    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("output_folder/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"output_folder/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

Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

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 generará una imagen basada en tu descripción. Este proceso debería tardar unos segundos, pero puede ser relativamente más lento en función de la capacidad.

Generación de imágenes según la configuración regional

Gemini 2.5 Flash Image Preview también puede incluir información sobre tu ubicación al proporcionar respuestas de texto o de imagen. Por ejemplo, puedes generar imágenes de tipos de ubicaciones o experiencias que tengan en cuenta tu ubicación actual sin tener que especificarla en el modelo.

Consola

Para usar la generación de imágenes en función de la configuración regional, sigue estos pasos:

  1. Abre Vertex AI Studio > Crear petición.
  2. Haz clic en Cambiar modelo y selecciona gemini-2.5-flash-image-preview en el menú.
  3. En el panel Resultados, selecciona Imagen y texto en el menú desplegable.
  4. Escribe una descripción de la imagen que quieras generar en el área de texto Escribe una petición. Por ejemplo, "Genera una foto de un desayuno típico".
  5. Haz clic en el botón Petición ().

Gemini generará una respuesta basada en tu descripción. Este proceso debería tardar unos segundos, pero puede ser relativamente más lento en función de la capacidad.

Python

Instalar

pip install --upgrade google-genai

Para obtener más información, consulta la documentación de referencia del SDK.

Define variables de entorno para usar el SDK de IA generativa 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.5-flash-image-preview",
    contents=("Generate a photo of a breakfast meal."),
    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("output_folder/example-breakfast-meal.png")
# Example response:
#   Generates a photo of a vibrant and appetizing breakfast meal.
#   The scene will feature a white plate with golden-brown pancakes
#   stacked neatly, drizzled with rich maple syrup and ...

REST

Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

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": "Generate a photo of a typical breakfast."},
    },
    "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 generará una imagen basada en tu descripción. Este proceso debería tardar unos segundos, pero puede ser relativamente más lento en función de la capacidad.