Modèles et plateformes d’IA
BrushNet : Remplissage d’images avec diffusion à double branche
Le remplissage d’images est l’un des problèmes classiques de la vision par ordinateur, et il vise à restaurer les régions masquées d’une image avec un contenu plausible et naturel. Les travaux existants qui emploient des techniques de remplissage d’images traditionnelles comme les réseaux antagonistes génératifs ou GAN, et les encodeurs auto-variés ou VAE, nécessitent souvent des fonctionnalités auxiliaires conçues à la main, mais ne fournissent pas de résultats satisfaisants. Au cours des dernières années, les méthodes basées sur la diffusion ont gagné en popularité au sein de la communauté de la vision par ordinateur en raison de leurs capacités remarquables de génération d’images de haute qualité, de diversité de sortie et de contrôle fin. Les premières tentatives d’emploi de modèles de diffusion pour le remplissage d’images guidé par du texte ont modifié la stratégie de débruitage standard en échantillonnant les régions masquées à partir d’un modèle de diffusion pré-entraîné, et les régions non masquées à partir de l’image donnée. Bien que ces méthodes aient donné des résultats satisfaisants dans les tâches de remplissage d’images simples, elles ont eu du mal avec des formes de masque complexes, des invites de texte et des contenus d’image qui ont abouti à un manque de cohérence global. Le manque de cohérence observé dans ces méthodes peut être attribué principalement à leur connaissance limitée des frontières de masque et du contexte de la région d’image non masquée.
Malgré les progrès, la recherche et le développement de ces modèles au cours des dernières années, le remplissage d’images est toujours un obstacle majeur pour les développeurs de vision par ordinateur. Les adaptations actuelles des modèles de diffusion pour les tâches de remplissage d’images impliquent la modification de la stratégie d’échantillonnage ou le développement de modèles de remplissage spécifiques qui souffrent souvent d’une qualité d’image réduite et de sémantiques incohérentes. Pour relever ces défis et ouvrir la voie à l’avenir pour les modèles de remplissage d’images, dans cet article, nous allons parler de BrushNet, un cadre novateur de type plug and play à double branche qui intègre les fonctionnalités d’image masquée au niveau des pixels dans n’importe quel modèle de diffusion pré-entraîné, garantissant ainsi la cohérence et les résultats améliorés sur les tâches de remplissage d’images. Le cadre BrushNet introduit un nouveau paradigme dans lequel le cadre divise les fonctionnalités d’image et les latents bruyants en branches séparées. La division des fonctionnalités d’image et des latents bruyants réduit considérablement la charge d’apprentissage pour le modèle et facilite une incorporation nuancée des informations d’image masquée essentielles de manière hiérarchique. En plus du cadre BrushNet, nous allons également parler de BrushBench et de BrushData qui facilitent l’évaluation des performances basée sur la segmentation et la formation du remplissage d’images respectivement.

