Nodurile Apply ControlNet și Load ControlNet Model în ComfyUI & Stable Diffusion / Flux

Control & Fine-Tuning Nivel: avansat

Apply ControlNet adaugă la condiționare o imagine de control (contururi, adâncime, poză, schiță), prin care un model ControlNet impune structura imaginii generate.

Intrări & ieșiri nod
ControlNetApplyAdvanced(positive, negative, control_net, image, strength=1.0, start_percent=0.0, end_percent=1.0, vae=None) -> positive, negative

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.

Noțiuni și module înrudite