Changer le thème

ControlNet dans ComfyUI : maîtriser pose et cadrage avec OpenPose, Canny et Depth

Easton editorial illustration: central orange ControlNet node with visible input and output sockets, three compact reference tiles showing a pose skeleton, Canny edges, and depth contours, one framed output portrait whose pose and composition match the reference tiles

"La documentation officielle d’Apply ControlNet décrit les entrées, la plage de strength et le rôle de start_percent et end_percent."

Une image de référence doit imposer une pose, des lignes et un cadrage. Pourtant, le personnage se déforme, les contours s’effacent et la composition change.

ControlNet ajoute cette contrainte structurelle : OpenPose pour la pose, Canny pour les contours et Depth pour les relations spatiales. Restent les réglages concrets : quelle valeur pour strength, comment lire start_percent et end_percent, et comment éviter les conflits entre plusieurs contrôles ?

Choisissez d’abord préprocesseur et poids selon l’objectif. Réglez ensuite force et plage d’action. Si le résultat dérive encore, vérifiez dans l’ordre les connexions, la compatibilité du modèle de base et les signaux concurrents.

Choisir ControlNet selon l’objectif

La première décision porte sur la structure à conserver, pas sur strength.

ObjectifType de contrôlePréprocesseurPoids SD1.5 courants
Générer une personne dans une pose précisePoseOpenPose / DWPosecontrol_v11p_sd15_openpose
Reprendre les lignes d’une référenceContoursCannycontrol_v11p_sd15_canny
Préserver plans et compositionProfondeurDepth (MiDaS / LeReS)control_v11f1p_sd15_depth
Guider avec un croquisCroquisScribblecontrol_v11p_sd15_scribble
Préserver des contours souplesContours douxSoftEdge (HED / PiDiNet)control_v11p_sd15_softedge

Deux points sont essentiels :

  1. OpenPose et DWPose produisent des points clés de pose. DWPose est souvent plus complet pour le corps, les mains et le visage, utile pour les gestes et expressions.

  2. La sortie du préprocesseur doit correspondre aux poids. Une carte OpenPose exige un modèle de pose. Une carte, des poids ou une architecture incompatibles donnent peu d’effet ou une erreur.

Les poids vont généralement dans ComfyUI/models/controlnet. Redémarrez ComfyUI ou actualisez la liste, puis sélectionnez-les dans Load ControlNet Model.

Tableau des paramètres ControlNet

strength, start_percent et end_percent définissent l’influence et le moment d’action. Utilisez les limites officielles et les valeurs initiales suivantes comme base reproductible.

ParamètrePlageDépartEffetMéthode de test
strength0–101.0Influence de la carteGarder le seed et varier légèrement autour de 1.0 ; 0.5–1.5 est la plage de test courante indiquée officiellement
start_percent0–10Début d’actionPose et composition commencent généralement à 0 ; retarder seulement après validation du réglage de base
end_percent0–11Fin d’actionSi le résultat est trop rigide, tester 0.8 ou moins pour libérer les détails tardifs

Comprendre start_percent et end_percent

Ces valeurs définissent un intervalle, pas un délai. Avec start_percent=0.2 et end_percent=0.8, ControlNet agit seulement entre 20 % et 80 % de la diffusion.

Pose et composition se forment tôt. Pour stabiliser la pose, commencez à 0. Si le résultat est trop contraint, gardez start_percent=0 et passez end_percent de 1 à 0.8 afin de laisser la fin affiner les détails.

La plage complète (start_percent=0, end_percent=1) fournit une base claire. Confirmez d’abord l’effet, puis modifiez un seul paramètre à la fois.

Choisir la valeur de strength

strength règle l’influence de ControlNet. À 0, le contrôle est désactivé. Une valeur plus élevée impose généralement davantage la carte, avec une réponse différente selon les modèles.

Commencez autour de 1.0. Montez par petits pas si la carte est ignorée ; baissez si l’anatomie ou les lignes deviennent rigides. La plage 0.5–1.5 est un repère officiel raisonnable, pas une zone sûre universelle.

