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 Firebase AI Logic SDK.

L'outpainting est un type de modification 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 une requête textuelle 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 plus de contexte d'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 explique comment configurer votre projet Firebase, connecter votre application à Firebase, ajouter le SDK, initialiser le service backend pour le fournisseur d'API de votre choix et créer une instance ImagenModel.

Modèles compatibles avec cette fonctionnalité

Imagen propose la modification d'images via son modèle capability :

  • imagen-3.0-capability-001

Notez que pour les modèles Imagen, le lieu global n'est pas pris en charge.

Développer le contenu d'une image

Avant d'essayer cet exemple, suivez les étapes de 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. Notez les points suivants 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.

  • L'image d'origine doit inclure un remplissage 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 spécifier dans une requête textuelle.

Swift

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

Kotlin

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

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

Java

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

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

Web

La modification d'images avec les modèles Imagen n'est pas compatible avec les applications Web. Revenez plus tard cette année.

Dart

Pour étendre une image, utilisez editImage() et définissez la configuration de modification sur ImagenEditMode.OUTPAINT.

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

Unity

La modification 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 règle générale, 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