Avec l'émergence de modèles texte-image à grande échelle, générer une image attrayante est devenu très simple. Tout ce que l'utilisateur doit faire est de saisir une simple invite avec le mouvement de ses doigts. Après avoir obtenu l'image grâce à une série d'opérations, nous nous poserons inévitablement plusieurs questions : l'image générée sur la base de l'invite peut-elle répondre à nos exigences ? Quel type d’architecture devrions-nous construire pour répondre aux différentes exigences soulevées par les utilisateurs ? Les grands modèles peuvent-ils encore conserver les avantages et les capacités acquis grâce à des milliards d’images dans des tâches spécifiques ?
Pour répondre à ces questions, des chercheurs de Stanford ont mené une enquête approfondie sur diverses applications de traitement d'images et sont parvenus aux trois conclusions suivantes :
Premièrement, les données disponibles dans un domaine spécifique sont en réalité meilleures que la formation d'un modèle général. Il y a moins de données, ce qui se reflète principalement dans le fait que, par exemple, le plus grand ensemble de données sur un problème spécifique (comme la compréhension des gestes, etc.) est généralement inférieur à 100 000, soit 5 × 10 ^ 4 de moins que le plus grand. Ensemble de données d'images texte multimodales à grande échelle, ordre de grandeur LAION 5B. Cela nécessite que le réseau neuronal soit robuste pour éviter le surajustement du modèle et qu'il ait une bonne généralisation lorsqu'il cible des problèmes spécifiques.
Deuxièmement, lors de l'utilisation du traitement des tâches d'image basé sur les données, les grands clusters informatiques ne sont pas toujours disponibles. C'est là que les méthodes de formation rapides deviennent importantes, des méthodes capables d'optimiser de grands modèles pour des tâches spécifiques dans un temps et un espace mémoire acceptables. En outre, un réglage fin, un apprentissage par transfert et d'autres opérations peuvent être nécessaires lors du traitement ultérieur.
Enfin, divers problèmes rencontrés lors du traitement d'images seront définis de différentes manières. Lors de la résolution de ces problèmes, bien que l'algorithme de diffusion d'image puisse être ajusté de manière « procédurale », par exemple en limitant le processus de débruitage, en éditant l'activation de l'attention multi-têtes, etc., ces règles artisanales sont essentiellement dictées par des instructions humaines. Compte tenu de certaines tâches spécifiques telles que l'image en profondeur, la pose de la personne, etc., ces problèmes nécessitent essentiellement l'interprétation d'entrées brutes dans la compréhension au niveau de l'objet ou de la scène, ce qui rend les approches procédurales artisanales moins réalisables. Par conséquent, pour fournir des solutions à plusieurs tâches, un apprentissage de bout en bout est essentiel.
Sur la base des résultats ci-dessus, cet article propose une architecture de réseau neuronal de bout en bout ControlNet, qui peut contrôler le modèle de diffusion (tel que la diffusion stable) en ajoutant des conditions supplémentaires, améliorant ainsi l'effet de dessin et réalisant un dessin au trait. Générez des images en couleur, générez des images avec la même structure de profondeur et optimisez la génération manuelle grâce aux points clés de la main.
Adresse papier : https://arxiv.org/pdf/2302.05543.pdf
Adresse du projet : https://github.com/lllyasviel/ControlNet
Alors, quel est l’effet de ControlNet ?
Détection Canny Edge : en extrayant des dessins au trait de l'image originale, des images avec la même composition peuvent être générées.
Détection de profondeur : en extrayant les informations de profondeur dans l'image originale, une carte avec la même structure de profondeur peut être générée.
ControlNet avec segmentation sémantique :
Détectez les lignes droites de Places2 à l'aide de la transformation profonde de Hough basée sur l'apprentissage, puis générez des sous-titres à l'aide de BLIP.
Icône de détection de bord HED.
Icône de reconnaissance de posture humaine.
ControlNet est une architecture de réseau neuronal qui améliore les modèles de diffusion d'images pré-entraînés avec des conditions spécifiques à la tâche. Examinons d'abord la structure de base de ControlNet.
ControlNet manipule les conditions d'entrée des blocs de réseau neuronal pour contrôler davantage le comportement global de l'ensemble du réseau neuronal. Ici, le « bloc réseau » fait référence à un groupe de couches neuronales rassemblées comme une unité commune pour la construction de réseaux neuronaux, tels que le bloc Resnet, le bloc d'attention multi-têtes et le bloc Transformer.
Prenons l'exemple des entités 2D, étant donné une carte de caractéristiques x ϵ R^h×w×c, où {h, w, c} sont respectivement la hauteur, la largeur et le nombre de canaux. Un bloc de réseau neuronal F (・ ; Θ) avec un ensemble de paramètres Θ transforme x en une autre carte de caractéristiques y comme le montre l'équation (1) ci-dessous.
Ce processus est illustré dans la figure 2-(a) ci-dessous.
Les blocs du réseau neuronal sont connectés par une couche de convolution unique appelée « convolution zéro », qui est une couche de convolution 1×1 avec zéro initialisation des poids et des biais. Le chercheur représente l'opération de convolution nulle comme Z (・;・) et utilise deux instances de paramètres {Θ_z1, Θ_z2} pour former la structure ControlNet, comme le montre la formule suivante (2).
où y_c devient la sortie de ce bloc de réseau neuronal, comme le montre la figure 2-(b) ci-dessous.
ControlNet dans le modèle de diffusion d'images
Prenant la diffusion stable comme exemple, les chercheurs ont présenté comment utiliser ControlNet pour contrôler des modèles de diffusion à grande échelle avec des conditions spécifiques à une tâche. Stable Diffusion est un modèle de diffusion texte-image à grande échelle entraîné sur des milliards d'images, essentiellement un U-net composé d'un encodeur, de blocs intermédiaires et d'un décodeur connecté aux résidus.
Comme le montre la figure 3 ci-dessous, les chercheurs utilisent ControlNet pour contrôler chaque couche d'U-net. Notez que la façon dont ControlNet est connecté ici est efficace sur le plan informatique : puisque les poids d'origine sont verrouillés, le calcul du gradient sur l'encodeur d'origine ne nécessite aucune formation. Et comme la moitié des calculs de gradient sur le modèle d'origine sont réduits, la formation peut être accélérée et la mémoire GPU peut être économisée. La formation d'un modèle de diffusion stable à l'aide de ControlNet ne nécessite qu'environ 23 % de mémoire GPU en plus et 34 % de temps en plus par itération de formation (testé sur un seul Nvidia A100 PCIE 40G).
Plus précisément, les chercheurs ont utilisé ControlNet pour créer des copies entraînables de 12 blocs d'encodage et d'un bloc intermédiaire de diffusion stable. Les 12 blocs de codage sont disponibles en 4 résolutions, 64×64, 32×32, 16×16 et 8×8, avec 3 blocs dans chaque résolution. La sortie est ajoutée au U-net avec 12 connexions résiduelles et 1 bloc intermédiaire. Étant donné que Stable Diffusion est une structure U-net typique, il est probable que cette architecture ControlNet puisse être utilisée dans d'autres modèles de diffusion.
Entraînement et Boosting Training
Étant donné une image z_0, l'algorithme de diffusion ajoute progressivement du bruit à l'image et produit une image bruyante z_t, où t est le nombre de fois où du bruit est ajouté. Lorsque t est suffisamment grand, l’image se rapproche du bruit pur. Étant donné un ensemble de conditions comprenant le pas de temps t, les invites textuelles c_t et les conditions spécifiques à la tâche c_f, l'algorithme de diffusion d'image apprend un réseau ϵ_θ pour prédire le bruit ajouté à une image bruyante z_t, comme le montre l'équation (10) ci-dessous.
Pendant le processus de formation, les chercheurs ont remplacé de manière aléatoire 50 % des invites de texte c_t par des chaînes vides, ce qui est bénéfique pour la capacité de ControlNet à identifier le contenu sémantique à partir de la carte des conditions d'entrée.
De plus, les chercheurs discutent également de plusieurs stratégies pour améliorer la formation des ControlNets, notamment dans les cas extrêmes où les appareils informatiques sont très limités (comme les ordinateurs portables) ou très puissants (comme les clusters informatiques avec des GPU à grande échelle disponibles) .
Veuillez vous référer au document original pour plus de détails techniques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!