ControlNet : maîtriser la composition de ses images
ControlNet ajoute à un modèle de diffusion une condition visuelle (contours, profondeur, pose) qui fixe la composition pendant que le prompt gouverne le style. Sa méthode a reçu le prix du meilleur article à ICCV 2023. Il vit dans ComfyUI, Forge ou AUTOMATIC1111 et existe pour SD 1.5, SDXL, SD 3.5 Large, Flux.1 et Z-Image Turbo. Attention : un contrôle ne fonctionne qu'avec la famille de modèles pour laquelle il a été entraîné.
Un prompt décrit un contenu ; il ne décrit pas une position. ControlNet conditionne la génération d'image sur une structure de référence, une pose, un contour, une carte de profondeur, pour que le résultat suive une composition que vous décidez. Ce guide, à jour au 28 septembre 2026, explique quel contrôle choisir, comment régler la force et la plage d'application, ce que pèsent les fichiers selon la famille de modèle, et où en est l'offre officielle, qui a beaucoup changé depuis SD 1.5.
#Le problème que ça résout
Le texte est une mauvaise langue pour la géométrie. On décrit un sujet, un style et une ambiance dans un prompt, mais la position d'une main, l'angle d'un bâtiment ou la silhouette exacte d'un produit ne se fixent pas avec des mots. On relance avec une autre graine et la composition change entièrement. ControlNet change l'entrée, pas le prompt : vous fournissez une image qui encode la structure voulue, le modèle est conditionné dessus à chaque étape du débruitage, et le prompt gouverne tout le reste.
La méthode vient d'un article de recherche : « Adding Conditional Control to Text-to-Image Diffusion Models », de Lvmin Zhang, Anyi Rao et Maneesh Agrawala, publié dans les actes d'ICCV 2023 et lauréat du prix du meilleur article de la conférence, le prix Marr. Son résumé décrit le principe : ControlNet verrouille le modèle de diffusion, réutilise ses couches d'encodage préentraînées comme socle, et relie la copie entraînable par des « zero convolutions », des couches de convolution initialisées à zéro qui font croître les paramètres progressivement et évitent qu'un bruit nuisible perturbe l'entraînement. Les auteurs montrent aussi que l'entraînement reste robuste avec de petits jeux de données, moins de 50 000 images, comme avec de grands, plus d'un million.
Ce que cela change pour vous : un contrôle s'ajoute à un modèle existant sans le réentraîner, et chaque type de contrôle est un fichier séparé. C'est aussi pourquoi il faut le bon fichier pour la bonne famille de modèles.
#Choisir le type de contrôle
Images et vidéos IA en local, sans limite : ComfyUI, Flux, Z-Image, Wan 2.2 sur ton GPU ou ton Mac — workflows prêts à charger, cadre légal inclus.
- Espace en ligne à vie
- PDF + fichiers
- Mises à jour à vie
| Contrôle | Ce qu'il capture | Pour quoi | Modèle ControlNet 1.1 pour SD 1.5 |
|---|---|---|---|
| Contours (canny, softedge, lineart) | Lignes et silhouettes | Conserver une forme exacte : un produit, un logo, un dessin à colorier | control_v11p_sd15_canny, _softedge, _lineart, _lineart_anime |
| Profondeur | La distance à la caméra | Garder le volume et la perspective en changeant matières et détails | control_v11f1p_sd15_depth |
| Pose | Un squelette d'articulations | Les personnages : la posture est fixée, le reste est libre | control_v11p_sd15_openpose |
| Segmentation | Des régions par catégorie | La disposition d'une scène : ciel ici, bâtiment là | control_v11p_sd15_seg |
| Croquis (scribble) | Une esquisse grossière | Transformer un dessin à la main en image rendue | control_v11p_sd15_scribble |
| Normales | L'orientation des surfaces | Relief et détails sensibles à l'éclairage | control_v11p_sd15_normalbae |
| Tuile (tile) | Le contenu d'une zone de l'image | Ajouter du détail en agrandissant | control_v11f1e_sd15_tile |
Le dépôt officiel de ControlNet 1.1 annonce 14 modèles, dont 11 prêts pour la production et 3 expérimentaux, tous nommés selon une règle unique. Pour la profondeur, il liste trois préprocesseurs acceptés : Depth_Midas, Depth_Leres et Depth_Zoe. Un préprocesseur est l'outil qui transforme votre image de référence en carte de contrôle, par exemple une photo en carte de profondeur.
La règle pratique : prenez le contrôle le plus lâche qui capture encore ce qui vous importe. Un conditionnement par contours sur une photographie reproduit la photographie : si c'est le résultat voulu, la génération était inutile. La profondeur ou la pose donnent en général un meilleur équilibre entre obéissance et créativité.
#Les réglages qui comptent
Les noms varient selon l'outil, mais trois réglages reviennent partout. Le tableau donne leur nom dans les trois environnements les plus courants, d'après leurs documentations.
| Réglage | ComfyUI (nœud Apply ControlNet) | Bibliothèque diffusers | Extension AUTOMATIC1111 |
|---|---|---|---|
| Force du contrôle | strength : plus la valeur est haute, plus le contrôle influence l'image | controlnet_conditioning_scale : le poids donné au contrôle | Control Weight : le poids de l'influence du contrôle, comparable à l'emphase d'un mot du prompt |
| Moment d'application | start_percent et end_percent : 0,2 signifie que le contrôle commence à 20 % du débruitage, 0,8 qu'il s'arrête à 80 % | control_guidance_start et control_guidance_end, en fraction des étapes (0 à 1) | Start et End : la fraction de la génération où le contrôle commence et s'arrête |
| Précision de la carte | Résolution du préprocesseur, à régler dans le nœud de préprocesseur | Taille de l'image de contrôle | Le mode Pixel-Perfect calcule seul la meilleure résolution de préprocesseur |
La force est le levier le plus efficace : près du maximum, le résultat est rigide, et baisser la force corrige la plupart des images figées. Arrêter le contrôle avant la fin du débruitage fixe la composition tout en laissant le modèle libre sur le rendu des matières et de la lumière. L'extension d'AUTOMATIC1111 ajoute un Control Mode à trois positions : Balanced, My prompt is more important et ControlNet is more important, pour arbitrer entre le prompt et le contrôle.
#Des valeurs de départ publiées par les auteurs des modèles
Plutôt que d'inventer des chiffres, partez de ceux que les éditeurs indiquent. Ils varient nettement d'une famille à l'autre, ce qui rappelle qu'un réglage valable pour SD 1.5 ne se transpose pas.
| Modèle | Réglage recommandé | Source |
|---|---|---|
| Flux.1 dev, Union Pro 2.0 (Shakker Labs), canny ou soft edge | Force 0,7 ; fin à 0,8 | Fiche du modèle |
| Flux.1 dev, Union Pro 2.0, profondeur | Force 0,8 ; fin à 0,8 | Fiche du modèle |
| Flux.1 dev, Union Pro 2.0, pose | Force 0,9 ; fin à 0,65 | Fiche du modèle |
| Flux.1 dev, Union Pro 2.0, niveaux de gris | Force 0,9 ; fin à 0,8 | Fiche du modèle |
| Z-Image Turbo, Fun ControlNet Union | control_context_scale entre 0,65 et 0,80 | Fiche du modèle |
| Flux.1 dev, ControlNet canny d'InstantX | Force de 0,5 dans l'exemple officiel | Documentation de diffusers |
| SDXL, deux contrôles combinés (canny et profondeur) | 0,5 pour chacun dans l'exemple officiel | Documentation de diffusers |
#Quel ControlNet pour quelle famille
L'offre a beaucoup bougé depuis SD 1.5, et beaucoup de guides sont périmés. Le tableau distingue ce que publie le laboratoire du modèle de ce que publie la communauté, car cela conditionne la maintenance et la licence.
| Famille | Contrôles publiés par l'éditeur du modèle | Contrôles de la communauté ou de tiers |
|---|---|---|
| SD 1.5 | ControlNet 1.1 par lllyasviel : 14 modèles (canny, profondeur, pose, segmentation, croquis, tuile…) | De nombreux modèles dérivés |
| SDXL | Control-LoRA de Stability AI : canny, profondeur, recolor et sketch | ControlNet canny et profondeur de l'équipe diffusers ; ControlNet Union de xinsir (un fichier, plusieurs modes) |
| SD 3.5 Large | Trois ControlNets de Stability AI, publiés le 26 novembre 2024 : Blur, Canny et Depth | Peu de références comparables |
| Flux.1 dev | FLUX.1 Canny et Depth de Black Forest Labs, en modèle complet et en LoRA, publiés en novembre 2024 | ControlNet Union d'InstantX (version bêta) et Union Pro 2.0 de Shakker Labs |
| Z-Image Turbo | Aucun sur la page Hugging Face de l'éditeur (Tongyi-MAI) lors de notre vérification | Fun ControlNet Union d'Alibaba PAI : canny, HED, profondeur, pose et MLSD |
Deux points méritent d'être nommés. D'abord, Black Forest Labs a marqué FLUX.1 Depth et FLUX.1 Canny comme dépréciés pour son API, y compris les versions LoRA : les poids ouverts restent disponibles sur Hugging Face, mais l'éditeur ne les maintient plus. Ensuite, les modèles « Union » regroupent plusieurs modes dans un seul fichier, ce qui économise du disque, au prix d'une maturité variable : la fiche du ControlNet Union d'InstantX pour Flux le présente comme une première version bêta peut-être pas entièrement entraînée.
La licence ne suit pas automatiquement le modèle de base : chaque fichier de contrôle a la sienne, et elle change d'un fichier à l'autre.
| Contrôle | Licence | À retenir |
|---|---|---|
| ControlNet 1.1 pour SD 1.5 | OpenRAIL | Licence de type RAIL avec restrictions d'usage |
| ControlNet canny SDXL de l'équipe diffusers | OpenRAIL++ | Comme SDXL : restrictions d'usage listées en annexe |
| ControlNet Union SDXL de xinsir | Apache 2.0 | Permissive |
| Control-LoRA de Stability AI | Stability AI Control-LoRA Community License | Au-delà de 1 million d'utilisateurs actifs par mois, une licence de Stability AI est nécessaire pour l'usage commercial |
| ControlNets SD 3.5 Large | Stability AI Community License | Gratuit pour l'usage commercial sous 1 million de dollars de chiffre d'affaires annuel |
| FLUX.1 Canny et Depth [dev] | Licence FluxDev non commerciale | La fiche précise que les images générées peuvent servir à des fins personnelles, scientifiques et commerciales selon la licence |
| Union d'InstantX et Union Pro 2.0 de Shakker Labs, pour Flux | Licence FluxDev non commerciale | À lire avant tout usage commercial |
| Fun ControlNet Union pour Z-Image Turbo | Apache 2.0 | Permissive |
#Ce que ça coûte en fichiers et en mémoire
Un ControlNet est un réseau supplémentaire qui tourne à côté du modèle de base : il ajoute de la VRAM et du temps par image. Les tailles de fichiers, publiées sur Hugging Face, donnent le premier ordre de grandeur : elles s'ajoutent aux poids du modèle de base et de son encodeur de texte.
| Contrôle | Taille du fichier |
|---|---|
| ControlNet 1.1 pour SD 1.5, version d'origine (.pth) | 1,45 Go chacun |
| SDXL, ControlNet canny de l'équipe diffusers | 5 Go en pleine précision, 2,5 Go en demi-précision |
| SDXL, ControlNet Union de xinsir | 2,51 Go |
| SDXL, Control-LoRA de Stability AI | Environ 738 Mo, contre 4,7 Go pour le ControlNet d'origine |
| SD 3.5 Large, ControlNet canny | 8,61 Go |
| Flux.1 dev, ControlNet Union d'InstantX | 6,6 Go |
| Flux.1 dev, Union Pro 2.0 de Shakker Labs | 4,28 Go |
| Flux.1 dev, FLUX.1 Depth en LoRA (Black Forest Labs) | 1,24 Go, contre 23,8 Go pour le modèle Canny complet |
| Z-Image Turbo, Fun ControlNet Union | 3,1 Go |
Deux enseignements. Premièrement, un contrôle sous forme de LoRA pèse une fraction d'un modèle complet : Stability AI présente ses Control-LoRA comme une manière d'amener le contrôle à un plus large éventail de cartes graphiques grand public. Deuxièmement, il faut se méfier du format : les fichiers .pth de ControlNet 1.1 sont des pickles Python, que Hugging Face signale par un avertissement d'import de pickle. Préférez les versions .safetensors, qui ne peuvent pas exécuter de code.
Combien de VRAM en plus ? Les éditeurs n'annoncent pas de chiffre général, et la mesure dépend du modèle et de la résolution. En cas de mémoire saturée, l'ordre des remèdes est : baisser la résolution, réduire le nombre de contrôles simultanés, puis passer à un contrôle plus léger, comme un Control-LoRA ou une version demi-précision. Pour la mémoire de base, voir le guide sur la VRAM.
#Où l'utiliser
ControlNet n'est pas une application autonome : il vit dans une interface de génération d'images. Dans ComfyUI, deux nœuds font le travail : Load ControlNet, qui lit les fichiers du dossier models/controlnet, et Apply ControlNet, qui reçoit l'image de contrôle et les réglages du tableau plus haut. La documentation ComfyUI précise que le cœur du logiciel n'inclut pas tous les préprocesseurs : il faut souvent une extension comme ComfyUI ControlNet aux. Rappelez-vous qu'une extension est du code exécuté avec vos droits : n'installez que des extensions connues. Pour Z-Image Turbo, le fichier de contrôle se range dans un autre dossier, models/model_patches.
Dans l'interface web classique, l'extension sd-webui-controlnet d'AUTOMATIC1111 ajoute un panneau sous le prompt. Sa dernière entrée d'actualité, la version 1.1.454, date de juillet 2024, comme son dernier commit : elle fonctionne encore sur SD 1.5 et SDXL, mais ne suivra pas les modèles récents. Forge intègre ControlNet directement, d'après son README, sans passer par cette extension.
#Combiner plusieurs contrôles à la fois
Rien n'empêche d'empiler deux contrôles, par exemple une pose pour la posture du personnage et une profondeur pour le décor. La documentation de diffusers donne la règle : pour de bons résultats, masquez les conditionnements pour qu'ils ne se chevauchent pas, et expérimentez avec des forces différentes pour ajuster le poids de chaque contrôle. Son exemple SDXL combine canny et profondeur à 0,5 chacun. Dans ComfyUI, on enchaîne les nœuds Apply ControlNet. Les mêmes principes valent pour les deux : n'empiler que des contrôles qui portent sur des aspects différents de l'image, et baisser la force de chacun, car les effets s'additionnent.
#Quand le contrôle est ignoré
- Le contrôle n'apparaît pas dans la liste
- Le fichier est dans le mauvais dossier, ou son fichier de configuration n'a pas le même nom que lui. Dans ComfyUI, le dossier est models/controlnet.
- La sortie ignore la référence
- Incompatibilité entre la famille du modèle de base et celle du contrôle, préprocesseur qui a produit une carte vide, ou force trop basse. Affichez la carte de contrôle elle-même avant de suspecter autre chose.
- Les images sont figées et sans vie
- Force trop élevée, ou contrôle appliqué pendant tout le débruitage. Baissez la force et arrêtez le contrôle avant la fin.
- Résultat décevant avec un modèle Union
- Les auteurs du Union d'InstantX écrivent que même un modèle Union entièrement entraîné peut être moins bon que des modèles spécialisés, comme celui de la pose. Essayez un ControlNet dédié, et écrivez un prompt détaillé, comme le conseille la fiche de Shakker Labs.
- Mémoire saturée
- Baissez la résolution, retirez un contrôle, ou prenez une version plus légère du contrôle.
- ComfyUI : installer l'interface par graphe
- AUTOMATIC1111 : l'interface web classique
- Panorama de la génération d'images en local
- Le kit Images IA : workflows et réglages ControlNet par carte graphique
- Source : le dépôt officiel de ControlNet
- Source : l'article de recherche original, ICCV 2023
- Source : les Control-LoRA de Stability AI pour SDXL
- Source : FLUX.1 Tools et la dépréciation de Depth et Canny
#FAQ
À quoi sert ControlNet ?+
Faut-il une grosse carte graphique pour ControlNet ?+
Pourquoi ma sortie ignore-t-elle l'image de contrôle ?+
Quel contrôle pour la pose d'un personnage ?+
ControlNet existe-t-il pour SDXL, Flux et Z-Image ?+
Peut-on utiliser plusieurs ControlNets à la fois ?+
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.