Novedades de productos

Aumenta la interacción de los usuarios con la generación de imágenes con IA

Lectura de 5 min

Agregar imágenes personalizadas a tu app puede mejorar y personalizar significativamente la experiencia del usuario, además de aumentar la interacción. En esta publicación, se exploran dos nuevas capacidades para la generación de imágenes con Firebase AI Logic: las funciones especializadas de edición de Imagen, que actualmente están en versión preliminar, y la disponibilidad general de Gemini 2.5 Flash Image (también conocido como "Nano Banana"), diseñado para la generación de imágenes contextuales o conversacionales.

Aumenta la interacción de los usuarios con imágenes generadas a través de Firebase AI Logic

Los modelos de generación de imágenes se pueden usar para crear avatares de perfiles de usuario personalizados o para integrar recursos visuales personalizados directamente en los flujos de pantallas clave.  

Por ejemplo, Imagen ofrece nuevas funciones de edición (en versión preliminar para desarrolladores). Ahora puedes dibujar una máscara y usar el relleno para generar píxeles dentro del área enmascarada. Además, la extensión de imagen está disponible para generar píxeles fuera de la máscara.   

Imagen inpainting.png

Imagen admite el relleno, lo que permite generar solo una parte de una imagen. 

Como alternativa, Gemini 2.5 Flash Image (también conocido como Nano Banana) puede usar un conocimiento del mundo ampliado y las capacidades de razonamiento de los modelos de Gemini para generar imágenes contextualmente relevantes, lo que es ideal para crear ilustraciones dinámicas que se alineen con la experiencia actual del usuario en la app.   

 

In-context nano banana illustration.png

Usa Gemini 2.5 Flash Image para crear ilustraciones dinámicas contextualmente relevantes para tu app.

Por último, la capacidad de editar imágenes de forma conversacional e iterativa permite a los usuarios editar una foto con lenguaje natural.

 

photo edit natural language.png

Usa Gemini 2.5 Flash Image para editar una imagen con lenguaje natural.

Cuando comiences a integrar la IA en tu aplicación, es importante que aprendas sobre la seguridad de la IA. En particular, es fundamental evaluar los riesgos de seguridad de tu aplicación, considerar ajustes para mitigar los riesgos de seguridad, realizar pruebas de seguridad adecuadas para tu caso de uso, solicitar comentarios de los usuarios y supervisar el contenido.

Imagen o Gemini: La elección es tuya

La diferencia entre Gemini 2.5 Flash Image ("Nano Banana") e Imagen radica en su enfoque principal y sus capacidades avanzadas. Gemini 2.5 Flash Image, como modelo de imagen dentro de la familia más grande de Gemini, se destaca en la edición de imágenes conversacionales, ya que mantiene la coherencia del contexto y del tema en varias iteraciones, y aprovecha el "conocimiento y el razonamiento del mundo" para crear imágenes contextualmente relevantes o incorporar imágenes precisas en secuencias de texto largas. 

Imagen es el modelo especializado de generación de imágenes de Google, diseñado para un mayor control creativo, que se especializa en resultados altamente fotorrealistas, detalles artísticos, estilos específicos y que proporciona controles explícitos para especificar la relación de aspecto o el formato de la imagen generada.

Imágenes de Gemini 2.5 Flash 
(Nano Banana 🍌)
Imagen

🌎 Conocimiento y razonamiento del mundo para obtener imágenes más contextualmente relevantes

💬 Edita imágenes de forma conversacional y mantén el contexto

📖 Incorpora imágenes precisas en secuencias de texto largas

📐 Especifica la relación de aspecto o el formato de las imágenes generadas

 

🖌️Compatibilidad con la edición basada en máscaras para el relleno y la extensión de imagen. 

 

🎚️ Mayor control sobre los detalles de la imagen generada (calidad, detalles artísticos y estilos específicos)

Veamos cómo usarlos en tu app.

Relleno con Imagen

Hace unos meses, lanzamos nuevas funciones de edición para Imagen. Si bien Imagen ya está listo para la producción de generación de imágenes, las funciones de edición aún están en versión preliminar para desarrolladores.

