ControlNet (Zhang, Rao, Agrawala, 2023) adaugă unui model de difuzie condiții de intrare suplimentare, ca hărți de contururi, hărți de adâncime sau puncte de poză. În ComfyUI modelul se încarcă cu ControlNetLoader („Load ControlNet Model”) din models/controlnet, iar ControlNetApplyAdvanced, afișat acum „Apply ControlNet”, primește condiționările positive și negative, modelul ControlNet și imaginea de control și scoate cele două condiționări modificate, care merg la KSampler. Vechiul nod cu o singură condiționare apare ca „Apply ControlNet (DEPRECATED)” și este ascuns implicit din căutare.
strength (0–10, implicit 1.0) dă cât de mult contează controlul; cu 0 nodul nu schimbă nimic. start_percent și end_percent (0–1, implicit 0 și 1) limitează intervalul din eșantionare în care controlul este activ: documentația dă exemplul 0.2 pentru început după 20% din proces și 0.8 pentru oprire la 80%. Intrarea opțională vae este cerută de unele modele ControlNet. Mai multe ControlNet se aplică legând nodurile Apply ControlNet în lanț.
Imaginea de control trebuie să fie deja procesată pentru tipul modelului (scribble, canny, depth, openpose…). ComfyUI are nativ „Detect Edges (Canny)” (low_threshold 0.4, high_threshold 0.8 implicit); pentru restul preprocesoarelor documentația trimite la noduri custom ca comfyui_controlnet_aux. Modelele ControlNet sunt specifice arhitecturii: tutorialul de bază folosește ControlNet v1.1 pentru SD1.5, iar pentru FLUX.1 există exemple separate cu modelele Canny și Depth de la Black Forest Labs.
Concepte cheie și caracteristici
| Concept / Parametru | Descriere practică |
|---|---|
positive / negative |
Condiționările de la CLIP Text Encode; ies modificate cu același nume. |
control_net |
Modelul de la Load ControlNet Model (control_net_name din models/controlnet). |
image |
Imaginea de control, deja preprocesată. |
strength |
0.0–10.0, implicit 1.0. |
start_percent / end_percent |
0.0–1.0, implicit 0.0 și 1.0: partea din eșantionare în care controlul e activ. |
vae |
Opțional, pentru modelele ControlNet care îl cer. |
Detect Edges (Canny) |
Nod nativ care produce harta de contururi din image. |
Exemple practice și scenarii reale
Exemplul 1: Schiță controlată cu ControlNet v1.1 (SD1.5)
Fișierele din tutorialul ControlNet al documentației.
models/checkpoints/dreamCreationVirtual3DECommerce_v10.safetensors
models/vae/vae-ft-mse-840000-ema-pruned.safetensors
models/controlnet/control_v11p_sd15_scribble_fp16.safetensors
Load Image (schița) -> Apply ControlNet.image
Load ControlNet Model -> Apply ControlNet.control_net
CLIP Text Encode (+/-) -> Apply ControlNet.positive / .negative -> KSampler
Exemplul 2: Contururi extrase direct în ComfyUI
Load Image -> Detect Edges (Canny) [low 0.4, high 0.8] -> Apply ControlNet.image
Exemplul 3: Control doar în prima parte a eșantionării
Apply ControlNet: strength 1.0, start_percent 0.0, end_percent 0.8
Greșeli frecvente și capcane
- Dai ControlNet-ului imaginea originală în loc de harta procesată. Modelul scribble așteaptă o schiță, modelul depth o hartă de adâncime; procesează imaginea întâi.
- Folosești un ControlNet pentru SD1.5 cu un model SDXL sau FLUX.1. Alege modelul ControlNet făcut pentru arhitectura ta.
- Deschizi un workflow vechi și vezi „Apply ControlNet (DEPRECATED)”. Funcționează încă, dar nu primește negativul; înlocuiește-l cu Apply ControlNet.