Wrappers de conditionnement LoRA basés sur la zone et nœuds de planification LoRA pour ComfyUI.
- ✨ Caractéristiques
- 📦 Installation
- ✅ Configuration recommandée (multi-zones / multi-sujets)
- 🔧 Nœuds
- 🧩 Dépendances facultatives
- 🧭 Exemple de workflow multi-zones
- 🖼️ Galerie
- 💙 Financement et soutien
- 📄 Licence
- Pipeline de conditionnement basé sur la zone pour les invites multi-sujets et multi-régions.
- Contrôle de force LoRA planifié à un nœud avec une sortie d'aperçu de courbe.
- Pour une composition multi-sujets cohérente dans plusieurs domaines, ControlNet + OpenPose est fortement recommandé via comfyui-openpose-studio.
- Sans ControlNet/OpenPose, la composition multi-sujets et multi-zones est souvent incohérente et peut nécessiter de nombreuses tentatives.
- Python uniquement : aucune dépendance JavaScript ou frontend requise.
- ComfyUI (version récente)
- Python3.10+
- Dépendances facultatives par nœud :
matplotlib
- Clonez ce référentiel dans
ComfyUI/custom_nodes/. - Redémarrez ComfyUI.
- Confirmez que les nœuds apparaissent sous
LoRA Pipeline/.
- Utilisez ControlNet OpenPose (recommandé) : comfyui-openpose-studio.
- Gardez l’invite globale minimale et générale.
- Gardez
global_strengthbas (règle générale : en dessous de0.5). - Équilibrez la force par zone, la force
global_strengthet la force LoRA ; ne maximisez pas toutes les forces. - Exemples de valeurs de référence qui ont bien fonctionné : forces de zone autour de
0.75, forces de LoRA autour de0.90.
| Conditioning Pipeline (Combine) | Conditioning Pipeline (Set Area) | Load LoRA (Scheduled) |
|---|---|---|
![]() |
![]() |
![]() |
Définissez une entrée conditionnée par zone à la fois. Ce nœud définit une région rectangulaire avec une largeur, une hauteur, x et y, puis applique une invite et une force de conditionnement dédiées à cette région dans le cadre d'un pipeline de conditionnement en chaîne.
En un coup d'oeil :
- Utilisez une instance de nœud par invite de région/sujet.
- Chaînez plusieurs instances pour créer un pipeline de conditionnement régional.
- Permet un contrôle multi-sujets propre avant la combinaison finale.
Entrée :
conditioning(CONDITIONING, obligatoire)width,height,x,y(FLOAT, normalisé0.0-1.0)strength(FLOAT, par défaut1.0)pipeline_in(CONDITIONING_PIPELINE, facultatif)
Sorties :
pipeline_out(CONDITIONING_PIPELINE)
Remarques sur le comportement :
- Crée un nouveau pipeline si
pipeline_inn'est pas connecté. - Ajoute une nouvelle entrée régionale lorsque
pipeline_inest connecté. - Maintient les entrées ordonnées afin que vous puissiez créer des piles régionales prévisibles.
- Des intensités de zone inférieures améliorent souvent la qualité globale de l’image, mais réduisent l’autorité de contrôle par zone.
- Équilibrez la force de la zone avec global_strength et la force LoRA dans Create Hook Lora.
Erreurs courantes :
- Fournir des coordonnées de pixels au lieu de valeurs
0.0-1.0normalisées. - Régler
width/heightprès de0et attendre un effet visible. - Oublier de passer le pipeline final dans
Conditioning Pipeline (Combine).
Combinez le conditionnement global positif/négatif avec le pipeline régional pour obtenir des résultats adaptés à la région. Avec Set Area, il s'agit du chemin principal pour les multi-LoRA et les conditionnements séparés par sujet/zone.
En un coup d'oeil :
- Convertit votre pipeline régional en résultats finaux positifs/négatifs.
- Conserve le contexte d'invite global tout en ajoutant un contrôle régional local.
Entrée :
global_positive(CONDITIONING, obligatoire)global_negative(CONDITIONING, obligatoire)pipeline(CONDITIONING_PIPELINE, obligatoire)global_strength(FLOAT, par défaut0.3)
Sorties :
positive_out(CONDITIONING)negative_out(CONDITIONING)areas_out(CONDITIONING_AREAS)
Détails sur areas_out :
areas_out expose la liste des régions de zone configurées sous forme de sortie de données structurées. Chaque entrée contient les coordonnées normalisées (x, y, width, height) et strength définies dans le pipeline via Conditioning Pipeline (Set Area). Connectez areas_out à ComfyUI-OpenPose-Studio pour refléter automatiquement vos zones de conditionnement dans l'éditeur OpenPose — le placement des poses s'alignera sur les régions exactes que vous avez conditionnées. Cette sortie peut également être consommée par toute autre extension ou nœud acceptant des métadonnées de zone pour la génération de masques ou le traitement en aval sensible aux régions.
Remarques sur le comportement :
- Si le pipeline est vide/invalide, les sorties reviennent aux entrées globales et
areas_outest une liste vide. - Applique les entrées régionales, puis une passe de combinaison par défaut pour les régions non couvertes.
global_strengthcontrôle la mesure dans laquelle le contexte mondial entre en concurrence avec les zones locales.- Pousser global_strength trop haut peut réduire l'influence du conditionnement par zone et avoir un impact négatif sur la qualité de l'image.
- Les bons résultats proviennent généralement d'un équilibre entre la force globale, la force par zone et la force LoRA plutôt que de maximiser toutes les valeurs.
Erreurs courantes :
- Nourrir un seul flux de conditionnement au lieu d’un flux positif et négatif.
- Surconduite de
global_strengthet effacement des détails de la zone. - Construire les entrées de la zone mais en oubliant de connecter les sorties combinées au chemin de votre échantillonneur.
Appliquez un LoRA avec une force constante ou une courbe programmée au fil de la progression de la diffusion, dans un nœud propre.
En un coup d'oeil :
- Remplace les chaînes désordonnées de plusieurs nœuds natifs LoRA/control.
- Conserve le timing, l'interpolation et l'aperçu ensemble.
- Câblage graphique plus propre pour le comportement temporel LoRA.
Entrée :
model(MODEL, obligatoire)clip(CLIP, obligatoire)lora_name(STRING, obligatoire)strength_start,strength_end(FLOAT)interpolation(STRING:linear,ease_in,ease_out,ease_in_out)start_percent,end_percent(FLOAT,0.0-1.0)keyframes_count(INT, par défaut4)apply_to_conds(BOOLEAN, facultatif)
Sorties :
model(MODEL)clip(CLIP)curve_preview(IMAGE)
Remarques sur le comportement :
- Si
lora_nameestNone, le modèle/clip est transmis et l'aperçu est toujours rendu. - Si les forces de début et de fin correspondent, elle se comporte comme une application LoRA constante.
- L'aperçu des courbes permet de vérifier rapidement le timing avant les rendus complets.
Erreurs courantes :
- Oublier
matplotliblors de l'utilisation decurve_preview. - Utilisation d'une fenêtre de planification qui ne correspond pas à l'intention de synchronisation de l'échantillonneur.
- On s'attend à ce que ce nœud génère directement
CONDITIONING.
Installez uniquement ce dont vous avez besoin, dans le même environnement Python utilisé par ComfyUI.
- Aperçu de la courbe
ScheduledLoRALoader:python -m pip install matplotlib
Vous pouvez glisser-déposer cette image de flux de travail dans ComfyUI pour importer/charger le graphique complet.
- Utilisez
Create Hook Loranatif pour charger un LoRA et définir l'invite/le conditionnement de zone pour la zone 1. - Connectez ce conditionnement à
Conditioning Pipeline (Set Area)et définissezwidth,height,x,yetstrengthpour cette région.
- Répétez exactement le même schéma : un autre
Create Hook Lora+ un autreConditioning Pipeline (Set Area). - Vous pouvez continuer à répéter ce modèle pour des zones supplémentaires.
- Chaînez
pipeline_outde la zone 1 vers la zone 2 (entrées de pipeline concaténées). - Envoyez
pipeline_outde la dernière zone versConditioning Pipeline (Combine), qui fusionne le pipeline de zone avec le conditionnement global. - Acheminez la sortie combinée directement vers
KSamplerou versControlNet; dans cet exemple, il est acheminé versControlNet.
- OpenPose/ControlNet est facultatif en général, mais pour ce flux de travail de composition multi-sujets et multi-zones spécifique, il est fortement recommandé pour une composition cohérente.
- Voir comfyui-openpose-studio du même auteur (dépôt plus récent).
Le style global signifie appliquer Styler Pipeline une fois à l'image entière, en plus (ou à la place) du conditionnement par zone.
- Règle générale : connectez
Styler PipelineavantKSampler. - Lorsque vous utilisez ControlNet,
Styler Pipelinepeut être connecté soit avant d'appliquer ControlNet, soit après avoir appliqué ControlNet. - En pratique, le résultat est généralement équivalent, alors choisissez l'emplacement le plus pratique dans votre graphique.
- Augmenter trop
global_strengthréduit l’influence relative des conditionnements par zone et peut affaiblir l’identité LoRA/style par zone. - Une résistance globale plus élevée peut également avoir un impact négatif sur la qualité de l’image.
- Gardez
global_strengthbas et gardez l'invite globale minimale/générale. - Règle générale : utilisez des valeurs inférieures à
0.5en général (testées jusqu'à0.5) et évitez de vous fier à un conditionnement global au-delà des conseils généraux. - Réduire la force de LoRA a tendance à réduire l'identité de LoRA ou la fidélité du personnage, tandis que réduire la force de la zone a tendance à réduire le contrôle par zone.
- Il n'est pas recommandé de tout maximiser, car des forces combinées élevées peuvent sacrifier la qualité de l'image. Cela est particulièrement vrai lorsque vous mélangez des LoRA de différents auteurs, ce qui peut produire une qualité incohérente.
- Règle générale pour les LoRA à plusieurs caractères : lorsque cela est possible, utilisez les LoRA du même auteur ou une approche de formation similaire pour des résultats combinés plus cohérents.
| Aperçu | Description |
|---|---|
![]() |
Pipeline de conditionnement — Zones multiples avec ControlNet OpenPose Démontre plusieurs zones verticales avec plusieurs LoRA sans saignement LoRA, en utilisant ControlNet OpenPose. Nécessite comfyui-openpose-studio. |
![]() |
Pipeline de conditionnement — Zones multiples avec ControlNet et style Démontre plusieurs zones et plusieurs LoRA avec un style par zone appliqué à chaque région indépendamment. Nécessite comfyui-openpose-studio et comfyui-styler-pipeline. Ce flux de travail utilise style par zone, ce qui signifie que chaque zone a ses propres styles configurés séparément. Le style global est également possible en connectant le nœud Styler juste avant ControlNet. |
Consultez cet article pour un workflow complet combinant plusieurs zones de conditioning, OpenPose, ControlNet et Styler utilisés simultanément.
Ce plugin est développé et maintenu de manière indépendante, avec l'utilisation régulière d'agents IA payants pour accélérer le débogage, les tests et les améliorations de la qualité de vie. Si vous le trouvez utile, le soutien financier contribue à maintenir le développement de manière régulière.
Votre contribution aide :
- Financez les outils d’IA pour des correctifs plus rapides et de nouvelles fonctionnalités
- Couvrir les travaux de maintenance et de compatibilité en cours sur les mises à jour ComfyUI
- Empêcher les ralentissements de développement lorsque les limites d'utilisation sont atteintes
Tip
Vous ne faites pas de don ? Une star de GitHub ⭐ aide toujours beaucoup en améliorant la visibilité et en aidant davantage d'utilisateurs
Afficher l'adresse de USDC
0xe36a336fC6cc9Daae657b4A380dA492AB9601e73
[!WARNING] Envoyez USDC uniquement sur Arbitrum One. Les transferts envoyés sur tout autre réseau n’arriveront pas et pourront être définitivement perdus.
Licence MIT - voir LICENSE pour le texte intégral.
Entretenu par : andreszs Statut : Développement actif