Cet article vise à couvrir le cadre BrushNet en profondeur, et nous explorons le mécanisme, la méthodologie, l’architecture du cadre ainsi que sa comparaison avec les cadres de l’état de l’art. Alors, commençons.
BrushNet : Remplissage d’images avec diffusion à double branche
Le remplissage d’images, une méthode qui tente de restaurer les régions manquantes d’une image tout en maintenant la cohérence globale, a été un problème persistant dans le domaine de la vision par ordinateur, et il a troublé les développeurs et les chercheurs pendant quelques années maintenant. Le remplissage d’images trouve ses applications dans une large variété de tâches de vision par ordinateur, notamment l’édition d’images et les essais virtuels. Récemment, les modèles de diffusion comme Stable Diffusion, et Stable Diffusion 1.5 ont démontré une capacité remarquable à générer des images de haute qualité, et ils offrent aux utilisateurs la flexibilité de contrôler les contrôles sémantiques et structurels. Le potentiel remarquable des modèles de diffusion est ce qui a incité les chercheurs à recourir à des modèles de diffusion pour les tâches de remplissage d’images de haute qualité qui s’alignent sur les invites de texte.
Les méthodes employées par les cadres de remplissage d’images guidé par du texte basés sur la diffusion traditionnelle peuvent être divisées en deux catégories, Modification de la stratégie d’échantillonnage et Modèles de remplissage dédiés. La méthode de modification de la stratégie d’échantillonnage modifie le processus de débruitage standard en échantillonnant les régions masquées à partir d’un modèle de diffusion pré-entraîné, et en copiant-collant les régions non masquées à partir de l’image donnée à chaque étape de débruitage. Bien que les approches de modification de la stratégie d’échantillonnage puissent être mises en œuvre dans des modèles de diffusion arbitraires, elles aboutissent souvent à des résultats de remplissage incohérents puisqu’elles ont une connaissance limitée des frontières de masque et du contexte de la région d’image non masquée. D’un autre côté, les modèles de remplissage dédiés mettent à jour un modèle de remplissage d’images conçu spécifiquement en augmentant les dimensions du canal d’entrée du modèle de diffusion de base pour incorporer l’image corrompue et les masques. Bien que les modèles de remplissage dédiés permettent au modèle de diffusion de générer des résultats plus satisfaisants avec des modèles spécialisés et sensibles à la forme et au contenu, il peut ou non s’agir de la meilleure conception architecturale pour les modèles de remplissage d’images.
Comme le montre l’image suivante, les modèles de remplissage dédiés fusionnent le latent d’image masquée, le latent bruyant, le texte et le masque à un stade précoce. La conception architecturale de ces modèles de remplissage dédiés influence facilement les fonctionnalités d’image masquée et empêche les couches suivantes dans l’architecture UNet d’obtenir des fonctionnalités d’image masquée pures en raison de l’influence du texte. De plus, la gestion de la génération et de la condition dans une seule branche impose une charge supplémentaire sur l’architecture UNet, et comme ces approches nécessitent également une mise à jour dans différentes variations du modèle de diffusion de base, ces approches sont souvent chronophages avec une transférabilité limitée.

Il peut sembler qu’ajouter une branche supplémentaire dédiée à l’extraction des fonctionnalités d’image masquée soit une solution adéquate aux problèmes mentionnés ci-dessus, cependant, les cadres existants aboutissent souvent à l’extraction et à l’insertion d’informations inadéquates lorsqu’ils sont appliqués directement au remplissage. Par conséquent, les cadres existants comme ControlNet donnent des résultats insatisfaisants lorsqu’ils sont comparés aux modèles de remplissage dédiés. Pour relever ce défi de la manière la plus efficace possible, le cadre BrushNet introduit une branche supplémentaire dans le réseau de diffusion d’origine, et crée ainsi une architecture plus appropriée pour les tâches de remplissage d’images. La conception et l’architecture du cadre BrushNet peuvent être résumées en trois points.
- Au lieu d’initialiser les couches de convolution aléatoirement, le cadre BrushNet met en œuvre un encodeur VAE pour traiter l’image masquée. En conséquence, le cadre BrushNet est capable d’extraire les fonctionnalités d’image pour l’adaptation à la distribution UNet plus efficacement.
- Le cadre BrushNet incorpore progressivement la couche de fonctionnalités UNet complète, couche par couche, dans l’architecture UNet pré-entraînée, une approche hiérarchique qui permet un contrôle dense par pixel.
- Le cadre BrushNet supprime l’attention croisée du texte de la composante UNet pour garantir que seules des informations d’image pures sont prises en compte dans la branche supplémentaire. De plus, le modèle BrushNet propose également de mettre en œuvre une stratégie de mélange flou pour atteindre une meilleure cohérence ainsi qu’une gamme de contrôle plus élevée dans les régions non masquées de l’image.
BrushNet : Méthode et architecture
La figure suivante donne un aperçu rapide du cadre BrushNet.