Las funciones de edición de Imagen incluyen relleno y extensión de imagen, funciones de edición de imágenes basadas en máscaras. Esta nueva capacidad permite a los usuarios modificar áreas específicas de una imagen sin volver a generar la imagen completa. Esto significa que puedes conservar las mejores partes de tu imagen y solo modificar lo que deseas cambiar.

Imagen inpainting dog.png

Usa las funciones de edición de Imagen para realizar cambios precisos y específicos en una imagen y garantizar la integridad del resto de la imagen

Estos cambios se realizan manteniendo los elementos principales y la integridad general de la imagen original, y modificando solo el área de la máscara.

Para implementar el relleno con Imagen, primero inicializa imagen-3.0-capability-001, un modelo de Imagen específico que admite funciones de edición:

// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0
val editingModel =
        Firebase.ai(backend = GenerativeBackend.vertexAI()).imagenModel(
            "imagen-3.0-capability-001",
            generationConfig = ImagenGenerationConfig(
                numberOfImages = 1,
                aspectRatio = ImagenAspectRatio.SQUARE_1x1,
                imageFormat = ImagenImageFormat.jpeg(compressionQuality = 75),
            ),
        )

Luego, define la función de relleno:

// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0

val prompt = "remove the pancakes and make it an omelet instead"

suspend fun inpaintImageWithMask(sourceImage: Bitmap, maskImage: Bitmap, prompt: String, editSteps: Int = 50): Bitmap {
        val imageResponse = editingModel.editImage(
            referenceImages = listOf(
                ImagenRawImage(sourceImage.toImagenInlineImage()),
                ImagenRawMask(maskImage.toImagenInlineImage()),
            ),
            prompt = prompt,
            config = ImagenEditingConfig(
                editMode = ImagenEditMode.INPAINT_INSERTION,
                editSteps = editSteps,
            ),
        )
        return imageResponse.images.first().asBitmap()
    }

Proporcionas una sourceImage, una maskImage y una instrucción para la edición, además de la cantidad de pasos de edición que se realizarán.

Puedes verlo en acción en la muestra de edición de Imagen en el catálogo de muestras de IA de Android.

Imagen también admite la extensión de imagen , que te permite dejar que el modelo genere los píxeles fuera de una máscara. También puedes usar las capacidades de personalización de imágenes de Imagen para cambiar el estilo de una imagen o actualizar un tema en una imagen. Obtén más información en la documentación para desarrolladores de Android.

Generación de imágenes conversacionales con Gemini 2.5 Flash Image

Una forma de editar imágenes con Gemini 2.5 Flash Image es usar las capacidades de chat de varias turnos del modelo.

Primero, inicializa el modelo:

// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0

val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
    modelName = "gemini-2.5-flash-image",
    // Configure the model to respond with text and images (required)
    generationConfig = generationConfig {
        responseModalities = listOf(ResponseModality.TEXT,
        ResponseModality.IMAGE)
    }
)

Para lograr un resultado similar al método de Imagen basado en máscaras que se describió anteriormente, podemos usar la API de chat para iniciar una conversación con Gemini 2.5 Flash Image.

// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0

// Initialize the chat
val chat = model.startChat()


// Load a bitmap
val source = ImageDecoder.createSource(context.contentResolver, uri)
val bitmap = ImageDecoder.decodeBitmap(source)


// Create the initial prompt instructing the model to edit the image
val prompt = content {
    image(bitmap)
    text("remove the pancakes and add an omelet")
}

// To generate an initial response, send a user message with the image and text prompt
var response = chat.sendMessage(prompt)

// Inspect the returned image
var generatedImageAsBitmap = response
    .candidates.first().content.parts.filterIsInstance<ImagePart>().firstOrNull()?.image

// Follow up requests do not need to specify the image again
response = chat.sendMessage("Now, center the omelet in the pan")
generatedImageAsBitmap = response
    .candidates.first().content.parts.filterIsInstance<ImagePart>().firstOrNull()?.image

Puedes verlo en acción en la muestra de chat de imágenes de Gemini en el catálogo de muestras de IA de Android y obtener más información en la documentación de Android.

Conclusión

Imagen y Gemini 2.5 Flash Image ofrecen capacidades potentes, lo que te permite seleccionar el modelo de generación de imágenes ideal para personalizar tu app y aumentar la interacción de los usuarios, según tu caso de uso específico.

Escrito por:

Seguir leyendo