ControlNet in ComfyUI: controllare pose e composizione con OpenPose, Canny e Depth

"La documentazione ufficiale di Apply ControlNet descrive ingressi, intervallo di strength e comportamento di start_percent ed end_percent."
Hai un’immagine di riferimento e vuoi conservarne posa, linee e composizione. Il risultato però cambia: la figura si deforma, i contorni si sfocano e l’inquadratura si sposta.
ControlNet aggiunge questa guida strutturale: OpenPose per la posa, Canny per i bordi e Depth per le relazioni spaziali. Restano le regolazioni pratiche: quale strength scegliere, come leggere start_percent ed end_percent e come evitare conflitti tra più controlli?
Scegli prima preprocessore e pesi in base all’obiettivo. Regola poi forza e intervallo di azione. Se il risultato continua a deviare, controlla nell’ordine collegamenti, compatibilità del modello base e segnali concorrenti.
Scelta rapida in base al controllo
La prima decisione riguarda la struttura da preservare, non strength.
| Obiettivo | Tipo di controllo | Preprocessore | Pesi SD1.5 comuni |
|---|---|---|---|
| Generare una persona in una posa precisa | Posa | OpenPose / DWPose | control_v11p_sd15_openpose |
| Seguire le linee del riferimento | Bordi | Canny | control_v11p_sd15_canny |
| Preservare piani e composizione | Profondità | Depth (MiDaS / LeReS) | control_v11f1p_sd15_depth |
| Usare uno schizzo come guida | Schizzo | Scribble | control_v11p_sd15_scribble |
| Preservare contorni morbidi | Soft edge | SoftEdge (HED / PiDiNet) | control_v11p_sd15_softedge |
Considera due aspetti:
-
OpenPose e DWPose producono punti chiave della posa. DWPose spesso dettaglia meglio corpo, mani e volto ed è utile per gesti ed espressioni.
-
L’uscita del preprocessore deve corrispondere ai pesi. Una mappa OpenPose richiede un modello per la posa. Se mappa, pesi o architettura non coincidono, l’effetto sarà minimo o comparirà un errore.
I pesi normalmente vanno in ComfyUI/models/controlnet. Riavvia ComfyUI o aggiorna l’elenco e selezionali in Load ControlNet Model.
Tabella dei parametri ControlNet
strength, start_percent ed end_percent definiscono influenza e momento di azione. Usa i limiti ufficiali e questi valori iniziali come base riproducibile.
| Parametro | Intervallo | Inizio | Effetto | Metodo di prova |
|---|---|---|---|---|
strength | 0–10 | 1.0 | Influenza della mappa | Mantieni il seed e varia vicino a 1.0; 0.5–1.5 è l’intervallo di test comune indicato ufficialmente |
start_percent | 0–1 | 0 | Inizio dell’azione | Posa e composizione in genere partono da 0; ritarda solo dopo aver validato la base |
end_percent | 0–1 | 1 | Fine dell’azione | Se il risultato è rigido, prova 0.8 o meno per liberare i dettagli tardivi |
Capire start_percent ed end_percent
I valori definiscono un intervallo, non un’attesa. Con start_percent=0.2 ed end_percent=0.8, ControlNet agisce solo tra il 20% e l’80% della diffusione.
Posa e composizione si formano presto. Per fissarle, inizia da 0. Se il risultato è rigido, mantieni start_percent=0 e riduci end_percent da 1 a 0.8.
L’intervallo completo (start_percent=0, end_percent=1) è un buon riferimento. Conferma l’effetto e cambia un parametro alla volta.
Scegliere strength
strength regola l’influenza. A 0 disattiva il controllo. Valori maggiori tendono a imporre di più la mappa, ma ogni modello risponde diversamente.
Inizia vicino a 1.0. Aumenta a piccoli passi se la mappa viene ignorata e riduci se anatomia o linee si deformano. 0.5–1.5 è un riferimento ufficiale, non un intervallo sicuro universale.
Costruire il workflow
La catena essenziale carica modello base e ControlNet, preelabora il riferimento, applica il controllo ai conditioning positive e negative e li invia a KSampler.
Passaggio 1: carica il modello base
Nodo: Load Checkpoint
- Seleziona il checkpoint Stable Diffusion.
- Identifica se è SD1.5, SDXL o un’altra architettura.
- Continua il grafo con
MODEL,CLIPeVAE.
Passaggio 2: carica il modello ControlNet
Nodo: Load ControlNet Model
- Seleziona pesi compatibili con architettura e tipo di mappa.
- L’uscita
CONTROL_NETva ad Apply ControlNet.
Passaggio 3: carica e preelabora il riferimento
Nodi: Load Image e un preprocessore come OpenPose Preprocessor.
Load Image: carica il riferimento.- Preprocessore: convertilo in posa, bordi o profondità.
- Comfy Core non include tutti i preprocessori; installa
comfyui_controlnet_auxcon ComfyUI Manager se necessario.
ControlNet legge la mappa preelaborata. Visualizzala per individuare arti, bordi o profondità mancanti prima della generazione.
Passaggio 4: collega Apply ControlNet
Nodo: Apply ControlNet
control_net: da Load ControlNet Model.image: dal preprocessore, non dall’immagine originale.positive: conditioning positivo.negative: conditioning negativo.strength: inizia da 1.0.start_percent: inizia da 0.end_percent: inizia da 1.
Apply ControlNet produce nuovi conditioning. Collegali entrambi a KSampler. Se il sampler riceve ancora gli originali, ControlNet è fuori dalla catena.
Passaggio 5: genera e confronta
Nodo: KSampler
model: da Load Checkpoint.positive/negative: da Apply ControlNet.latent_image: da Empty Latent Image o altra fonte.- Fissa il seed per il confronto; la casualità può nascondere l’effetto.
Controlla tre collegamenti:
- positive e negative attraversano Apply ControlNet.
imagericeve la mappa preelaborata.Apply ControlNet(Old)è obsoleto; usa il nodo standard.
Compatibilità con il modello base
SD1.5, SDXL e FLUX non condividono automaticamente pesi e implementazioni. Identifica il modello base e scegli compatibilità documentata.
Compatibilità tra preprocessore e modello
| Preprocessore | SD1.5 comune | Regola SDXL | Regola FLUX |
|---|---|---|---|
| Canny | control_v11p_sd15_canny | Pesi SDXL che accettano Canny | Pesi documentati per FLUX scelto e Canny |
| OpenPose / DWPose | control_v11p_sd15_openpose | Pesi SDXL che accettano la posa | Pesi documentati per FLUX scelto e Pose |
| Depth (MiDaS / LeReS) | control_v11f1p_sd15_depth | Pesi SDXL che accettano Depth | Pesi documentati per FLUX scelto e Depth |
| Scribble | control_v11p_sd15_scribble | Pesi SDXL che accettano Scribble | Controlla la scheda; non tutti gli Union supportano Scribble |
| SoftEdge (HED / PiDiNet) | control_v11p_sd15_softedge | Pesi SDXL che accettano SoftEdge | Controlla scheda e workflow per quell’ingresso |
I modelli Union raccolgono più modalità e sono un’opzione per FLUX. Modalità, nodi e forze utili dipendono dal modello e dalla versione del workflow.
Tabella di compatibilità della base
| Base | Selezione | Cartella | Attenzione |
|---|---|---|---|
| SD1.5 | La famiglia control_v11*_sd15_* è comune | ComfyUI/models/controlnet | sd15 indica SD1.5, non SDXL |
| SDXL | Usa pesi marcati per SDXL | ComfyUI/models/controlnet | Esistono più implementazioni; segui la scheda |
| FLUX | Usa ControlNet o Union compatibile con il FLUX scelto | ComfyUI/models/controlnet | Nodi, modalità e forza sono specifici; non copiare SD1.5 |
Scegliere il modello base
Se non lo hai ancora scelto, consulta la guida alla scelta dei modelli Stable Diffusion. Confronta caratteristiche e risorse; qui trattiamo solo la compatibilità.
Dove salvare il modello
I pesi vanno normalmente in ComfyUI/models/controlnet. Riavvia o aggiorna l’elenco e selezionali in Load ControlNet Model.
Con molti file, usa sottocartelle compatibili. Conserva origine e model card: un prefisso inventato non dimostra compatibilità.
Regolare più ControlNet
Puoi concatenare Apply ControlNet per posa e composizione. Prova ogni controllo da solo prima di mescolare due problemi.
Concatenare Apply ControlNet
Collega le uscite positive e negative del primo agli ingressi equivalenti del secondo.
-
Primo ControlNet:
- Carica OpenPose e una mappa di posa.
- Prova
strength=1.0,start_percent=0,end_percent=0.7.
-
Secondo ControlNet:
- Carica Depth e una mappa di profondità.
- Inizia con
strength=0.6,start_percent=0,end_percent=0.6.
-
Ordine:
- Conditioning → primo Apply ControlNet → secondo Apply ControlNet → KSampler.
- Mantieni lo stesso ordine in positive e negative.
Sono valori diagnostici, non ottimali. Posa e profondità sono strutture iniziali; parti da 0 e separa i ruoli con forza e termine.
Principi di regolazione
Inizia da priorità e intervallo.
Definisci la priorità:
- Prova il controllo principale vicino a 1.0.
- Inizia il secondario a 0.5–0.7.
- Se tirano in direzioni opposte, riduci il secondario prima di aumentare entrambi.
Definisci l’intervallo:
- Posa e composizione agiscono presto; lascia
start_percenta 0 all’inizio. - Usa
end_percentdiversi, per esempio 0.7 e 0.6. - Per liberare i dettagli tardivi, termina prima invece di spostare il controllo nella seconda metà.
Poi verifica:
- Due controlli uguali non sono vietati, ma mappe della stessa struttura spesso aumentano il conflitto.
- Preferisci segnali complementari come OpenPose + Depth o OpenPose + Canny.
- Fissa il seed e confronta un controllo con due.
- Non iniziare con due strength elevati.
- Modifica un parametro e salva un workflow riproducibile.
- Non aggiungere il secondo finché non vedi l’effetto del primo.
Elenco per la risoluzione dei problemi
| Problema | Causa probabile | Verifica |
|---|---|---|
| Immagine uguale senza ControlNet | Mappa scollegata, strength vicino a 0, conditioning originale o architettura errata | Visualizza la mappa; controlla image e conditioning; confronta seed fisso; verifica architettura |
| Posa o linee non corrispondono | Preprocessore errato, mappa incompleta o influenza debole | Controlla scheletro/bordi; prova DWPose o Canny; aumenta strength gradualmente |
| Immagine rigida o deformata | Forza alta, mappa rumorosa o controllo fino alla fine | Riduci strength; pulisci la mappa; porta end_percent da 1 a 0.8 o meno |
| Preprocessore assente | Custom node non installato o dipendenza fallita | Installa comfyui_controlnet_aux; riavvia; controlla errori di importazione |
| SDXL/FLUX non carica o non agisce | Pesi incompatibili con architettura o nodo | Controlla base, nodi ed esempio della scheda; non fidarti solo del nome |
| Apply ControlNet(Old) assente | Nodo obsoleto nascosto | Usa Apply ControlNet standard; mostra i nodi obsoleti solo per workflow vecchi |
| Più ControlNet entrano in conflitto | Mappe opposte, secondario forte o troppe modifiche | Prova separati; fissa seed; riduci secondario; accorcia intervallo; cambia un valore |
| Le modifiche non si vedono | Seed variabile, mappa povera o catena che evita ControlNet | Fissa seed e sampler; controlla mappa; verifica positive e negative di KSampler |
Passaggi successivi
ControlNet controlla strutture difficili da esprimere solo con il prompt. Quando il grafo funziona, continua con:
- Installare ComfyUI e conoscere l’interfaccia: punto di partenza se non è installato.
- Riutilizzare e correggere i workflow ComfyUI: salvare, caricare e risolvere nodi mancanti.
- Creare template di prompt per Stable Diffusion: ControlNet per la struttura e prompt per soggetto, stile e dettagli.
Creare un workflow ControlNet di base in ComfyUI
Preelaborare un riferimento e inserire il suo segnale strutturale nella catena di campionamento.
- 1
Step 1: Identifica l’architettura base
Verifica se il checkpoint è SD1.5, SDXL o FLUX e scegli pesi esplicitamente compatibili. - 2
Step 2: Carica e preelabora il riferimento
Genera una mappa di posa, contorni o profondità con OpenPose, Canny o Depth. - 3
Step 3: Carica il modello ControlNet
Salva i pesi in ComfyUI/models/controlnet e seleziona quelli adatti nel nodo Load ControlNet Model. - 4
Step 4: Collega Apply ControlNet
Collega positive, negative, control_net e image preelaborata, quindi invia il conditioning a KSampler. - 5
Step 5: Regola con seed fisso
Prova prima strength 1.0, start_percent 0 ed end_percent 1, poi modifica un solo valore alla volta. - 6
Step 6: Verifica prima della concatenazione
Prova ogni ControlNet da solo e riduci forza o intervallo del controllo secondario.
FAQ
Qual è la differenza tra OpenPose e DWPose?
Quale valore di strength conviene usare?
Cosa significano start_percent ed end_percent?
Posso usare più ControlNet insieme?
Quale ControlNet usare con FLUX?
8 min di lettura · Pubblicato il: 19 lug 2026 · Aggiornato il: 19 lug 2026
Guida pratica a ComfyUI e Stable Diffusion
Se arrivi dalla ricerca, il modo più veloce per orientarti è passare all’articolo precedente o successivo della stessa serie.
Precedente
Guida ai prompt per Stable Diffusion: template per prodotti, avatar, poster e asset di gioco
Non sai come scrivere un template di prompt per Stable Diffusion? Questa guida usa prodotti, avatar, poster e asset di gioco per spiegare prompt positivo, Negative prompt, pesi, iterazione in ComfyUI e controlli commerciali.
Parte 4 di 5
Successivo
Questo è l’articolo più recente della serie per ora.



Commenti
Accedi con GitHub per lasciare un commento