ControlNet: controllare la composizione delle proprie images
ControlNet aggiunge a un modello di diffusione una condizione visiva (contorni, profondità, posa) che stabilisce la composizione mentre il prompt governa lo stile. Il suo metodo ha vinto il premio per il miglior articolo a ICCV 2023. Si usa in ComfyUI, Forge o AUTOMATIC1111 ed è disponibile per SD 1.5, SDXL, SD 3.5 Large, Flux.1 e Z-Image Turbo. Attenzione: un controllo funziona solo con la famiglia di modelli per cui è stato addestrato.
Un prompt descrive un contenuto; non descrive una posizione. ControlNet condiziona la generazione di immagini sulla base di una struttura di riferimento, una posa, un contorno, una mappa di profondità, affinché il risultato segua una composizione che decidi tu. Questa guida, aggiornata al 28 settembre 2026, spiega quale controllo scegliere, come regolare la forza e l'intervallo di applicazione, quanto pesano i file in base alla famiglia di modelli e qual è lo stato attuale dell'offerta ufficiale, che è cambiata molto dai tempi di SD 1.5.
#Il problema che risolve
Il testo è un linguaggio poco adatto alla geometria. In un prompt si descrivono un soggetto, uno stile e un'atmosfera, ma la posizione di una mano, l'angolo di un edificio o la sagoma esatta di un prodotto non si possono definire con le parole. Si ripete la generazione con un altro seed e la composizione cambia completamente. ControlNet modifica l'input, non il prompt: fornisci un'immagine che codifica la struttura desiderata, il modello viene condizionato su di essa a ogni fase del denoising e il prompt governa tutto il resto.
Il metodo deriva da un articolo di ricerca: « Adding Conditional Control to Text-to-Image Diffusion Models », di Lvmin Zhang, Anyi Rao e Maneesh Agrawala, pubblicato negli atti di ICCV 2023 e vincitore del premio per il miglior articolo della conferenza, il premio Marr. Il suo abstract descrive il principio: ControlNet blocca il modello di diffusione, riutilizza i suoi strati di codifica preaddestrati come base e collega la copia addestrabile tramite « zero convolutions », strati di convoluzione inizializzati a zero che fanno crescere progressivamente i parametri ed evitano che rumore dannoso perturbi l'addestramento. Gli autori mostrano anche che l'addestramento rimane robusto sia con piccoli insiemi di dati, meno di 50.000 immagini, sia con grandi insiemi, più di un milione.
Cosa cambia per te: si aggiunge un controllo a un modello esistente senza addestrarlo di nuovo, e ogni tipo di controllo è un file separato. È anche per questo che serve il file giusto per la famiglia di modelli corretta.
#Scegliere il tipo di controllo
Immagini e video IA in locale, senza limiti: ComfyUI, Flux, Z-Image, Wan 2.2 sulla tua GPU o sul tuo Mac — workflow pronti da caricare, quadro legale incluso.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
| Controllo | Ciò che cattura | Per cosa | Modello ControlNet 1.1 per SD 1.5 |
|---|---|---|---|
| Contorni (canny, softedge, lineart) | Linee e silhouette | Mantenere una forma esatta: un prodotto, un logo, un disegno da colorare | control_v11p_sd15_canny, _softedge, _lineart, _lineart_anime |
| Profondità | Distanza dalla telecamera | Mantenere il volume e la prospettiva cambiando materiali e dettagli | control_v11f1p_sd15_depth |
| Posa | Uno scheletro di articolazioni | I personaggi: la posa è fissata, il resto è libero | control_v11p_sd15_openpose |
| Segmentazione | Regioni per categoria | La disposizione di una scena: cielo qui, edificio là | control_v11p_sd15_seg |
| Schizzo (scribble) | Un disegno approssimativo | Trasformare un disegno a mano in un'immagine renderizzata | control_v11p_sd15_scribble |
| Normali | L'orientamento delle superfici | Rilievo e dettagli sensibili all'illuminazione | control_v11p_sd15_normalbae |
| Tassello (tile) | Il contenuto di una zona dell'immagine | Aggiungere dettagli ingrandendo | control_v11f1e_sd15_tile |
Il repository ufficiale di ControlNet 1.1 annuncia 14 modelli, di cui 11 pronti per la produzione e 3 sperimentali, tutti denominati secondo un'unica regola. Per la profondità, elenca tre preprocessori accettati: Depth_Midas, Depth_Leres e Depth_Zoe. Un preprocessore è lo strumento che trasforma la tua immagine di riferimento in una mappa di controllo, ad esempio una foto in una mappa di profondità.
La regola pratica: scegli il controllo meno restrittivo che riesca comunque a cogliere ciò che ti interessa. Un condizionamento basato sui contorni di una fotografia riproduce la fotografia: se era questo il risultato desiderato, la generazione era inutile. La profondità o la posa offrono in genere un equilibrio migliore tra aderenza alle istruzioni e creatività.
#Le impostazioni che contano
I nomi variano a seconda dello strumento, ma tre impostazioni ricorrono ovunque. La tabella ne indica i nomi nei tre ambienti più comuni, secondo le rispettive documentazioni.
| Regolazione | ComfyUI (nodo Apply ControlNet) | Libreria diffusers | Estensione AUTOMATIC1111 |
|---|---|---|---|
| Intensità del controllo | strength: più alto è il valore, maggiore è l'influenza del controllo sull'immagine | controlnet_conditioning_scale: il peso assegnato al controllo | Control Weight: il peso dell'influenza del controllo, paragonabile all'enfasi data a una parola nel prompt |
| Momento di applicazione | start_percent e end_percent: 0,2 significa che il controllo inizia al 20% del processo di denoising, 0,8 che si interrompe all'80% | control_guidance_start e control_guidance_end, come frazione dei passaggi (da 0 a 1) | Start e End: la frazione della generazione in cui il controllo inizia e termina |
| Precisione della mappa | Risoluzione del preprocessore, da impostare nel nodo del preprocessore | Dimensione dell'immagine di controllo | La modalità Pixel-Perfect calcola automaticamente la risoluzione ottimale del preprocessore |
L'intensità è la leva più efficace: vicino al massimo, il risultato è rigido, e ridurla corregge la maggior parte delle immagini troppo rigide. Interrompere il controllo prima della fine della rimozione del rumore fissa la composizione lasciando al modello libertà nella resa dei materiali e della luce. L'estensione di AUTOMATIC1111 aggiunge un Control Mode con tre opzioni: Balanced, My prompt is more important e ControlNet is more important, per bilanciare il peso del prompt e del controllo.
#Valori di partenza pubblicati dagli autori dei modelli
Piuttosto che inventare numeri, parti dai dati indicati dagli editori. Variano notevolmente da una famiglia all'altra, il che ricorda che un'impostazione valida per SD 1.5 non si applica automaticamente ad altri modelli.
| Modello | Impostazione consigliata | Fonte |
|---|---|---|
| Flux.1 dev, Union Pro 2.0 (Shakker Labs), canny o soft edge | Intensità 0,7; fine a 0,8 | Scheda del modello |
| Flux.1 dev, Union Pro 2.0, profondità | Forza 0,8; fine a 0,8 | Scheda del modello |
| Flux.1 dev, Union Pro 2.0, posa | Forza 0,9; fine a 0,65 | Scheda del modello |
| Flux.1 dev, Union Pro 2.0, scala di grigi | Forza 0,9; fine a 0,8 | Scheda del modello |
| Z-Image Turbo, Fun ControlNet Union | control_context_scale compreso tra 0,65 e 0,80 | Scheda del modello |
| Flux.1 dev, ControlNet canny di InstantX | Forza di 0,5 nell'esempio ufficiale | Documentazione di diffusers |
| SDXL, due controlli combinati (canny e profondità) | 0,5 per ciascuno nell'esempio ufficiale | Documentazione di diffusers |
#Quale ControlNet per quale famiglia
L'offerta è cambiata molto dai tempi di SD 1.5 e molte guide sono obsolete. La tabella distingue ciò che pubblica il laboratorio che sviluppa il modello da ciò che pubblica la comunità, perché questa distinzione determina la manutenzione e la licenza.
| Famiglia | Controlli pubblicati dall'editore del modello | Controlli della comunità o di terzi |
|---|---|---|
| SD 1.5 | ControlNet 1.1 di lllyasviel: 14 modelli (canny, profondità, posa, segmentazione, schizzo, tile…) | Molti modelli derivati |
| SDXL | Control-LoRA di Stability AI: canny, profondità, recolor e sketch | ControlNet canny e profondità del team diffusers; ControlNet Union di xinsir (un file, più modalità) |
| SD 3.5 Large | Tre ControlNets di Stability AI pubblicati il 26 novembre 2024: Blur, Canny e Depth | Pochi riferimenti comparabili |
| Flux.1 dev | FLUX.1 Canny e Depth di Black Forest Labs, in versione completa e in LoRA, pubblicati nel novembre 2024 | ControlNet Union di InstantX (versione beta) e Union Pro 2.0 di Shakker Labs |
| Z-Image Turbo | Nessuno sulla pagina Hugging Face dello sviluppatore (Tongyi-MAI) al momento della nostra verifica | Fun ControlNet Union di Alibaba PAI: canny, HED, profondità, posa e MLSD |
Due punti meritano di essere menzionati. Innanzitutto, Black Forest Labs ha contrassegnato FLUX.1 Depth e FLUX.1 Canny come deprecati per la propria API, comprese le versioni LoRA: i pesi aperti rimangono disponibili su Hugging Face, ma il produttore non li mantiene più. Inoltre, i modelli «Union» riuniscono più modalità in un unico file, risparmiando spazio su disco, a fronte di un livello di maturità variabile: la scheda del ControlNet Union di InstantX per Flux lo presenta come una prima versione beta, forse non completamente addestrata.
La licenza non segue automaticamente il modello base: ogni file di controllo ne ha una propria, e cambia da file a file.
| Controllo | Licenza | Da ricordare |
|---|---|---|
| ControlNet 1.1 per SD 1.5 | OpenRAIL | Licenza di tipo RAIL con restrizioni d'uso |
| ControlNet canny SDXL del team diffusers | OpenRAIL++ | Come SDXL: restrizioni d'uso elencate nell'appendice |
| ControlNet Union SDXL di xinsir | Apache 2.0 | Permissiva |
| Control-LoRA di Stability AI | Stability AI Control-LoRA Community License | Oltre 1 milione di utenti attivi al mese, è necessaria una licenza di Stability AI per l'uso commerciale |
| ControlNets SD 3.5 Large | Stability AI Community License | Gratuito per uso commerciale con un fatturato annuo inferiore a 1 milione di dollari |
| FLUX.1 Canny e Depth [dev] | Licenza FluxDev non commerciale | La scheda specifica che le immagini generate possono essere utilizzate a fini personali, scientifici e commerciali secondo la licenza |
| Union di InstantX e Union Pro 2.0 di Shakker Labs, per Flux | Licenza FluxDev non commerciale | Leggere prima di qualsiasi utilizzo commerciale |
| Fun ControlNet Union per Z-Image Turbo | Apache 2.0 | Permissiva |
#L'ingombro dei file e il consumo di memoria
Un ControlNet è una rete aggiuntiva che gira accanto al modello di base: aumenta il consumo di VRAM e il tempo necessario per ogni immagine. Le dimensioni dei file, pubblicate su Hugging Face, danno una prima indicazione dell'ordine di grandezza: si sommano ai pesi del modello di base e del suo encoder di testo.
| Controllo | Dimensione del file |
|---|---|
| ControlNet 1.1 per SD 1.5, versione originale (.pth) | 1,45 GB ciascuno |
| SDXL, ControlNet canny del team diffusers | 5 GB in piena precisione, 2,5 GB in mezza precisione |
| SDXL, ControlNet Union di xinsir | 2,51 GB |
| SDXL, Control-LoRA di Stability AI | Circa 738 MB, contro 4,7 GB per il ControlNet originale |
| SD 3.5 Large, ControlNet canny | 8,61 GB |
| Flux.1 dev, ControlNet Union di InstantX | 6,6 GB |
| Flux.1 dev, Union Pro 2.0 di Shakker Labs | 4,28 GB |
| Flux.1 dev, FLUX.1 Depth sotto forma di LoRA (Black Forest Labs) | 1,24 GB, contro 23,8 GB per il modello Canny completo |
| Z-Image Turbo, Fun ControlNet Union | 3,1 GB |
Due insegnamenti. Primo, un controllo sotto forma di LoRA pesa una frazione di un modello completo: Stability AI presenta i suoi Control-LoRA come un modo per rendere il controllo accessibile a una gamma più ampia di schede grafiche consumer. Secondo, bisogna diffidare del formato: i file .pth di ControlNet 1.1 sono pickle Python, che Hugging Face segnala con un avviso di importazione di pickle. Preferisci le versioni .safetensors, che non possono eseguire codice.
Quanta VRAM in più? Gli sviluppatori non indicano un valore generale e la misurazione dipende dal modello e dalla risoluzione. Se la memoria è satura, l'ordine dei rimedi è: abbassare la risoluzione, ridurre il numero di controlli simultanei, poi passare a un controllo più leggero, come un Control-LoRA o una versione a mezza precisione. Per la memoria di base, vedere la guida sulla VRAM.
#Dove usarlo
ControlNet non è un'applicazione autonoma: opera all'interno di un'interfaccia di generazione di immagini. In ComfyUI, due nodi svolgono il lavoro: Load ControlNet, che legge i file della cartella models/controlnet, e Apply ControlNet, che riceve l'immagine di controllo e le impostazioni della tabella riportata sopra. La documentazione di ComfyUI precisa che il nucleo del software non include tutti i preprocessori: spesso serve un'estensione come ComfyUI ControlNet aux. Ricorda che un'estensione è codice eseguito con i tuoi privilegi: installa solo estensioni conosciute. Per Z-Image Turbo, il file di controllo va in un'altra cartella, models/model_patches.
Nell'interfaccia web classica, l'estensione sd-webui-controlnet di AUTOMATIC1111 aggiunge un pannello sotto il prompt. L'ultima notizia pubblicata, relativa alla versione 1.1.454, risale a luglio 2024, così come il suo ultimo commit: funziona ancora su SD 1.5 e SDXL, ma non verrà aggiornata per supportare i modelli recenti. Forge integra direttamente ControlNet, secondo il suo README, senza passare attraverso questa estensione.
#Combinare più controlli contemporaneamente
Nulla impedisce di combinare due controlli, ad esempio un controllo della posa per la postura del personaggio e uno della profondità per l'ambientazione. La documentazione di diffusers dà la regola: per ottenere buoni risultati, applica maschere ai condizionamenti affinché non si sovrappongano e sperimenta con intensità diverse per regolare il peso di ciascun controllo. Il suo esempio SDXL combina canny e profondità con un'intensità di 0,5 ciascuno. In ComfyUI si concatenano i nodi Apply ControlNet. Gli stessi principi valgono per entrambi: combinare solo controlli che riguardano aspetti diversi dell'immagine e ridurre l'intensità di ciascuno, perché gli effetti si sommano.
#Quando il controllo è ignorato
- Il controllo non appare nell'elenco
- Il file si trova nella cartella sbagliata, oppure il suo file di configurazione non ha lo stesso nome del file stesso. In ComfyUI, la cartella è models/controlnet.
- L'output ignora il riferimento
- Incompatibilità tra la famiglia del modello di base e quella del modello di controllo, un preprocessore che ha prodotto una mappa vuota oppure un'intensità troppo bassa. Visualizza la mappa di controllo stessa prima di sospettare altro.
- Le immagini sono rigide e prive di vita
- Intensità troppo alta, oppure controllo applicato durante l'intero processo di denoising. Riduci l'intensità e disattiva il controllo prima della fine.
- Risultato deludente con un modello Union
- Gli autori di Union di InstantX scrivono che anche un modello Union completamente addestrato può dare risultati peggiori rispetto a modelli specializzati, come quello per la posa. Prova un ControlNet dedicato e scrivi un prompt dettagliato, come consiglia la scheda di Shakker Labs.
- Memoria saturata
- Diminuisci la risoluzione, rimuovi un controllo, o usa una versione più leggera del controllo.
- ComfyUI: installare l'interfaccia a grafi
- AUTOMATIC1111: l'interfaccia web classica
- Panoramica della generazione di immagini in locale
- Kit Immagini IA: workflow e impostazioni ControlNet per scheda grafica
- Fonte: il repository ufficiale di ControlNet
- Fonte: il paper originale, ICCV 2023
- Fonte: i Control-LoRA di Stability AI per SDXL
- Fonte: FLUX.1 Tools e la deprecazione di Depth e Canny
#FAQ
A cosa serve ControlNet?+
Serve una scheda grafica potente per ControlNet?+
Perché il mio output ignora l'immagine di controllo?+
Quale controllo usare per la posa di un personaggio?+
Esiste ControlNet per SDXL, Flux e Z-Image?+
È possibile utilizzare più ControlNets contemporaneamente?+
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.