Genera imágenes con Gemini

Gemini 2.0 Flash admite la generación de respuestas en múltiples modalidades, incluidas imágenes y texto.

Generación de imágenes

La versión preliminar pública de Gemini 2.0 Flash para la generación de imágenes (gemini-2.0-flash-preview-image-generation) admite la capacidad de generar imágenes además de texto. Esto amplía las capacidades de Gemini para incluir lo siguiente:

  • Genera imágenes de forma iterativa a través de conversaciones en 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 intercalada de texto e imagen. Por ejemplo, una entrada de blog con texto e imágenes en un solo turno. Anteriormente, esto requería encadenar varios modelos.
  • Generar imágenes con el conocimiento del mundo y las capacidades de razonamiento de Gemini

Con este lanzamiento experimental público, Gemini 2.0 Flash puede generar imágenes de 1,024 px, admite la generación y edición de imágenes de personas, y contiene filtros de seguridad actualizados que brindan una experiencia del usuario más flexible y menos restrictiva.

Admite las siguientes modalidades y capacidades:

  • Texto a imagen

    • Ejemplo de instrucción: "Genera una imagen de la Torre Eiffel con fuegos artificiales en el fondo".
  • Texto a imagen (renderización de texto)

    • Ejemplo de instrucción: "Genera una foto cinematográfica de un edificio grande con esta proyección de texto gigante asignada en el frente del edificio: "Gemini 2.0 ahora puede generar texto de formato largo"".
  • Texto a imagen(es) y texto (intercalado)

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

    • Ejemplo de instrucción: (Con una imagen de una habitación amueblada) "¿Qué otros colores de sofás combinarían con mi espacio? ¿Puedes actualizar la imagen?"
  • Edición de imágenes (texto a imagen y de imagen a imagen)

    • Ejemplo de instrucción: “Edita esta imagen para que parezca una caricatura”.
    • Ejemplo de instrucción: [Imagen de un gato] + [Imagen de una almohada] + "Crea un punto de cruz de mi gato en esta almohada".
  • Edición de imágenes de varios turnos (chat)

    • Ejemplos de instrucciones: [Sube una imagen de un auto azul]. "Convierte este auto en un convertible". "Ahora cambia el color a amarillo".

Limitaciones:

  • Para obtener el mejor rendimiento, usa los siguientes idiomas: EN, es-MX, ja-JP, zh-CN y hi-IN.
  • La generación de imágenes no admite entradas de audio o video.
  • Es posible que la generación de imágenes no siempre se active:
    • El modelo solo puede generar texto. Intenta pedir resultados de imágenes de forma explícita. Por ejemplo, "proporciona imágenes a medida que avanzas".
    • El modelo puede generar texto como una imagen. Intenta pedir resultados de texto de forma explícita. Por ejemplo, "genera texto narrativo junto con ilustraciones".
    • Es posible que el modelo deje de generar contenido a mitad de la respuesta. Vuelve a intentarlo o usa otra instrucción.

Generar imágenes

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

Para obtener orientación y conocer las prácticas recomendadas para crear instrucciones, consulta Diseña instrucciones multimodales.

Console

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

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

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

Python

Instalar

pip install --upgrade google-genai

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

Establece 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.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

Ejecuta el siguiente comando en la terminal para crear o reemplazar 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 comparativamente más lento según la capacidad.

Cómo editar una imagen

Console

Para editar imágenes, haz lo siguiente:

  1. Abre Vertex AI Studio > Crear instrucción.
  2. Haz clic en Cambiar modelo y selecciona gemini-2.0-flash-preview-image-generation en el menú.
  3. En el panel Salidas, selecciona Imagen y texto en el menú desplegable.
  4. Haz clic en Insertar medios () y selecciona una fuente en el menú. Luego, sigue las instrucciones del diálogo.
  5. Escribe qué ediciones quieres hacerle a la imagen en el área de texto Escribe una instrucción.
  6. Haz clic en el botón Instrucción ().

Gemini generará una versión editada de la imagen proporcionada según tu descripción. Este proceso debería tardar unos segundos, pero puede ser comparativamente más lento según la capacidad.

Python

Instalar

pip install --upgrade google-genai

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

Establece 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()

# 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

Ejecuta el siguiente comando en la terminal para crear o reemplazar 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": [
        {"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 generará una imagen basada en tu descripción. Este proceso debería tardar unos segundos, pero puede ser comparativamente más lento según la capacidad.

Genera imágenes y texto intercalado

Gemini 2.0 Flash puede generar imágenes intercaladas con sus respuestas de texto. Por ejemplo, puedes generar imágenes de cómo se vería cada paso de una receta generada para acompañar el texto de ese paso, sin tener que hacer solicitudes separadas al modelo para hacerlo.

Console

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

  1. Abre Vertex AI Studio > Crear instrucción.
  2. Haz clic en Cambiar modelo y selecciona gemini-2.0-flash-preview-image-generation en el menú.
  3. En el panel Salidas, selecciona Imagen y texto en el menú desplegable.
  4. Escribe una descripción de la imagen que deseas generar en el área de texto de Escribe una instrucción. Por ejemplo, "Crea un instructivo en el que se explique cómo preparar un sándwich de mantequilla de maní y mermelada en tres sencillos pasos. Para cada paso, proporciona un título con el número del paso, una explicación y también genera una imagen en una relación de aspecto de 1:1".
  5. Haz clic en el botón Instrucción ().

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

Python

Instalar

pip install --upgrade google-genai

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

Establece 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.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

Ejecuta el siguiente comando en la terminal para crear o reemplazar 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 comparativamente más lento según la capacidad.