Comme on peut l’observer, le cadre emploie une stratégie à double branche pour l’insertion de l’orientation d’image masquée, et utilise des opérations de mélange avec un masque flou pour garantir une meilleure préservation des régions non masquées. Il est important de noter que le cadre BrushNet est capable d’ajuster l’échelle ajoutée pour atteindre un contrôle flexible. Pour une image masquée et un masque donnés, le modèle BrushNet produit une image remplie. Le modèle réduit d’abord la taille du masque pour l’adapter à la taille du latent, et l’image masquée est alimentée en entrée dans l’encodeur VAE pour aligner la distribution de l’espace latent. Le modèle concatène ensuite le latent d’image masquée, le latent bruyant et le masque réduit, et l’utilise comme entrée. Les fonctionnalités que le modèle extrait sont ajoutées à la couche UNet pré-entraînée après un bloc de convolution nul. Après le débruitage, le modèle mélange l’image masquée et l’image générée avec un masque flou.
Orientation d’image masquée
Le cadre BrushNet insère la fonctionnalité d’image masquée dans le réseau de diffusion pré-entraîné en utilisant une branche supplémentaire, qui sépare explicitement l’extraction de fonctionnalité d’image masquée du processus de génération d’image. L’entrée est formée en concaténant le latent d’image masquée, le latent bruyant et le masque réduit. Plus précisément, le latent bruyant fournit des informations pour la génération d’images pendant le processus de génération actuel, et aide le cadre à améliorer la cohérence sémantique de la fonctionnalité d’image masquée. Le cadre BrushNet extrait ensuite le latent d’image masquée de l’image masquée en utilisant un encodeur auto-varié. De plus, le cadre emploie une interpolation cubique pour réduire la taille du masque afin de garantir que la taille du masque correspond à la taille du latent d’image masquée et du latent bruyant. Pour traiter les fonctionnalités d’image masquée, le cadre BrushNet met en œuvre une copie du modèle de diffusion pré-entraîné, et exclut les couches d’attention croisée du modèle de diffusion. La raison est que les poids pré-entraînés du modèle de diffusion servent de priorité forte pour l’extraction des fonctionnalités d’image masquée, et l’exclusion des couches d’attention croisée garantit que le modèle ne prend en compte que des informations d’image pures dans la branche supplémentaire. Le cadre BrushNet insère les fonctionnalités dans le modèle de diffusion gelé, couche par couche, permettant ainsi un contrôle dense par pixel hiérarchique, et emploie également des couches de convolution nulles pour établir une connexion entre le modèle BrushNet entraînable et le modèle verrouillé, garantissant que les bruits nocifs n’ont aucune influence sur les états cachés dans la copie entraînable pendant les premières étapes d’entraînement.
Opération de mélange
Comme mentionné précédemment, effectuer l’opération de mélange dans l’espace latent redimensionne les masques qui entraîne souvent plusieurs inexactitudes, et le cadre BrushNet rencontre un problème similaire lorsqu’il redimensionne le masque pour correspondre à la taille de l’espace latent. De plus, il est important de noter que les opérations d’encodage et de décodage dans les encodeurs auto-variés ont des opérations limitées inhérentes et peuvent ne pas garantir une reconstruction d’image complète. Pour garantir que le cadre reconstruit une image cohérente de la région non masquée, les travaux existants ont mis en œuvre différentes techniques comme la copie des régions non masquées à partir de l’image originale. Bien que cette approche fonctionne, elle entraîne souvent un manque de cohérence sémantique dans la génération des résultats finaux. D’un autre côté, d’autres méthodes comme l’adoption d’opérations de mélange latentes ont du mal à préserver les informations souhaitées dans les régions non masquées.
Contrôle flexible
La conception architecturale du cadre BrushNet en fait un choix approprié pour les intégrations plug and play inhérentes à divers modèles de diffusion pré-entraînés, et permet un contrôle de préservation flexible. Puisque le cadre BrushNet ne modifie pas les poids du modèle de diffusion pré-entraîné, les développeurs ont la flexibilité d’intégrer le cadre en tant que composant plug and play avec un modèle de diffusion affiné, permettant ainsi une adoption et une expérimentation faciles avec des modèles pré-entraînés. De plus, les développeurs ont également la possibilité de contrôler l’échelle de préservation des régions non masquées en incorporant les fonctionnalités du modèle BrushNet dans le modèle de diffusion gelé avec le poids w donné qui détermine l’influence du cadre BrushNet sur l’échelle de préservation, offrant ainsi aux développeurs la possibilité d’ajuster les niveaux de préservation souhaités. Enfin, le cadre BrushNet permet aux utilisateurs d’ajuster l’échelle de flou et de décider si l’opération de flou doit être mise en œuvre, facilitant ainsi des ajustements flexibles et un contrôle fin de la tâche de remplissage d’images.
BrushNet : Mise en œuvre et résultats
Pour analyser ses résultats, le cadre BrushNet propose BrushBench, un jeu de données de remplissage d’images basé sur la segmentation avec plus de 600 images, chacune accompagnée d’un masque annoté par un humain et d’une annotation de légende. Les images du jeu de données de référence sont réparties uniformément entre les images naturelles et artificielles, et assurent également une répartition uniforme entre les différentes catégories, permettant ainsi une évaluation équitable entre les différentes catégories. Pour améliorer encore l’analyse des tâches de remplissage, le cadre BrushNet divise le jeu de données en deux parties distinctes en fonction des méthodes utilisées : segmentation basée sur la segmentation et masques de pinceau.
Comparaison quantitative
Le tableau suivant compare le cadre BrushNet avec les modèles de remplissage d’images basés sur la diffusion existants sur le jeu de données BrushBench avec le modèle Stable Diffusion comme modèle de base.

