Comment utiliser plusieurs ControlNet dans ComfyUI
Cet article explique comment combiner plusieurs ControlNet dans ComfyUI en enchaînant les nœuds Apply ControlNet pour un contrôle et des effets de génération plus précis.
Dans ControlNet, plusieurs ControlNet peuvent être combinés pour un contrôle plus précis. Par exemple, lors de la génération de personnages, si des désalignements corporels apparaissent, il est possible d'ajouter une profondeur pour garantir la bonne relation avant-arrière des membres.
Dans cet article, j'utiliserai OpenPose et Lineart pour réaliser une transformation de style d'image.
- OpenPose est utilisé pour contrôler la posture des personnages
- Lineart est utilisé pour maintenir la cohérence des vêtements et des caractéristiques faciales des personnages
L'essentiel est de chaîner les conditions des nœuds Apply ControlNet lors de l'utilisation de plusieurs ControlNet.
Pour plus d'informations sur le contrôle des phases de ControlNet, vous pouvez consulter Instructions d'utilisation du nœud Apply ControlNet.
Étapes pour utiliser plusieurs ControlNet dans ComfyUI
1. Installer les plugins nécessaires
Si vous avez déjà étudié d'autres tutoriels sur ComfyUI Wiki, vous devriez avoir installé les plugins correspondants, donc vous pouvez ignorer cette étape.
Comme ComfyUI Core ne comprend pas de préprocesseur d'image Depth, il est nécessaire de télécharger à l'avance le plugin de prétraitement correspondant. Ce tutoriel nécessite d'utiliser le plugin ComfyUI ControlNet Auxiliary Preprocessors pour générer des cartes de profondeur.
Il est recommandé d'utiliser ComfyUI Manager pour l'installation. Pour des instructions sur l'installation des plugins, vous pouvez consulter Tutoriel d'installation des plugins ComfyUI, qui est assez détaillé.
La dernière version de ComfyUI Desktop a déjà préinstallé le plugin ComfyUI Manager.
2. Télécharger les modèles
Tout d'abord, vous devez télécharger les modèles suivants :
| Type de modèle | Fichier modèle | Lien de téléchargement |
|---|---|---|
| Modèle de base SD1.5 | dreamshaper_8.safetensors (optionnel) | Civitai |
| Modèle OpenPose ControlNet | control_v11p_sd15_openpose.pth (requis) | Hugging Face |
| Lineart | control_v11p_sd15_lineart.pth (requis) | Hugging Face |
Le modèle de version SD1.5 peut utiliser le modèle sur votre propre ordinateur, mais dans ce tutoriel, j'utilise le modèle dreamshaper_8 comme exemple.
Veuillez placer les fichiers de modèle selon la structure suivante :
📁ComfyUI
├── 📁models
│ ├── 📁checkpoints
│ │ └── 📁SD1.5
│ │ └── dreamshaper_8.safetensors
│ ├── 📁controlnet
│ │ └── 📁SD1.5
│ │ └── control_v11p_sd15_openpose.pth
│ │ └── control_v11p_sd15_lineart.pth3. Fichier de flux de travail et image d'entrée
Téléchargez le fichier de flux de travail et l'image ci-dessous
4. Importer le flux de travail dans ComfyUI pour charger l'image à générer
- Chargez le modèle Checkpoint SD1.5 correspondant au numéro
1 - Chargez l'image d'entrée au numéro
2 - Chargez le modèle OpenPose ControlNet au numéro
3 - Chargez le modèle Lineart ControlNet au numéro
4 - Utilisez Queue ou le raccourci
Ctrl+Enterpour exécuter le flux de travail et générer l'image
Scénarios de combinaison de ControlNet
1. Conception de visualisation architecturale
Combinaison de ControlNet
Canny Edge + Depth Map + MLSD Line Detection
Plan de configuration des paramètres
| Type de ControlNet | Fonction principale | Poids recommandé | Suggestions de paramètres de préprocesseur | Phase |
|---|---|---|---|---|
| Canny | Garantir des contours architecturaux précis | 0.9-1.0 | Seuil bas : 50, seuil haut : 150 | Phase un |
| Depth | Construire une perspective spatiale tridimensionnelle | 0.7-0.8 | Modèle MiDaS, amélioration du contraste Boost activée | Phase deux |
| MLSD | Corriger la déformation des lignes pour préserver la précision géométrique | 0.4-0.6 | Longueur de ligne minimale : 15, distance maximale entre lignes : 20 | Phase trois |
2. Génération dynamique de personnages
Combinaison de ControlNet
OpenPose Pose + Lineart Sketch + Scribble Color Blocks
Plan de configuration des paramètres
| Type de ControlNet | Fonction principale | Poids recommandé | Suggestions d'adaptation de résolution | Stratégie de collaboration |
|---|---|---|---|---|
| OpenPose | Contrôler la posture et les actions globales du personnage | 1.0 | Maintenir la cohérence avec la taille de sortie | Réseau de contrôle principal |
| Lineart | Affiner les traits du visage et les détails de l'équipement | 0.6-0.7 | Activer le mode Anime | Intervention en milieu et fin de processus |
| Scribble | Définir les couleurs des vêtements et la répartition des textures | 0.4-0.5 | Utiliser le préprocesseur SoftEdge | Affecte uniquement le calque de couleur |
3. Conception de concepts de produits
Combinaison de ControlNet
HED Soft Edge + Depth Depth of Field + Normal Normal Map
Plan de configuration des paramètres
| Type de ControlNet | Fonction principale | Plage de poids | Paramètres de préprocesseur clés | Effet |
|---|---|---|---|---|
| HED | Capturer les bords doux et les transitions de surface des produits | 0.8 | Flou gaussien : σ=1.5 | Contrôler la douceur des contours |
| Depth | Simuler une lumière et une ombre réalistes avec un flou d'arrière-plan | 0.6 | Mode d'amélioration du premier plan | Construire des calques spatiaux |
| Normal | Améliorer les détails de surface et les propriétés réfléchissantes des matériaux | 0.5 | Taille de génération : 768x768 | Améliorer les détails du matériau |
4. Rendu de l'atmosphère d'une scène
Combinaison de ControlNet
Segmentation Partition + Shuffle Color Tone + Depth Layers
Stratégie de contrôle des calques
| Calque de contrôle | Fonction principale | Poids | Zone d'effet | Moment d'intervention |
|---|---|---|---|---|
| Seg | Division des zones d'éléments de la scène (ciel/bâtiment) | 0.9 | Composition globale | Contrôle total |
| Shuffle | Contrôler la tonalité globale et le transfert de style | 0.4 | Répartition des couleurs | Intervention en milieu et fin de processus |
| Depth | Créer un effet de profondeur et des calques spatiaux | 0.7 | Zone de flou d'arrière-plan | Intervention précoce |
Commentaires
Connectez-vous avec GitHub pour rejoindre la discussion.