Développer le contenu d'une image par outpainting avec Imagen


Cette page explique comment utiliser l'outpainting avec Imagen pour étendre le contenu d'une image au-delà de ses bordures d'origine à l'aide des SDK Firebase AI Logic.

L'outpainting est un type d'édition basée sur un masque. Un masque est une superposition numérique qui définit la zone spécifique que vous souhaitez modifier.

Fonctionnement : vous fournissez une image d'origine et une image masquée correspondante (générée automatiquement ou fournie par vous) qui définit un masque de la nouvelle zone agrandie. Vous pouvez également fournir un prompt textuel décrivant ce que vous souhaitez dans la zone agrandie, ou le modèle peut décider de manière intelligente de ce qui continuera logiquement la scène existante. Le modèle génère le nouveau contenu et remplit la zone masquée.

Par exemple, vous pouvez modifier le format d'une image ou ajouter du contexte à l'arrière-plan.

 Accéder au code

Avant de commencer

Disponible uniquement lorsque vous utilisez Vertex AI Gemini API comme fournisseur d'API.

Si ce n'est pas déjà fait, suivez le guide de démarrage, qui décrit comment configurer votre projet Firebase, associer votre application à Firebase, ajouter le SDK, initialiser le service de backend pour le fournisseur d'API de votre choix et créer une instance ImagenModel.

Modèles compatibles avec cette fonctionnalité

Imagen propose des fonctionnalités de retouche photo grâce à son modèle capability :

  • imagen-3.0-capability-001

Notez que pour les modèles Imagen, l'emplacement global n'est pas accepté.

Développer le contenu d'une image

Avant d'essayer cet exemple, suivez la section Avant de commencer de ce guide pour configurer votre projet et votre application.

L'exemple suivant montre comment étendre une image au-delà de ses bordures d'origine à l'aide d'un masque défini dans une image que vous fournissez. Vous fournissez l'image d'origine, une requête textuelle et l'image masquée. À noter concernant l'image d'origine et l'image masquée :

  • L'image masquée doit avoir les dimensions en pixels de la taille cible de l'image finale complétée.

  • L'image d'origine doit inclure une marge intérieure supplémentaire pour correspondre aux dimensions en pixels de l'image masquée.

Il est facultatif de fournir une requête textuelle si vous souhaitez que le modèle décide de manière intelligente de ce qui continuera logiquement la scène existante. Si vous souhaitez un contenu spécifique dans la zone agrandie, vous devez le préciser dans un prompt textuel.

Swift

La retouche d'images avec les modèles Imagen n'est pas compatible avec Swift. Revenez plus tard cette année !

Kotlin

Pour agrandir une image, utilisez editImage() et définissez la configuration d'édition sur ImagenEditMode.OUTPAINT.
Notez que vous pouvez éventuellement utiliser outpaintImage() au lieu de editImage(), et que vous n'avez pas besoin de spécifier le mode d'édition.

Consultez le guide de démarrage rapide pour obtenir un exemple de code pour l'extension de l'image.

Java

Pour agrandir une image, utilisez editImage() et définissez la configuration d'édition sur ImagenEditMode.OUTPAINT.
Notez que vous pouvez éventuellement utiliser outpaintImage() au lieu de editImage(), et que vous n'avez pas besoin de spécifier le mode d'édition.

Consultez le guide de démarrage rapide pour obtenir un exemple de code pour l'extension de l'image.

Web

La retouche d'images avec les modèles Imagen n'est pas disponible pour les applications Web. Revenez plus tard cette année !

Dart

Pour agrandir une image, utilisez editImage() et définissez la configuration d'édition sur ImagenEditMode.OUTPAINT.

Consultez le guide de démarrage rapide pour obtenir un exemple de code pour l'extension de l'image.

Unity

La retouche d'images avec les modèles Imagen n'est pas compatible avec Unity. Revenez plus tard cette année !

Bonnes pratiques et limites

Nous vous recommandons de dilater le masque lorsque vous modifiez une image. Cela peut aider à lisser les bordures d'une modification et à la rendre plus convaincante. En général, une valeur de dilatation de 1 % ou 2 % est recommandée (0.01 ou 0.02).


Envoyer des commentaires sur votre expérience avec Firebase AI Logic