Sommaire
- Découvrir ControlNet
- Que peut faire ControlNet ?
- Copie de la pose
- Conservation de la profondeur d’image.
- Image à partir d’un croquis
- Copie des contours
- Qu’est-ce que ControlNet ?
- Comment fonctionne ControlNet ?
- Comment installer ControlNet ?
- Installer ControlNet sur AUTOMATIC1111
- Ajouter l’extension ControlNet
- Télécharger les modèles ControlNet
- Alternative Cloud pour Automatic1111
- Comment utiliser ControlNet ?
- Exemples d’utilisations de ControlNet
- ControlNet en txt2img
- ControlNet en img2img
- Les modèles ControlNet
- Modèles et préprocesseur
- C’est quoi un pré-processeur ?
- Associer pré-processeur et modèle
- Prévisualiser le résultat du préprocesseur
- Canny
- Depth
- Normal Map
- OpenPose
- Inpaint
- MLSD
- LineArt
- SoftEdge
- Scribble
- Segmentation
- Les paramètres ControlNet
- Image
- Options
- Enable
- Low VRAM
- Pixel Perfect
- Allow Preview
- Choix des modèles
- Control Type
- Preprocessor
- Model
- Control Weight
- ControlNet step
- Starting Step
- Ending Step
- Options de préprocesseur
- Preprocessor Resolution
- Options de préprocesseur
- Preprocessor Resolution
- Control Mode
- Balanced
- My prompt is more important
- ControlNet is more important
- Resize Mode
- Just Resize
- Crop and Resize
- Resize en Fill
- FAQ ControlNet et dépannage
Do not index
Do not index
Publish
Publish
ControlNet est un modèle complémentaire pour les modèles de diffusion comme Stable Diffusion ou Flux qui permet de copier des compositions d’image ou des poses de personnages à partir d'une image de référence.
ControlNet est donc bien plus qu'un simple outil d'image-to-image. Il offre une précision inégalée, permettant aux utilisateurs de choisir avec précision les éléments de l'image d'origine qu'ils souhaitent conserver ou ignorer.
Les outils standards de génération d’image en text-to-image ou même en image-to-image offrent finalement peu de contrôle sur la composition des images. Les images restent aléatoires et il faut en générer un grand nombre pour finalement pouvoir choisir celle où le sujet et les autres éléments se trouvent et à quoi il ressemblent.
ControlNet change complètement la donne
Les premiers modèles se concentraient essentiellement sur les poses et la composition de l’image - mais nous avons vu de nouvelles utilisations apparaitre, comme les QR Code et les Images en pirales.
Découvrir ControlNet
Que peut faire ControlNet ?
Copie de la pose
Avec ControlNet, il est possible de conserver la pose ou la position d’un personnage tout en générant une nouvelle image.
On peut même utiliser une image qui reprend uniquement la pose sous forme de manequin 3D ou de schema Open Pose.
Modèle utilisé pour la conservation de pose : control_openpose-fp16 (OpenPose)
Conservation de la profondeur d’image.
ControlNet peut aussi utiliser une depth map de l’image pour générer des images qui conservent les profondeurs de l’originale. Ca permet par exemple de modifier l’environement ou l’ambiance, tout en conservant les caractéristiques principales de l’image.
Regardez par exemple ces variation de la ville Whiterun (Skyrim) créées par @Lokitsar.
Modèle utilisé pour la conservation des profondeurs : control_depth-fp16 (Depth)
Image à partir d’un croquis
N’importe quel croquis ou dessin d’enfant peut être transformé en oeuvre d’art avec ControlNet.
Modèle utilisé pour les croquis : t2iadapter_sketch-fp16
Copie des contours
ControlNet dispose aussi d’un modèle qui extrait les contours d’une images sous forme de traitsavant de la redessiner.
Modèle utilisé pour la detection des contours : control_canny-fp16
Il y’a d’autres modèles ControlNet qui peuvent être utilisé pour contrôler l’img2img en y ajoutant des contraintes, mais ces quatre là sont les principaux.
Qu’est-ce que ControlNet ?
ControlNet est un modèle de réseau neuronal conçu pour contrôler les modèles de génération d’image. Vous pouvez utiliser ControlNet avec différents checkpoints Stable Diffusion ou d’autres modèles de génération d’image.
L'utilisation la plus élémentaire des modèles de génération d’images se fait par le biais du text-to-image. Cette méthode emploie des indications textuelles, le prompt, comme éléments de conditionnement pour orienter la création d'images, dans le but de générer des visuels en adéquation avec les indications fournies.
Avec ControlNet, un élément de conditionnement vient s'ajouter aux indications textuelles. Ce conditionnement additionnel peut prendre diverses formes au sein de ControlNet.
Voyons rapidement deux utilisation différentes de ControlNet pour comprendre comment il ajoute le conditionnement à la génération d’image : La détection des contours et la reconnaissance de pose.
Comment fonctionne ControlNet ?
ControlNet fonctionne en extrayant une image traitée à partir d'une image de référence que vous lui donnez. Cette image traitée est ensuite utilisée pour contrôler le processus de diffusion qui génère l’image lorsque vous utilisez l’img2img.
Techniquement, cela fonctionne en attachant des modules de réseau entraînables à différentes parties du U-Net (prédiction de bruit) du modèle de diffusion. Le poids du modèle est verrouillé de sorte qu'il ne soit pas modifié pendant l'entraînement. Seuls les modules attachés sont modifiés pendant l'entraînement de ControlNet.
Le schéma du modèle issu de la publication de recherche résume ce fonctionnement : Au départ, les poids du module de réseau attaché sont tous à zéro, ce qui permet au nouveau modèle de tirer parti du modèle entraîné et verrouillé.
Pendant l'entraînement, deux conditionnements sont fournis avec chaque image : une description textuelle et une annotation telle que les keypoints OpenPose ou les contours Canny. De cette manière, le modèle ControlNet peut apprendre à générer des images en fonction de ces deux entrées.
En fin de compte, cela permet d'apprendre à Stable Diffusion ou à un autre modèle de diffusion à imiter les motifs et les structures observés dans les images annotées, afin de pouvoir générer des images réalistes qui répondent aux conditionnements spécifiés.
Chaque méthode d'annotation est entraînée indépendamment. - ce qui veut dire que si on souhaite utiliser plusieurs conditionnement, il faut entraîner un modèle ControlNet différent pour chaque méthode.
Pour des explications plus complètes et techniques avoir plus sur le sujet, consulter le dépôt Github officiel et la publication de recherche.
Comment installer ControlNet ?
Le moyen le plus simple d’installer et d’utiliser ControlNet, c’est de l’utiliser avec le WebUI d’AUTOMATIC1111. Il existe en effet une extension pour cette interface qui permet d’utiliser au mieux ControlNet et ses diffèrentes modèles. Elle est tellement pratique et bien faire qu’elle est devenu le standard de facto pour tous ceux qui veiulent utiliser ControtlNet.
Installer ControlNet sur AUTOMATIC1111
Si vous avez installer Automatic1111 sur votre ordinateur, vous pouvez assez facilement installer l’extension ControlNet.
Avant de commencer, vérifiez quand même que votre version d’Automatic1111 est à jour et, au besoin, faites la mise à jour.
Comment installer la mise à jour ?
Utilisez le terminal pour vous rendre dans le répertoire où est installé votre version d’Automatic1111 et exécuter la commande
git pull origin master
. Cela va lancer le téléchargement de la mise à jour qui va remplacer votre ancienne version.Ajouter l’extension ControlNet
ControlNet s’installe donc comme une extensions pour l’interface graphique. Voici comment faire : Cliquez sur l’ongle principal Extension puis sur celui intitulé Install from URL. Là, indiquer l’adresse
https://github.com/Mikubill/sd-webui-controlnet
dans le premier champs (URL for extension’s git repository) puis cliquez sur le bouton Install.Cliquez ensuite sur l’onglet Installed et cliquez sur le gros bouton Apply and restart UI pour recharger l’interface avec l’extension activée.
Si l’installation a correctement fonctionné, vous verrez une section déroulante appelée ControlNet en bas de l’onglet txt2img (juste au dessus du selecteur scrips).
Télécharger les modèles ControlNet
Comme nous l’avons expliqué, chaque conditionnement différents (Pose, contours, profondeur,…) correspond à un modèle différents.
Pour obtenir les principaux modèles à utiliser avec Stable Diffusion 1.5, rendez-vous sur la page de ControlNet 1.1 sur HuggingFace et téléchargez les différents fichiers .pth - Si cela vous semble trop de fichier, vous pouvez probablement vous contentez des modèles OpenPose (control_v11p_sd15_openpose.pth) et Canny (control_v11p_sd15_canny.pth) qui sont les plus fréquemment utilisé.
Pour les QR Codes et les Illusion (comme le célèbre village en spirale), vous aurez besoin du modèle QR Code Monster que vous pouvez également télécharger sur HuggingFace.
Enfin, sachez que des modèles compatibles avec le nouveau Stable Diffusion XL sont aussi disponibles - téléchargez les également depuis cette page HuggingFace.
Placez ensuite tous les modèles téléchargés dans le répertoire
models/ControlNet
de votre installation. Si les modèles placés dans le répertoire ne sont pas visibles dans l’interface, cliquez sur l’icône 🔃 pour les recharger.
Alternative Cloud pour Automatic1111
Vous pouvez également utiliser Automatic1111 sur le Cloud avec Google Colab ou Diffus. C’est vraiment super simple : l’un et l’autre viennent avec l’extension pré-installée.
Suivez simplement notre Guide Diffus ou notre tutoriel d’utilisation de Stable Diffusion avec Google Colab (en activant controlnet). C’est aussi simple que ca !
Comment utiliser ControlNet ?
Pour utiliser ControlNet, vous devez l’activer, choisir une une image de référence et un modèle à utiliser en plus des autres de paramètres de configuration pour votre génération d’image. :
Cliquez sur la petite flèche pour ouvrir les contrôleurs ControlNet.
Cocher ensuite la case Enabled pour activer ControlNet et sélectionner un Preprocessor et le Model qui va avec (par exemple OpenPose + control_v11p_sd15_openpose).
Les version récentes de l’extension ControlNet vous permettent d’appliquer plusieurs contraintes différentes à votre génération. Ce sont les “Unit n” que vous pouvez activer (enabled) dans le panneau de contrôle ControlNet. Chaque contrainte se configure indépendamment des autres, avec ses propres paramètres.
Voyons ensemble deux exemple simple de l’utilisation de ControlNet pour générer une image à partir d’un prompt ou à partir d’une autre image.
Exemples d’utilisations de ControlNet
ControlNet en txt2img
Essayons d’utiliser ControlNet et son modèle OpenPose pour générer une image d’Harley Quinn fait du yoga. Pour cette expérience, j’ai choisis le modèle ToonYou.
Commençons juste un prompt très simple comme “(masterpiece, best quality), Harley Quinn doing yoga under the moon” auquel on ajoute un prompt négatif adapté à l’illustration.
Sans ControlNet, je vais obtenir des images variées avec des poses de yoga différentes et pas forcément très réalistes…
Pour forcer une pose particulière au personnage, nous allons donc devoir utiliser ControlNet :
- Ouvrez la configuration ControlNet
- Cliquez sur Enable pour activer une première unité.
- Glissez-déposez une image de contrôle avec une personne dans la pose souhaitée dans la zone de téléchargement.
- Choisissez openpose_full en Preprocessor et control_v11p_sd15_openpose comme Model
L’image de référence est importante puisque c’est elle qui va être utilisé pour déterminer la position du personnage. Le preprocessor va lire cette image et déterminer la pose. Puis le Model va utiliser cette information pour contraindre la génération de manière à adopter la pose.
Voici les résultats obtenu avec différentes images de contrôle :
Comme vous le voyez, seule la pose du personnage à de l’importance. Le reste de l’image, les couleurs comme le décor ou même les vêtements n’ont aucune influence sur l’image générée.
ControlNet en img2img
Cette fois, nous allons partir d’une image de Captain America et utiliser ControlNet pour le mettre dans une position de Yoga. Le checkpoint utilisé sera ReV Animated.
Glissez-déposez normalement l’image que vous souhaitez utiliser comme source principale dans la zone normale pour l’img2img.
Ajoutez un prompt correspondant à cette image comme par exemple “captain america standing in front of a blue and cloudy sky, Americo Makk, concept art, Marvel Cinematic Universe”. Ajoutez aussi un prompt négatif standard.
Tentez quelques générations img2img sans rien changer d’autres. Vous allez obtenir des images comme celles-ci qui reprennent plus ou moins bien la composition de l’image d’origine. Comme vous le voyez, c’est un peu aléatoire.
Une manière de garder une composition encore plus proche de l’originale pourrait etre d’utiliser ControlNet en utilisant le modèle de profondeur de champs :
- Ouvrez la configuration ControlNet
- Cliquez sur Enable pour activer une première unité.
- Choisissez depth_midas en Preprocessor et control_v11f1p_sd15_depth comme Model
Lancez maintenant la génération. Vous obtiendrez une image qui montre comment la profondeur a été compris en plus de l’image générée. Cette dernière respecte beaucoup mieux la composition. ControlNet a forcé la génération à utiliser les mêmes profondeurs aux mêmes endroit, ce qui conditionne très fort l’image finale.
Voyons maintenant comment utiliser le même contrôleur pour changer la position de Captain America. Nous allons essayer de lui faire prendre une pose de Yoga.
Pour cela, cliquez sur l’option Upload independant control image - un zone d’upload apparait juste au dessus. Faites-y glisser une image avec une pose de yoga avant de puis lancer une nouvelle génération.
Encore une fois, seul ce qui va être reconnu par le preprocessor va être utilisés - les couleurs ou d’autres éléments de l’image n’ont donc aucune importance ici puisque nous analysons sa profondeur.
Cette fois, ce n’est plus l’image principale qui sert de référence mais la nouvelle image ajoutée comme control image
Voilà, vous savez maintenant comment utiliser ControlNet pour générer des images en text-to-image et en image-to-image. Pour aller plus loin avec cet outil, vous voudrez cependant en savoir plus sur les modèles et les préprocesseur qui les accompagnent.
C’est ce que nous allons voir maintenant en discutant des principaux modèles ControlNet.
Les modèles ControlNet
Modèles et préprocesseur
Si ce sont les modèles ControlNet qui sont utilisé au moment de la génération de l’image, ils ont besoin d’informations spécifique pour y parvenir. Ces informations, appelées “annotations” dans l’article de recherche - et elles proviennent des pré-processeurs.
C’est quoi un pré-processeur ?
Le préprocesseur est un petit programme qui va lire l’image de référence que vous aurez choisie et la traiter pour obtenir les informations spécifiques dont ControlNet aura besoin.
Le préprocesseur est donc un composant essentiel de ControlNet. Il joue un rôle crucial dans la conversion de l'image téléchargée en données qui peuvent être utilisée par ControlNet pour guider la génération avec Stable Diffusion.
Associer pré-processeur et modèle
Puisque le préprocesseur détermine les données qui seront utilisée par le modèle ControlNet, vous comprendrez que chaque modèle aura besoin d’un préprocesseur adapté qui pourra extraire les informations pertinentes pour lui.
Depuis la V1.1, les créateurs de ControlNet nomme leur modèle de manière à y reprendre un nom correspondant au préprocesseur utile pour le modèle. C’est normalement le nom qui va se trouver à la fin du nom du modèle comme vous pouvez le voir dans les exemples ci-dessous.
Modèle | Préprocesseur |
control_v11p_sd15_canny | canny |
control_v11p_sd15_openpose | openpose_xyz |
control_v11p_sd15_scribble | scribble_xyz |
control_v11p_sd15_lineart | lineart_xyz |
Avec l’extension ControlNet, vous pouvez filtrer les modèles et les préprocesseurs qui vont avec en sélectionnant un type de contrôle. Lorsqu’un type est sélectionné seuls les préprocesseurs et modèles correspondant sont affichés dans les menus déroulant Preprocessor et Model.
Prévisualiser le résultat du préprocesseur
Dans Automatic1111, vous pouvez activer la pré-visualisation du résultat du préprocesseur pour voir comment l’image sera traitée :
- Cliquez sur Allow Preview pour activer l’option de pré-visualisation.
- Cliquez sur l’icône 💥 à droite du Preprocesor pour le lancer et afficher l’image traitée.
Canny
La détection Canny, est une technique relativement ancienne de détection des contours dans une image. Elle permet d’extraire les contours de manière fiable et assez claire.
Les modèle ControlNet Canny peuvent être utilisé pour conserver à la fois la composition et des détails de l’image.
Depth
Quand on parle de Depth Map, ou de carte des profondeurs, d’une image, on parle d’une représentation graphique de la distance des différents objects et surface de la scène par rapport au point de vue.
Les différents pré-processeurs Depth sont utiliser pour deviner ces informations de profondeurs et créés une telle Depth Map. Selon le pré-processeur choisis, le niveau de précision de cette Depth Map sera plus ou moins fin.
- Depth Midas est le plus classique et celui utilisé par défaut.
- Depth Leres est réputé plus précis - mais avec un risque de prendre en compte des élément de décor.
- Depth Leres++ est encore plus détaillé.
- Depth Zoe se situe a peu près à mi-chemin entre Midas et Leres.
Normal Map
Une Normal Map, ou carte de normales en français est une image où chaque pixels représente un vecteurs fournissant l'information d'élévation et d'inclinaison de sa surface. Elles sont habituellement utilisée pour améliorer le rendu d’image en 3D avec application de texture.
Avec ControlNet, la couleur de chaque pixel indique la direction à laquelle la surface qu’il représente fait face - ce qui permet de transférer à Stable Diffusion la composition 3D de l’image d’origine.
OpenPose
OpenPose détecte les positions du corps humains tels que la position de la tête, des épaules, des mains, etc. C’est le ControlNet idéal pour copier des poses sans copier d'autres détails (coiffures, vêtements,…).
Il y a différents préprocesseurs OpenPose qui vont détecter différents détails de la pose, avec plus ou moins de précisions sur les partie du corps.
- OpenPose est le préprocesseur de base - il évalue la pose du corps en identifiant la position des yeux, du nez, du coup, des épaules, des coudes, des poignée, des genoux et des chevilles.
- OpenPose_face ajoute une détection plus détaillées des visages en ajoutant une série de points. Il permet de conserver l’expression du visage.
- OpenPose_faceonly détecte uniquement les points du visages, sans les autres parties du corps identifié par le préprocesseur de base.
- OpenPose_hand ajoute la reconnaissance détaillées de la positions des mains et des doigts.
- OpenPose_full combine le préprocesseur de base avec la détection précise des visages et des mains.
- DW_OpenPose_full est un nouveau préprocesseur basé sur des travaux de recherches plus récents. Il fait la même chose que l’OpenPose_full mais en mieux - utilisez le donc de préférence à l’ancien préprocesseur.
Voyons maintenant comment, en pratique, les différents préprocesseurs OpenPose interprètent une même photo d’origine et peuvent ensuite êtres utilisé pour générer de nouvelles images.
Inpaint
L'inpainting ControlNet vous permet de combiner un denoising élevé (qui permet de forte variations) tout en conservant un maximum de cohérence avec l’image de référence.
Il y a actuellement 3 pré-processeurs pour ce type de ControlNet :
- Inpaint_global_harmonious améliore la cohérence globale et permet d'utiliser un débruitage élevé.
- Inpaint_only ne modifie pas la zone non-masquée de l’image (Dans Automatic1111, cela revient au même qu’avec le Inpaint_global_harmonious).
- Inpaint_only+lama va traiter l'image avec le modèle lama qui produit des résultats souvent plus propres et est très efficace pour la suppression d'objets.
Nous traiterons plus en détails de l’utilisation de ControlNet Inpait dans un prochain article dédié à l’inpainting.
Abonnez-vous à notre newsletter pour être prevenu de sa publication.
MLSD
Le préprocesseur MLSD (Multi-Scale Line Descriptor) excelle dans la mise en évidence des arêtes droites, dessinant avec netteté les contours des bâtiments, des aménagements intérieurs et bien plus. Il est donc particulièrement adapté aux conceptions architecturales ou à tout projet nécessitant une précision pour les lignes droites.
La contrepartie est que le MLSD a tendance à négliger les courbes. Sa conception est en effet orientée vers la capture des lignes droites, ce qui le rend moins idéal pour les images comportant de nombreuses courbes.
LineArt
Le ControlNet Line Art rappelle le Canny dans le sens où il va lui aussi détecter les contours de l’image. Le pré-processeur fonctionne cependant avec des algorithmes différents dont le résultats se rapproche plus d’un dessin au trait continus.
C’est le ControlNet idéal pour transformer une image en dessin ou peinture - même si il fonctionne aussi pour des images photographiques.
Il existe plusieurs préprocesseur Line Art :
- LineArt standard est la version de base.
- Invert est la version de base, mais pour une image en blanc sur fond noir.
- LineArt Anime génère des traits dans un style manga / anime.
- LineArt Anime Denoise fait la même chose en moins détaillé.
- LineArt Realistic donnera un dessin de style réalistes.
- LineArt Coarse fait la même chose que le Realistic mais avec des traits plus épais.
Il y a également deux modèles de control, _lineart et _lineart_anime - à utiliser selon le préprocesseur choisis.
SoftEdge
Proche des méthodes Canny et LineArt, le Soft Edge reconnait les contours d’une image. Il est cependant plus “doux” dans le sens où il offre un résultat plus fluide. Soft Edge est idéal pour les images pour lesquelles vous souhaitez une détection des contours moins cassante ou moins dure, ce qui garantit un aspect visuel plus lisse et doux..
Softedge dispose de quatre préprocesseurs, mais il y a peu de différences entre eux :
- softhedge_hed
- softedge_hedsafe
- softhedge_pidinit
- softhedge_pidsafe
Scribble
En anglais, Scribble veut dire “gribouiller”. Mais on pourrait aussi traduire par “croquis” qui correspond peut-être mieux à l’effet obtenu avec ces ces préprocesseurs - celui d’un dessin à la va-vite.
Selon le préprocesseur choisis, le croquis sera plus ou moins détaillés, avec des lignes plus ou moins précises :
- Scribble HED utilise la détection Holistically-Nested Edge Detection (HED) pour produire des contours comme le ferait une personne réelle. C’est le préprocesseur recommandé pour le coloriage d’un croquis.
- Scribble Pidinet détecte les courbes et les bords droits à d’un réseau Pixel Difference (Pidinet) . Son résultat est assez similaire au HED, mais avec généralement des lignes plus nettes et détaillées.
- Scribble xdog utilise une détection nommée EXtended Difference of Gaussian dont vous pouvez modifier le réglage en adaptant le xDoG threshold pour un résultat plus ou moins détaillé.
Segmentation
La segmentation est une technique utilisée pour séparer et identifier différents objets ou régions au sein d'une image ou d'une scène. Elle consiste à étiqueter chaque pixel ou groupe de pixels afin de créer une « carte » des différentes zones présentes dans l'image.
La segmentation permet de générer de nouvelles images avec une composition cohérente, en préservant l'agencement des objets tout en modifiant leurs attributs visuels. Elle permet aussi de reconstruire les informations manquantes ou de déduire la forme et l'apparence des objets.
Il y a trois préprocesseurs disponibles pour la Segmentation :
- seg_ofade20k : Génère des cartes de segmentation en utilisant le dataset ADE20K, qui est un ensemble de données complet pour la compréhension de scènes et la catégorisation d'objets.
- seg_ofcoco : Produit des cartes de segmentation en utilisant le dataset COCO, largement utilisé pour des tâches de vision par ordinateur telles que la détection d'objets, la segmentation et la génération de légendes.
- seg_ufade20k : Génère également des cartes de segmentation en utilisant le dataset ADE20K, mais est considéré comme ayant une performance inférieure aux deux autres.
Les paramètres ControlNet
Image
C’est ici que vous sélectionnez l’image de référence. Vous pouvez la faire glisser et la déposer dans le cadre ou cliquer sur la zone et sélectionner un fichier à l'aide du navigateur.
L'image de référence sera traitée par le préprocesseur sélectionné plus bas.
L’icône 📝 vous permet de créer une image vide sur laquelle vous pourrez directement dessiné un croquis via l’interface.
L’icône 📷 permet de prendre une photo avec votre webcam ou la caméra de l’appareil que vous utilisez (vous devrez autoriser le navigateur à l’utiliser).
Options
Enable
Il faut cocher la case pour activer le ControlNet.
Si elle n’est pas cochée, les autres paramètres sont ignorés et ControlNet ne sera pas utilisé pour la génération de votre image.
Low VRAM
Si vous avez un GPU avec moins moins de 8Go de VRAM, cocher cette option pour utiliser une fonctionnalité expérimentale utilisant moins de VRAM.
Vous pouvez également la cocher pour économiser en mémoire lorsque vous générer plusieurs images à la fois avec ControlNet.
Pixel Perfect
Quand cette option est cochée, ControlNet utilise la hauteur et la largeur configuré pour votre génération text-to-image pour pré-traiter l’image de référence avec le préprocesseur.
Allow Preview
Cette option active la fenêtre de prévisualisation du prétraitement à côté de l'image de référence. Utilisez l'icône 💥 à côté du menu déroulant du préprocesseur pour prévisualiser sont effet sur l’image de référence.
Choix des modèles
Control Type
Pour vous aider à choisir le modèle ControlNet à utiliser et le préprocesseur qui va avec, vous pouvez choisir un type de contrôleur dans cette liste. Les menus déroulants en dessous n’afficheront alors que les options correspondantes.
Preprocessor
Dans ce menu déroulant, vous pouvez choisir le pré-processeur à utiliser avec ControlNet.
Il est également possible de ne pas utiliser de préprocesseur en utilisant directement une image de référence adapté au modèle ControlNet choisis.
Notez que certains type de contrôleur n’ont pas de pré-processeur associés.
Model
Ici, vous choisissez le modèle à utiliser avec ControlNet.
Control Weight
C’est le poids, ou la force du contrôle appliqué par ControlNet.
Il permet de contrôler le degré de suivi du contrôle par rapport au prompt dans la génération de l’image. Plus le Weight est faible, moins ControlNet demandera à l'image de suivre l’image de référence.
ControlNet step
Vous pouvez configurer à quels moment (Step) de génération text-to-image fonctionne ControlNet.
Starting Step
Le Step auquel ControlNet comment à s’appliquer. 0 signifie que ControlNet intervient dès le début de la génération.
Ending Step
Le Step auquel ControlNet s’arrête. 1 signifie que ControlNet fonctionne jusqu’à la fin de la génération.
Selon le type de contrôleur choisis, vous pouvez adapter les Steps de début et de fin de ControlNet.
Par exemple, étant donné que les premières étapes de la génération définissent la composition globale de l’image, un contrôleur OpenPose pourra déjà définir la pose d’un personnage avec un Ending Step à 0.2 et donc n’intervenir que pendant les premiers 20% de la génération.
Options de préprocesseur
Selon le préprocesseur choisis, une ou plusieurs options seront affichées sous forme de slider.
Preprocessor Resolution
Cette option est disponible pour de nombreux préprocesseur et correspond à la résolution de l’image pré-traiter. Elle est par contre caché si vous sélectionner Pixel Perfect au dessus, puisque dans ce cas ce sont les dimensions définie en text-to-image qui s’appliquent.
Options de préprocesseur
Selon le préprocesseur choisis, une ou plusieurs options seront affichées sous forme de slider.
Preprocessor Resolution
Cette option est disponible pour de nombreux préprocesseur et correspond à la résolution de l’image pré-traiter
Control Mode
Cette option définis le mode de fonctionnement de ControlNet, qui affecte l’importance que va prendre le contrôle appliqué dans la génération de l’image.
Balanced
C’est le mode Equilibré - ControlNet est appliqué à la fois au conditionnement (application du prompt) et au déconditionnement (application du prompt négatif) des étapes d'échantillonnage.
Il s'agit du mode de fonctionnement standard de ControlNet.
My prompt is more important
Dans ce mode, l'effet du ControlNet diminue progressivement par rapport aux instances d'injection U-Net (il y en a 13 dans une étape d'échantillonnage).
En pratique, cela signifie effectivement que votre prompt aura plus d’importance que l’effet du modèle ControlNet.
ControlNet is more important
Avec ce mode, vous allez désactivez ControlNet lors du déconditionnement.
En conséquence, la valeur en CFG choisir pour le text to image va agir comme un multiplicateur de l'effet de ControlNet qui va gagner en importance par rapport au prompt.
Resize Mode
Le mode de redimensionnement détermine comment gérer les différences rapport dimensions entre l’image de référence et celle(s) à générer.
A priori, vous n’avez pas à vous préoccuper de ces options si les images ont le même rapport hauteur/largeur. Encore moins si elles sont les mêmes dimensions.
Just Resize
Redimensionne indépendamment la largeur et la hauteur de l’image de référence pour l'adapter au canevas de l'image.
Cette opération modifie donc rapport hauteur/largeur de l’image.
Crop and Resize
Recadre l’image de référence en la coupant pour que son plus petit côté corresponde à l’image à générée.
Resize en Fill
Redimensionne l'ensemble de l’image de référence pour qu’elle puisse être contenue dans l’image à générée. du vide est ajouté autours de l’image de référence pour la faire correspondre aux rapport hauteur/largeur de l’image à générée.
FAQ ControlNet et dépannage
Comment utiliser plusieurs ControlNet en même temps ?
L’extension ControlNet pour Automatic1111 permet de configurer plusieurs Unit qui dont autant de ControlNet à utiliser.
Chaque Unit permet de sélectionner un modele ControlNet et de le configurer. Cliquez sur l’onglet d’une Unit et cocher l’option Enabled pour l’activer.
ControlNet ne semble pas correctement utiliser l’image du contrôleur. Pourquoi ?
- Assurez-vous d'avoir coché la case Enable dans le panneau de ControlNet.
- Assurez-vous d'avoir sélectionné un preprocessor et le model correspondant.
- Assurez-vous que votre extension ControlNet est entièrement à jour. Allez dans Extensions et cliquez sur Check for updates. Mettez à jour votre extension si nécessaire et redémarrez l'interface WebUI.
Ecrit par