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