Comme on peut l’observer, le cadre BrushNet démontre une efficacité remarquable dans la préservation de la région masquée, l’alignement du texte et la qualité de l’image. De plus, des modèles comme Stable Diffusion Inpainting, HD-Painter, PowerPaint et d’autres démontrent des performances solides dans les tâches de remplissage d’images à l’intérieur, bien qu’ils échouent à répéter leurs performances dans les tâches de remplissage à l’extérieur, en particulier en termes d’alignement du texte et de qualité d’image. Dans l’ensemble, le cadre BrushNet donne les résultats les plus forts.
De plus, le tableau suivant compare le cadre BrushNet avec les modèles de remplissage d’images basés sur la diffusion existants sur le jeu de données EditBench, et les performances sont comparables à celles observées sur le jeu de données BrushBench. Les résultats indiquent que le cadre BrushNet donne de solides performances dans une large gamme de tâches de remplissage d’images avec différents types de masques.

Comparaison qualitative
La figure suivante compare qualitativement le cadre BrushNet avec les méthodes de remplissage d’images existantes, avec des résultats couvrant l’intelligence artificielle et les images naturelles dans différentes tâches de remplissage, notamment le remplissage de masque aléatoire, le remplissage à l’intérieur du masque de segmentation et le remplissage à l’extérieur du masque de segmentation.

Comme on peut l’observer, le cadre BrushNet donne des résultats remarquables dans la cohérence de la région non masquée et des régions cohérentes, et réalise avec succès la prise de conscience des informations de fond grâce à la mise en œuvre de l’approche de découplage à double branche. De plus, la branche non touchée du modèle de diffusion pré-entraîné offre également l’avantage de couvrir différents domaines de données comme l’animation et la peinture, ce qui aboutit à de meilleures performances dans différents scénarios.

Pensées finales
Dans cet article, nous avons parlé de BrushNet, un cadre novateur de type plug and play à double branche qui intègre les fonctionnalités d’image masquée au niveau des pixels dans n’importe quel modèle de diffusion pré-entraîné, garantissant ainsi la cohérence et les résultats améliorés sur les tâches de remplissage d’images. Le cadre BrushNet introduit un nouveau paradigme dans lequel le cadre divise les fonctionnalités d’image et les latents bruyants en branches séparées. La division des fonctionnalités d’image et des latents bruyants réduit considérablement la charge d’apprentissage pour le modèle et facilite une incorporation nuancée des informations d’image masquée essentielles de manière hiérarchique. En plus du cadre BrushNet, nous allons également parler de BrushBench et de BrushData qui facilitent l’évaluation des performances basée sur la segmentation et la formation du remplissage d’images respectivement.