Construire le workflow

La chaîne essentielle consiste à charger le modèle de base et ControlNet, prétraiter la référence, appliquer le contrôle aux conditionings positive et negative, puis les envoyer à KSampler.

Étape 1 : charger le modèle de base

Nœud : Load Checkpoint

  • Sélectionnez le checkpoint Stable Diffusion.
  • Identifiez son architecture SD1.5, SDXL ou autre ; ControlNet doit être compatible.
  • Continuez le graphe texte-vers-image avec les sorties MODEL, CLIP et VAE.

Étape 2 : charger le modèle ControlNet

Nœud : Load ControlNet Model

  • Sélectionnez des poids compatibles avec l’architecture et le type de carte.
  • La sortie CONTROL_NET alimente Apply ControlNet.

Étape 3 : charger et prétraiter la référence

Nœuds : Load Image et un préprocesseur tel que OpenPose Preprocessor.

  • Load Image : importez la référence.
  • Préprocesseur : convertissez-la en squelette, contours ou profondeur.
  • Comfy Core ne fournit pas tous les préprocesseurs ; installez au besoin comfyui_controlnet_aux avec ComfyUI Manager.

ControlNet lit la carte prétraitée. Prévisualisez-la pour repérer membres manquants, contours coupés ou profondeur plate avant la génération.

Étape 4 : relier Apply ControlNet

Nœud : Apply ControlNet

  • control_net : depuis Load ControlNet Model.
  • image : depuis le préprocesseur, pas depuis l’image brute.
  • positive : conditioning du prompt positif.
  • negative : conditioning du prompt négatif.
  • strength : commencez à 1.0.
  • start_percent : commencez à 0.
  • end_percent : commencez à 1.

Apply ControlNet produit de nouveaux conditionings positive et negative. Reliez-les à KSampler. Si le sampler reçoit encore les conditionings d’origine, ControlNet est hors de la chaîne.

Étape 5 : générer et comparer

Nœud : KSampler

  • model : depuis Load Checkpoint.
  • positive / negative : depuis Apply ControlNet.
  • latent_image : depuis Empty Latent Image ou une autre source latente.
  • Fixez le seed pour comparer activation et réglages ; sinon le hasard masque l’effet.

Vérifiez trois connexions :

  1. positive et negative traversent Apply ControlNet jusqu’au nœud suivant.
  2. L’entrée image reçoit la carte prétraitée.
  3. Apply ControlNet(Old) est obsolète ; utilisez le nœud standard actuel.

Associer le modèle de base

Les poids et implémentations SD1.5, SDXL et FLUX ne sont pas interchangeables. Identifiez le modèle de base et choisissez une compatibilité explicitement documentée.

Compatibilité entre préprocesseur et modèle

PréprocesseurPoids SD1.5 courantsRègle SDXLRègle FLUX
Cannycontrol_v11p_sd15_cannyPoids SDXL acceptant explicitement CannyPoids documentés pour le FLUX cible et Canny
OpenPose / DWPosecontrol_v11p_sd15_openposePoids SDXL acceptant les points de posePoids documentés pour le FLUX cible et Pose
Depth (MiDaS / LeReS)control_v11f1p_sd15_depthPoids SDXL acceptant une carte DepthPoids documentés pour le FLUX cible et Depth
Scribblecontrol_v11p_sd15_scribblePoids SDXL acceptant ScribbleVérifier la fiche ; tous les modèles Union ne gèrent pas Scribble
SoftEdge (HED / PiDiNet)control_v11p_sd15_softedgePoids SDXL acceptant SoftEdgeVérifier la fiche et le workflow pour l’entrée correspondante

Les modèles Union regroupent plusieurs modes et constituent une option courante avec FLUX. Modes, nœuds et forces utiles dépendent du modèle précis et de la version du workflow.

Tableau de compatibilité des modèles de base

