Actualités sur les produits

Améliorez l'engagement des utilisateurs grâce à la génération d'images par IA

Temps de lecture : 5 min

L'ajout d'images personnalisées à votre application peut améliorer et personnaliser considérablement l'expérience utilisateur, et renforcer l'engagement des utilisateurs. Cet article présente deux nouvelles fonctionnalités de génération d'images avec Firebase AI Logic : les fonctionnalités de modification spécialisées d'Imagen, actuellement en preview, et la disponibilité générale de Gemini 2.5 Flash Image (alias "Nano Banana"), conçu pour la génération d'images contextuelles ou conversationnelles.

Améliorez l'engagement des utilisateurs grâce aux images générées via Firebase AI Logic

Les modèles de génération d'images peuvent être utilisés pour créer des avatars de profil utilisateur personnalisés ou pour intégrer des éléments visuels personnalisés directement dans les flux d'écran clés.  

Par exemple, Imagen propose de nouvelles fonctionnalités de modification (en preview développeur). Vous pouvez désormais dessiner un masque et utiliser l'inpainting pour générer des pixels dans la zone masquée. De plus, l'outpainting est disponible pour générer des pixels en dehors du masque.   

Imagen inpainting.png

Imagen prend en charge l'inpainting, ce qui permet de générer uniquement une partie d'une image. 

Gemini 2.5 Flash Image (alias Nano Banana) peut également utiliser des connaissances du monde étendues et les capacités de raisonnement des modèles Gemini pour générer des images contextuellement pertinentes, ce qui est idéal pour créer des illustrations dynamiques qui correspondent à l'expérience actuelle de l'utilisateur dans l'application.   

 

Illustration de Nano Banana dans le contexte.png

Utilisez Gemini 2.5 Flash Image pour créer des illustrations dynamiques contextuellement pertinentes pour votre application.

Enfin, la possibilité de modifier des images de manière conversationnelle et itérative permet aux utilisateurs de modifier une photo en langage naturel.

 

photo edit natural language.png

Utilisez Gemini 2.5 Flash Image pour modifier une image en langage naturel.

Lorsque vous commencez à intégrer l'IA à votre application, il est important de vous renseigner sur la sécurité de l'IA. Il est particulièrement important d'évaluer les risques de sécurité de votre application, d'envisager des ajustements pour atténuer les risques de sécurité, d'effectuer des tests de sécurité adaptés à votre cas d'utilisation, de solliciter les commentaires des utilisateurs et de surveiller le contenu.

Imagen ou Gemini : à vous de choisir

La différence entre Gemini 2.5 Flash Image ("Nano Banana") et Imagen réside dans leur objectif principal et leurs fonctionnalités avancées. Gemini 2.5 Flash Image, en tant que modèle d'image au sein de la famille Gemini, excelle dans la modification d'images conversationnelles, en conservant le contexte et la cohérence du sujet sur plusieurs itérations, et en tirant parti des "connaissances du monde et du raisonnement" pour créer des éléments visuels contextuellement pertinents ou intégrer des éléments visuels précis dans de longues séquences de texte. 

Imagen est le modèle de génération d'images spécialisé de Google, conçu pour un meilleur contrôle créatif. Il est spécialisé dans les sorties très photoréalistes, les détails artistiques et les styles spécifiques, et fournit des commandes explicites pour spécifier le format de l'image générée.

Images Gemini 2.5 Flash 
(Nano Banana 🍌)
Imagen

🌎 Connaissances du monde et raisonnement pour des images plus pertinentes sur le plan contextuel

💬 Modifiez les images de manière conversationnelle tout en conservant le contexte

📖 Intégrez des éléments visuels précis dans de longues séquences de texte

📐 Spécifiez le format des images générées

 

🖌️Prise en charge de la modification basée sur un masque pour l'inpainting et l'outpainting. 

 

🎚️ Contrôle accru sur les détails de l'image générée (qualité, détails artistiques et styles spécifiques)

Voyons comment les utiliser dans votre application.

Inpainting avec Imagen

Il y a quelques mois, nous avons lancé de nouvelles fonctionnalités de modification pour Imagen. Bien qu'Imagen soit désormais prêt pour la production pour la génération d'images, les fonctionnalités de modification sont toujours en preview développeur.

Les fonctionnalités de modification d'Imagen incluent l'inpainting et l'outpainting, qui sont des fonctionnalités de modification d'images basées sur un masque. Cette nouvelle fonctionnalité permet aux utilisateurs de modifier des zones spécifiques d'une image sans régénérer l'image entière. Cela signifie que vous pouvez conserver les meilleures parties de votre image et ne modifier que ce que vous souhaitez changer.

Imagen inpainting dog.png

Utilisez les fonctionnalités de modification d'Imagen pour apporter des modifications précises et ciblées à une image, et garantir l'intégrité du reste de l'image

Ces modifications sont effectuées tout en conservant les éléments de base et l'intégrité globale de l'image d'origine, et en ne modifiant que la zone du masque.

Pour implémenter l'inpainting avec Imagen, initialisez d'abord imagen-3.0-capability-001, un modèle Imagen spécifique qui prend en charge les fonctionnalités de modification :

// 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),
            ),
        )

Définissez ensuite la fonction d'inpainting :

// 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()
    }

Vous fournissez à la fois une sourceImage, une maskImage, un prompt pour la modification et le nombre d'étapes de modification à effectuer.

Vous pouvez le voir en action dans l'exemple de modification d'Imagen du catalogue d'exemples d'IA Android.

Imagen prend également en charge l'outpainting , qui vous permet de laisser le modèle générer les pixels en dehors d'un masque. Vous pouvez également utiliser les fonctionnalités de personnalisation d'images d'Imagen pour modifier le style d'une image ou mettre à jour un sujet dans une image. Pour en savoir plus, consultez la documentation destinée aux développeurs Android.

Génération d'images conversationnelles avec Gemini 2.5 Flash Image

Pour modifier des images avec Gemini 2.5 Flash Image, vous pouvez utiliser les fonctionnalités de chat multi-tours du modèle.

Initialisez d'abord le modèle :

// 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)
    }
)

Pour obtenir un résultat similaire à la méthode Imagen basée sur un masque décrite ci-dessus, nous pouvons utiliser l'API chat pour lancer une conversation avec 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

Vous pouvez le voir en action dans l'exemple de chat d'images Gemini du catalogue d'exemples d'IA Android. Pour en savoir plus, consultez la documentation Android.

Conclusion

Imagen et Gemini 2.5 Flash Image offrent des fonctionnalités puissantes qui vous permettent de sélectionner le modèle de génération d'images idéal pour personnaliser votre application et améliorer l'engagement des utilisateurs, en fonction de votre cas d'utilisation spécifique.

Écrit par :
Continuer la lecture