Utilisez moins de 10 % des paramètres d'entraînement pour obtenir la même génération contrôlable que ControlNet !
Et les modèles courants de la famille Stable Diffusion tels que SDXL et SD1.5 peuvent être adaptés, et ils sont toujours plug-and-play.
En même temps, il peut également être utilisé avec SVD pour contrôler la génération vidéo, et les détails du mouvement peuvent être contrôlés avec précision jusqu'aux doigts.
Derrière ces images et vidéos se trouve ControlNeXt, un outil open source de guidage de génération d'images/vidéos lancé par l'équipe chinoise Jiajiaya de Hong Kong.
Vous pouvez voir au nom que l'équipe R&D l'a positionné comme le ControlNet de nouvelle génération.
Comme l'œuvre classique ResNeXt (une extension de ResNet) des grands dieux He Kaiming et Xie Saining, le nom est également basé sur cette méthode.
Certains internautes estiment que ce nom est bien mérité et qu'il s'agit bien du produit de nouvelle génération, élevant ControlNet à un niveau supérieur.
Certaines personnes ont également dit sans détour que ControlNeXt change la donne, ce qui a considérablement amélioré l'efficacité de la génération contrôlable. Ils ont hâte de voir les œuvres créées par les personnes qui l'utilisent.
Spider-Man danse avec beauté
ControlNeXt prend en charge une variété de modèles de la série SD et est plug-and-play.
Il comprend les modèles de génération d'images SD1.5, SDXL, SD3 (prenant en charge la super résolution) et le modèle de génération vidéo SVD.
Pas grand chose à dire, regardons juste les résultats.
Vous pouvez voir qu'en ajoutant le guidage Edge (Canny) dans SDXL, la fille en deux dimensions dessinée et les lignes de contrôle s'adaptent presque parfaitement.
Même si les contours de contrôle sont nombreux et détaillés, le modèle peut toujours dessiner des images qui répondent aux exigences.
Et s'intègre parfaitement aux autres poids LoRA sans entraînement supplémentaire.
Par exemple, dans SD1.5, vous pouvez utiliser des conditions de contrôle de posture (Pose) avec différentes LoRA pour former des personnages avec des styles différents ou même dans plusieurs dimensions, mais avec les mêmes actions.
De plus, ControlNeXt prend également en charge les modes de contrôle de masque et de profondeur.
SD3 prend également en charge la Super Résolution, qui peut générer des images ultra haute définition.
Pendant la génération vidéo, ControlNeXt peut contrôler les mouvements des personnages.
Par exemple, laissez Spider-Man danser la belle danse de TikTok, et même les mouvements des doigts sont imités avec assez de précision.
Il a même fait pousser les mains d'une chaise et exécuter la même danse Bien que ce soit un peu abstrait, la reproduction de l'action est plutôt bonne.
Et par rapport au ControlNet original, ControlNeXt nécessite moins de paramètres de formation et converge plus rapidement.
Par exemple, dans SD1.5 et SDXL, ControlNet nécessite respectivement 361 millions et 1,251 milliard de paramètres apprenables, mais ControlNeXt n'en nécessite respectivement que 30 millions et 108 millions, soit moins de 10 % de ControlNet.
Pendant le processus de formation, ControlNeXt est proche de la convergence à environ 400 étapes, mais ControlNet nécessite dix fois, voire des dizaines de fois, le nombre d'étapes.
La vitesse de génération est également plus rapide que ControlNet En moyenne, ControlNet est équivalent au modèle de base, qui apporte 41,9% de retard, mais ControlNeXt n'en a que 10,4%.
Alors, comment ControlNeXt est-il implémenté et quelles améliorations ont été apportées à ControlNet ?
Un module de contrôle conditionnel plus léger
Tout d'abord, utilisez une image pour comprendre l'ensemble du flux de travail de ControlNeXt.
La clé de l'allègement est que ControlNeXt supprime l'énorme branche de contrôle dans ControlNet et introduit à la place un module de convolution léger composé d'un petit nombre de blocs ResNet.
Ce module est chargé d'extraire les représentations de caractéristiques des conditions de contrôle (telles que les masques de segmentation sémantique, les priorités de points clés, etc.).
La quantité de paramètres d'entraînement est généralement inférieure à 10 % du modèle pré-entraîné dans ControlNet, mais il peut toujours bien apprendre les informations de contrôle conditionnel d'entrée. Cette conception réduit considérablement la surcharge de calcul et l'utilisation de la mémoire.
Plus précisément, il échantillonne à intervalles égaux différentes couches de réseau d'un modèle pré-entraîné pour former un sous-ensemble de paramètres utilisés pour l'entraînement, tandis que les paramètres restants sont gelés.
De plus, lors de la conception de l'architecture de ControlNeXt, l'équipe de recherche a également maintenu la cohérence de la structure du modèle avec l'architecture d'origine, réalisant ainsi le plug-and-play.
Qu'il s'agisse de ControlNet ou de ControlNeXt, l'injection d'informations de contrôle conditionnel est un maillon important.
Au cours de ce processus, l'équipe de recherche de ControlNeXt a mené des recherches approfondies sur deux questions clés : la sélection des sites d'injection et la conception des méthodes d'injection.
L'équipe de recherche a observé que dans la plupart des tâches de génération contrôlables, la forme d'informations conditionnelles pour guider la génération est relativement simple et fortement corrélée aux caractéristiques du processus de débruitage.
L'équipe a donc estimé qu'il n'était pas nécessaire d'injecter des informations de contrôle dans chaque couche du réseau de débruitage, elle a donc choisi d'agréger les caractéristiques conditionnelles et les caractéristiques de débruitage uniquement dans la couche intermédiaire du réseau.
La méthode d'agrégation est également aussi simple que possible : après avoir aligné les distributions des deux ensembles de caractéristiques à l'aide de la normalisation croisée, ajoutez-les directement.
Cela garantit non seulement que le signal de contrôle affecte le processus de débruitage, mais évite également l'introduction de paramètres d'apprentissage supplémentaires et l'instabilité due à des opérations complexes telles que le mécanisme d'attention.
La normalisation croisée est également une autre technologie de base de ControlNeXt, remplaçant les stratégies d'initialisation progressive précédemment couramment utilisées telles que la convolution zéro.
Les méthodes traditionnelles atténuent le problème d'effondrement en libérant progressivement l'influence des nouveaux modules à partir de zéro, mais le résultat est souvent une convergence lente.
La normalisation croisée utilise directement la moyenne μ et la variance σ des caractéristiques de débruitage du réseau fédérateur pour normaliser les caractéristiques produites par le module de contrôle, de sorte que la distribution des données des deux soit aussi alignée que possible.
(Remarque : est une petite constante ajoutée pour la stabilité numérique, γ est un paramètre de mise à l'échelle.)
Les fonctionnalités de contrôle normalisées sont ensuite ajustées en amplitude et en ligne de base via les paramètres d'échelle et de décalage, puis combinées avec l'ajout de fonctionnalités de débruitage. non seulement évite la sensibilité de l'initialisation des paramètres, mais permet également aux conditions de contrôle de prendre effet dès les premiers stades de la formation pour accélérer le processus de convergence.
De plus, ControlNeXt utilise également le module de contrôle pour apprendre le mappage des informations de condition avec les caractéristiques de l'espace latent, ce qui le rend plus abstrait et sémantique, et plus propice à la généralisation à des conditions de contrôle invisibles.
Page d'accueil du projet :
https://pbihao.github.io/projects/controlnext/index.html
Adresse papier :
https://arxiv.org/abs/2408.06070
GitHub :
https : //github.com/dvlab-research/ControlNeXt
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!