Intermédiaire 13 minImage

ControlNet : maîtriser la composition de ses images

Réponse directe

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.

Par Mohamed Meguedmi·Màj 2026-09-29·Testé sur Windows, macOS, Linux

#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

Le kit Images IA

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
Ce que capture chaque contrôle, avec les modèles SD 1.5 de ControlNet 1.1
ContrôleCe qu'il capturePour quoiModèle ControlNet 1.1 pour SD 1.5
Contours (canny, softedge, lineart)Lignes et silhouettesConserver une forme exacte : un produit, un logo, un dessin à coloriercontrol_v11p_sd15_canny, _softedge, _lineart, _lineart_anime
ProfondeurLa distance à la caméraGarder le volume et la perspective en changeant matières et détailscontrol_v11f1p_sd15_depth
PoseUn squelette d'articulationsLes personnages : la posture est fixée, le reste est librecontrol_v11p_sd15_openpose
SegmentationDes régions par catégorieLa disposition d'une scène : ciel ici, bâtiment làcontrol_v11p_sd15_seg
Croquis (scribble)Une esquisse grossièreTransformer un dessin à la main en image renduecontrol_v11p_sd15_scribble
NormalesL'orientation des surfacesRelief et détails sensibles à l'éclairagecontrol_v11p_sd15_normalbae
Tuile (tile)Le contenu d'une zone de l'imageAjouter du détail en agrandissantcontrol_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.

Les réglages de ControlNet selon l'outil
RéglageComfyUI (nœud Apply ControlNet)Bibliothèque diffusersExtension AUTOMATIC1111
Force du contrôlestrength : plus la valeur est haute, plus le contrôle influence l'imagecontrolnet_conditioning_scale : le poids donné au contrôleControl Weight : le poids de l'influence du contrôle, comparable à l'emphase d'un mot du prompt
Moment d'applicationstart_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 carteRésolution du préprocesseur, à régler dans le nœud de préprocesseurTaille de l'image de contrôleLe 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.

Valeurs recommandées, d'après les fiches de modèles et la documentation de diffusers
ModèleRéglage recommandéSource
Flux.1 dev, Union Pro 2.0 (Shakker Labs), canny ou soft edgeForce 0,7 ; fin à 0,8Fiche du modèle
Flux.1 dev, Union Pro 2.0, profondeurForce 0,8 ; fin à 0,8Fiche du modèle
Flux.1 dev, Union Pro 2.0, poseForce 0,9 ; fin à 0,65Fiche du modèle
Flux.1 dev, Union Pro 2.0, niveaux de grisForce 0,9 ; fin à 0,8Fiche du modèle
Z-Image Turbo, Fun ControlNet Unioncontrol_context_scale entre 0,65 et 0,80Fiche du modèle
Flux.1 dev, ControlNet canny d'InstantXForce de 0,5 dans l'exemple officielDocumentation de diffusers
SDXL, deux contrôles combinés (canny et profondeur)0,5 pour chacun dans l'exemple officielDocumentation de diffusers
!
Le modèle de contrôle doit correspondre au modèle de base
Un ControlNet est entraîné pour une architecture précise. Un fichier prévu pour SD 1.5 ne fonctionne pas avec SDXL, ni avec Flux. Le symptôme habituel est une sortie qui ignore totalement le contrôle, ou qui dégénère en bruit. Vérifiez toujours la famille indiquée dans la fiche du fichier avant de le télécharger.

#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.

État de l'offre par famille de modèle, à la date de rédaction
FamilleContrôles publiés par l'éditeur du modèleContrôles de la communauté ou de tiers
SD 1.5ControlNet 1.1 par lllyasviel : 14 modèles (canny, profondeur, pose, segmentation, croquis, tuile…)De nombreux modèles dérivés
SDXLControl-LoRA de Stability AI : canny, profondeur, recolor et sketchControlNet canny et profondeur de l'équipe diffusers ; ControlNet Union de xinsir (un fichier, plusieurs modes)
SD 3.5 LargeTrois ControlNets de Stability AI, publiés le 26 novembre 2024 : Blur, Canny et DepthPeu de références comparables
Flux.1 devFLUX.1 Canny et Depth de Black Forest Labs, en modèle complet et en LoRA, publiés en novembre 2024ControlNet Union d'InstantX (version bêta) et Union Pro 2.0 de Shakker Labs
Z-Image TurboAucun sur la page Hugging Face de l'éditeur (Tongyi-MAI) lors de notre vérificationFun 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.

