Cambia tema

ControlNet in ComfyUI: controllare pose e composizione con OpenPose, Canny e 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 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.

ObiettivoTipo di controlloPreprocessorePesi SD1.5 comuni
Generare una persona in una posa precisaPosaOpenPose / DWPosecontrol_v11p_sd15_openpose
Seguire le linee del riferimentoBordiCannycontrol_v11p_sd15_canny
Preservare piani e composizioneProfonditàDepth (MiDaS / LeReS)control_v11f1p_sd15_depth
Usare uno schizzo come guidaSchizzoScribblecontrol_v11p_sd15_scribble
Preservare contorni morbidiSoft edgeSoftEdge (HED / PiDiNet)control_v11p_sd15_softedge

Considera due aspetti:

  1. OpenPose e DWPose producono punti chiave della posa. DWPose spesso dettaglia meglio corpo, mani e volto ed è utile per gesti ed espressioni.

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

ParametroIntervalloInizioEffettoMetodo di prova
strength0–101.0Influenza della mappaMantieni il seed e varia vicino a 1.0; 0.5–1.5 è l’intervallo di test comune indicato ufficialmente
start_percent0–10Inizio dell’azionePosa e composizione in genere partono da 0; ritarda solo dopo aver validato la base
end_percent0–11Fine dell’azioneSe 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, CLIP e VAE.

Passaggio 2: carica il modello ControlNet

Nodo: Load ControlNet Model

  • Seleziona pesi compatibili con architettura e tipo di mappa.
  • L’uscita CONTROL_NET va 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_aux con 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:

  1. positive e negative attraversano Apply ControlNet.
  2. image riceve la mappa preelaborata.
  3. 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

PreprocessoreSD1.5 comuneRegola SDXLRegola FLUX
Cannycontrol_v11p_sd15_cannyPesi SDXL che accettano CannyPesi documentati per FLUX scelto e Canny
OpenPose / DWPosecontrol_v11p_sd15_openposePesi SDXL che accettano la posaPesi documentati per FLUX scelto e Pose
Depth (MiDaS / LeReS)control_v11f1p_sd15_depthPesi SDXL che accettano DepthPesi documentati per FLUX scelto e Depth
Scribblecontrol_v11p_sd15_scribblePesi SDXL che accettano ScribbleControlla la scheda; non tutti gli Union supportano Scribble
SoftEdge (HED / PiDiNet)control_v11p_sd15_softedgePesi SDXL che accettano SoftEdgeControlla 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

BaseSelezioneCartellaAttenzione
SD1.5La famiglia control_v11*_sd15_* è comuneComfyUI/models/controlnetsd15 indica SD1.5, non SDXL
SDXLUsa pesi marcati per SDXLComfyUI/models/controlnetEsistono più implementazioni; segui la scheda
FLUXUsa ControlNet o Union compatibile con il FLUX sceltoComfyUI/models/controlnetNodi, 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.

  1. Primo ControlNet:

    • Carica OpenPose e una mappa di posa.
    • Prova strength=1.0, start_percent=0, end_percent=0.7.
  2. Secondo ControlNet:

    • Carica Depth e una mappa di profondità.
    • Inizia con strength=0.6, start_percent=0, end_percent=0.6.
  3. 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_percent a 0 all’inizio.
  • Usa end_percent diversi, per esempio 0.7 e 0.6.
  • Per liberare i dettagli tardivi, termina prima invece di spostare il controllo nella seconda metà.

Poi verifica:

  1. Due controlli uguali non sono vietati, ma mappe della stessa struttura spesso aumentano il conflitto.
  2. Preferisci segnali complementari come OpenPose + Depth o OpenPose + Canny.
  3. Fissa il seed e confronta un controllo con due.
  4. Non iniziare con due strength elevati.
  5. Modifica un parametro e salva un workflow riproducibile.
  6. Non aggiungere il secondo finché non vedi l’effetto del primo.

Elenco per la risoluzione dei problemi

ProblemaCausa probabileVerifica
Immagine uguale senza ControlNetMappa scollegata, strength vicino a 0, conditioning originale o architettura errataVisualizza la mappa; controlla image e conditioning; confronta seed fisso; verifica architettura
Posa o linee non corrispondonoPreprocessore errato, mappa incompleta o influenza deboleControlla scheletro/bordi; prova DWPose o Canny; aumenta strength gradualmente
Immagine rigida o deformataForza alta, mappa rumorosa o controllo fino alla fineRiduci strength; pulisci la mappa; porta end_percent da 1 a 0.8 o meno
Preprocessore assenteCustom node non installato o dipendenza fallitaInstalla comfyui_controlnet_aux; riavvia; controlla errori di importazione
SDXL/FLUX non carica o non agiscePesi incompatibili con architettura o nodoControlla base, nodi ed esempio della scheda; non fidarti solo del nome
Apply ControlNet(Old) assenteNodo obsoleto nascostoUsa Apply ControlNet standard; mostra i nodi obsoleti solo per workflow vecchi
Più ControlNet entrano in conflittoMappe opposte, secondario forte o troppe modificheProva separati; fissa seed; riduci secondario; accorcia intervallo; cambia un valore
Le modifiche non si vedonoSeed variabile, mappa povera o catena che evita ControlNetFissa 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:

Creare un workflow ControlNet di base in ComfyUI

Preelaborare un riferimento e inserire il suo segnale strutturale nella catena di campionamento.

  1. 1

    Step 1: Identifica l’architettura base

    Verifica se il checkpoint è SD1.5, SDXL o FLUX e scegli pesi esplicitamente compatibili.
  2. 2

    Step 2: Carica e preelabora il riferimento

    Genera una mappa di posa, contorni o profondità con OpenPose, Canny o Depth.
  3. 3

    Step 3: Carica il modello ControlNet

    Salva i pesi in ComfyUI/models/controlnet e seleziona quelli adatti nel nodo Load ControlNet Model.
  4. 4

    Step 4: Collega Apply ControlNet

    Collega positive, negative, control_net e image preelaborata, quindi invia il conditioning a KSampler.
  5. 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. 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?
Entrambi trasformano una persona in una mappa di punti chiave. DWPose spesso fornisce più dettagli per corpo, mani e volto; OpenPose basta per una posa generale. Verifica comunque il formato previsto nella scheda del modello.
Quale valore di strength conviene usare?
Inizia vicino a 1.0 con lo stesso seed. Aumenta gradualmente se il vincolo è debole e riduci se l’immagine diventa rigida o deformata. L’intervallo ufficiale 0.5–1.5 è un riferimento di test, non una garanzia universale.
Cosa significano start_percent ed end_percent?
Definiscono la parte della diffusione in cui ControlNet agisce. 0.0–0.8 significa dall’inizio all’80%. Posa e composizione in genere iniziano da 0; terminare prima lascia più libertà ai dettagli finali.
Posso usare più ControlNet insieme?
Sì. Collega le uscite positive e negative di un Apply ControlNet agli ingressi equivalenti del successivo e manda le ultime uscite al sampler. Verifica ogni controllo separatamente prima di combinarli.
Quale ControlNet usare con FLUX?
Usa pesi con compatibilità esplicita per il modello FLUX scelto e il workflow ComfyUI corrente. I modelli Union sono un’opzione, ma modalità, nodi e intervalli di forza dipendono dalla scheda specifica.

8 min di lettura · Pubblicato il: 19 lug 2026 · Aggiornato il: 19 lug 2026

Commenti

Accedi con GitHub per lasciare un commento

Easton BlogEaston Blog