Modèle de baseChoix de ControlNetDossierAttention
SD1.5La famille control_v11*_sd15_* est couranteComfyUI/models/controlnetsd15 désigne SD1.5, pas SDXL
SDXLUtiliser des poids explicitement marqués SDXLComfyUI/models/controlnetPlusieurs implémentations existent ; suivre la fiche du modèle
FLUXUtiliser ControlNet ou Union compatible avec le FLUX cibleComfyUI/models/controlnetNœuds, modes et force sont spécifiques ; ne pas reprendre les valeurs SD1.5

Choisir le modèle de base

Si le modèle de base n’est pas choisi, consultez le guide de sélection des modèles Stable Diffusion. Il compare caractéristiques et ressources ; ici, seule la compatibilité ControlNet est traitée.

Où placer le fichier du modèle ?

Les poids vont généralement dans ComfyUI/models/controlnet. Après téléchargement, redémarrez ComfyUI ou actualisez la liste et sélectionnez-les dans Load ControlNet Model.

Avec beaucoup de fichiers, utilisez des sous-dossiers si votre installation les accepte. Conservez surtout la source et la fiche du modèle : un préfixe ajouté au nom ne prouve pas la compatibilité.

Régler plusieurs ControlNet

Vous pouvez chaîner Apply ControlNet pour contrôler pose et composition. Validez chaque contrôle seul, sinon deux erreurs se confondent dans le même graphe.

Chaîner les nœuds Apply ControlNet

Reliez les sorties positive et negative du premier nœud aux entrées correspondantes du second.

  1. Premier ControlNet :

    • Chargez OpenPose et une carte de pose.
    • Testez strength=1.0, start_percent=0, end_percent=0.7.
  2. Second ControlNet :

    • Chargez Depth et une carte de profondeur.
    • Commencez plus bas : strength=0.6, start_percent=0, end_percent=0.6.
  3. Ordre de connexion :

    • Conditioning du prompt → premier Apply ControlNet → second Apply ControlNet → KSampler.
    • Gardez le même ordre pour positive et negative.

Ces valeurs servent au diagnostic, pas d’optimum. Pose et profondeur décrivent des structures précoces ; démarrez à 0 et différenciez leurs rôles par force et fin d’action.

Principes de réglage

Commencez par la priorité et la plage d’action.

Définissez la priorité :

  • Testez le contrôle principal autour de 1.0.
  • Démarrez le contrôle secondaire plus bas, par exemple 0.5–0.7.
  • Si l’image est tirée dans deux directions, baissez le secondaire avant d’augmenter les deux.

Définissez la plage :

  • Pose et composition doivent agir tôt ; gardez d’abord start_percent à 0.
  • Utilisez des end_percent différents, par exemple 0.7 et 0.6.
  • Pour libérer les détails tardifs, terminez plus tôt plutôt que de déplacer arbitrairement l’action dans la seconde moitié.

Vérifiez ensuite :

  1. Deux contrôles du même type ne sont pas interdits, mais des cartes décrivant la même structure ajoutent souvent conflit et réglage.
  2. Préférez des signaux complémentaires comme OpenPose + Depth ou OpenPose + Canny.
  3. Fixez le seed et comparez un contrôle avec les deux.
  4. Ne démarrez pas avec deux strengths élevés.
  5. Changez un seul paramètre et sauvegardez un workflow reproductible.
  6. N’ajoutez le second ControlNet qu’après un effet visible du premier.

Liste de dépannage