Licences des contrôles, d'après les métadonnées des dépôts Hugging Face et les licences citées
ContrôleLicenceÀ retenir
ControlNet 1.1 pour SD 1.5OpenRAILLicence de type RAIL avec restrictions d'usage
ControlNet canny SDXL de l'équipe diffusersOpenRAIL++Comme SDXL : restrictions d'usage listées en annexe
ControlNet Union SDXL de xinsirApache 2.0Permissive
Control-LoRA de Stability AIStability AI Control-LoRA Community LicenseAu-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 LargeStability AI Community LicenseGratuit pour l'usage commercial sous 1 million de dollars de chiffre d'affaires annuel
FLUX.1 Canny et Depth [dev]Licence FluxDev non commercialeLa 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 FluxLicence FluxDev non commercialeÀ lire avant tout usage commercial
Fun ControlNet Union pour Z-Image TurboApache 2.0Permissive

#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.

Taille des fichiers de contrôle, d'après Hugging Face et Stability AI
ContrôleTaille du fichier
ControlNet 1.1 pour SD 1.5, version d'origine (.pth)1,45 Go chacun
SDXL, ControlNet canny de l'équipe diffusers5 Go en pleine précision, 2,5 Go en demi-précision
SDXL, ControlNet Union de xinsir2,51 Go
SDXL, Control-LoRA de Stability AIEnviron 738 Mo, contre 4,7 Go pour le ControlNet d'origine
SD 3.5 Large, ControlNet canny8,61 Go
Flux.1 dev, ControlNet Union d'InstantX6,6 Go
Flux.1 dev, Union Pro 2.0 de Shakker Labs4,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 Union3,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.

#FAQ

FAQ
À quoi sert ControlNet ?+
À conditionner la génération d'image sur une référence structurelle, contours, profondeur ou squelette de pose, pour que l'image suive cette structure pendant que le prompt gouverne le sujet et le style. La méthode, publiée dans les actes d'ICCV 2023, verrouille le modèle de diffusion et entraîne une copie reliée par des convolutions initialisées à zéro : le modèle d'origine n'est pas réentraîné.
Faut-il une grosse carte graphique pour ControlNet ?+
Il ajoute un second réseau au modèle de base, donc de la mémoire et du temps. Les éditeurs ne publient pas de surcoût général en VRAM. Sur SD 1.5, un contrôle pèse 1,45 Go en version d'origine ; sur SDXL, un Control-LoRA de Stability AI pèse environ 738 Mo contre 4,7 Go. Commencez par un seul contrôle léger, puis montez.
Pourquoi ma sortie ignore-t-elle l'image de contrôle ?+
Le plus souvent, le modèle de contrôle ne correspond pas à la famille du modèle de base (SD 1.5, SDXL, Flux), ou le préprocesseur a produit une carte vide, ou la force est trop basse. Affichez d'abord la carte de contrôle elle-même. Sur les modèles récents, la plage d'application compte aussi : contrôle arrêté trop tôt, il n'a plus d'effet.
Quel contrôle pour la pose d'un personnage ?+
Le conditionnement par pose, qui fixe le squelette d'articulations et laisse libres vêtements, apparence et décor. Sur Flux avec le modèle Union Pro 2.0 de Shakker Labs, la fiche recommande une force de 0,9 et un arrêt à 0,65 du débruitage pour la pose. Les contours verrouilleraient toute la silhouette, ce qui est rarement le but pour un personnage.
ControlNet existe-t-il pour SDXL, Flux et Z-Image ?+
Oui, mais l'origine varie. SDXL : Control-LoRA de Stability AI et modèles de tiers. SD 3.5 Large : trois ControlNets de Stability AI. Flux.1 : FLUX.1 Canny et Depth de Black Forest Labs, dépréciés pour l'API, et modèles Union communautaires. Z-Image Turbo : le Fun ControlNet Union d'Alibaba PAI, avec une valeur conseillée de 0,65 à 0,80.
Peut-on utiliser plusieurs ControlNets à la fois ?+
Oui. La documentation de diffusers conseille de masquer les conditionnements pour qu'ils ne se chevauchent pas et de doser la force de chacun ; son exemple SDXL utilise 0,5 pour le canny et 0,5 pour la profondeur. Dans ComfyUI, on chaîne les nœuds Apply ControlNet. Combinez seulement des contrôles complémentaires, comme la pose et le décor.
Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.