ProblèmeCause probableVérification
L’image est identique sans ControlNetCarte non reliée, strength proche de 0, conditioning d’origine ou architecture incompatiblePrévisualiser la carte ; vérifier image et conditioning ; comparer avec seed fixe ; contrôler l’architecture
Pose ou lignes ne correspondent pasMauvais préprocesseur, carte incomplète ou influence faibleExaminer squelette/contours ; essayer DWPose ou Canny ; monter progressivement strength
Image rigide ou déforméeForce trop élevée, carte bruitée ou contrôle jusqu’à la finBaisser strength ; nettoyer la carte ; passer end_percent de 1 à 0.8 ou moins
Préprocesseur absentCustom node non installé ou dépendance en échecInstaller comfyui_controlnet_aux ; redémarrer ; lire les erreurs d’import au démarrage
Poids SDXL/FLUX sans effetArchitecture ou nœud incompatibleVérifier modèle, nœuds et exemple dans la fiche ; ne pas se fier au seul nom de fichier
Apply ControlNet(Old) absentNœud obsolète masqué par défautUtiliser Apply ControlNet standard ; afficher les nœuds obsolètes seulement pour un ancien workflow
Plusieurs ControlNet se contredisentCartes opposées, secondaire trop fort ou plusieurs changements simultanésTester seuls ; fixer le seed ; baisser le secondaire ; raccourcir la plage ; changer une valeur
Les paramètres semblent sans effetSeed variable, carte pauvre ou chaîne contournant ControlNetFixer seed et sampler ; examiner la carte ; vérifier les sources positive et negative de KSampler

Étapes suivantes

ControlNet prend en charge les structures difficiles à imposer par prompt. Quand le graphe fonctionne, poursuivez avec :

Construire un workflow ControlNet simple dans ComfyUI

Prétraiter une référence et injecter son signal structurel dans la chaîne d’échantillonnage.

  1. 1

    Step 1: Identifier l’architecture de base

    Déterminez si le checkpoint est SD1.5, SDXL ou FLUX, puis choisissez des poids ControlNet explicitement compatibles.
  2. 2

    Step 2: Charger et prétraiter la référence

    Produisez une carte de pose, de contours ou de profondeur avec OpenPose, Canny ou Depth.
  3. 3

    Step 3: Charger le modèle ControlNet

    Placez-le dans ComfyUI/models/controlnet et sélectionnez les poids correspondant au préprocesseur.
  4. 4

    Step 4: Relier Apply ControlNet

    Connectez positive, negative, control_net et l’image prétraitée, puis transmettez le conditioning à KSampler.
  5. 5

    Step 5: Régler avec un seed fixe

    Testez d’abord strength 1.0, start_percent 0 et end_percent 1, puis changez une valeur à la fois.
  6. 6

    Step 6: Valider avant de chaîner

    Testez chaque ControlNet seul, puis réduisez la force ou la plage du contrôle secondaire.

FAQ

Quelle différence entre OpenPose et DWPose ?
Tous deux produisent une carte de points clés. DWPose fournit souvent davantage de points pour le corps, les mains et le visage ; OpenPose suffit pour une pose globale. Vérifiez néanmoins le format attendu dans la fiche du modèle.
Quelle valeur de strength utiliser ?
Commencez autour de 1.0 avec le même seed. Augmentez progressivement si la contrainte est faible et baissez si l’image devient rigide ou déformée. La plage 0.5–1.5 des documents officiels est un repère de test, pas une garantie universelle.
Que signifient start_percent et end_percent ?
Ils définissent la partie du processus de diffusion pendant laquelle ControlNet agit. 0.0–0.8 signifie du début à 80 %. Pour pose et composition, partez généralement de 0 et terminez plus tôt pour libérer les détails tardifs.
Peut-on utiliser plusieurs ControlNet ?
Oui. Reliez les sorties positive et negative d’un nœud Apply ControlNet aux entrées correspondantes du suivant, puis envoyez les dernières sorties au sampler. Validez chaque contrôle séparément avant de les combiner.
Quel ControlNet choisir pour FLUX ?
Choisissez des poids explicitement compatibles avec votre modèle FLUX et le workflow ComfyUI actuel. Les modèles Union sont une option, mais leurs modes, nœuds et plages de force dépendent de leur fiche.

9 min de lecture · Publié le: 19 juil. 2026 · Mis à jour le: 19 juil. 2026

Commentaires

Connectez-vous avec GitHub pour laisser un commentaire

Easton BlogEaston Blog