È uscito il Corso Java Completo
Torna al blog

Cos'è ControlNet: controllare la composizione delle immagini AI

ControlNet spiegato: come si impone una posa, una prospettiva o una struttura a un'immagine generata, i preprocessori principali e quando conviene usarlo.

Edoardo Midali

Edoardo Midali

Developer · Content Creator

6 min di lettura

Il limite più frustrante della generazione di immagini è che non puoi dire dove vanno le cose. Puoi descrivere una persona che indica verso destra, ma ottenere esattamente quella posa è questione di tentativi. ControlNet risolve proprio questo: separa il "cosa si vede" dal "com'è disposto". È probabilmente lo strumento che più di ogni altro trasforma la generazione in un processo pilotabile.

Cos'è ControlNet

ControlNet è un'estensione che affianca al prompt testuale una guida visiva strutturale: una posa, i contorni di un'immagine, una mappa di profondità. La generazione rispetta quella struttura, mentre il prompt decide l'aspetto.

La differenza rispetto a tutto il resto è netta. Il prompt descrive cosa c'è; ControlNet impone dove sta.

Come funziona

Nei modelli diffusion, a ogni passo il modello stima quale rumore rimuovere, guidato dal significato del prompt.

ControlNet aggiunge una seconda guida che agisce in parallelo. È una copia addestrata di parte del modello, che riceve in ingresso l'immagine di controllo e ne inietta l'informazione strutturale lungo il processo di generazione.

Il risultato pratico: il modello resta libero su stile, colori, materiali e dettagli, ma la disposizione degli elementi è vincolata. Puoi generare cento immagini completamente diverse che hanno tutte esattamente la stessa composizione.

I preprocessori principali

Un ControlNet lavora su un'immagine di controllo che di solito viene estratta automaticamente da un'immagine di riferimento. Il tipo di estrazione determina cosa viene vincolato — ed è la scelta che conta di più.

OpenPose — la posa. Estrae lo scheletro di una figura umana: articolazioni e loro posizione. Vincola la posa e lascia libero tutto il resto: viso, corpo, abbigliamento, ambiente. È il preprocessore più usato, perché la posa è esattamente ciò che il prompt controlla peggio.

Depth — la profondità. Genera una mappa in scala di grigi che indica cosa è vicino e cosa lontano. Vincola la disposizione spaziale della scena mantenendo la libertà su tutto l'aspetto. Ottimo per interni, architettura, composizioni con più piani.

Canny — i contorni. Estrae i bordi netti. È il vincolo più stretto: il risultato mantiene le forme in modo molto fedele. Utile per reinterpretare un'immagine cambiandone completamente lo stile senza toccarne la struttura.

Lineart / Scribble — il disegno. Parte da un disegno a linee, anche approssimativo, e lo trasforma in un'immagine finita. Scribble tollera schizzi molto grezzi, ed è il modo più diretto per andare da un'idea abbozzata a un risultato compiuto.

Segmentation — le aree. Divide l'immagine in regioni per tipo di oggetto — cielo, edificio, vegetazione, persona. Permette di comporre una scena decidendo cosa va dove.

Normal map — le superfici. Cattura l'orientamento delle superfici, utile per conservare il volume e il rilievo degli oggetti.

La regola che conta: scegliere il vincolo giusto

Il criterio pratico è uno solo: quanto vuoi che il risultato resti fedele all'originale?

ServePreprocessore
Solo la posa della figuraOpenPose
La disposizione spazialeDepth
Le forme esatteCanny
Partire da uno schizzoScribble / Lineart
Comporre le aree della scenaSegmentation

L'errore più comune è usare Canny quando serviva OpenPose. Canny vincola i contorni, quindi trascina anche corporatura, vestiti e capelli dell'immagine di partenza: ottieni una copia riverniciata invece di un soggetto nuovo nella stessa posa.

I parametri da conoscere

Oltre alla scelta del preprocessore, contano tre regolazioni:

Il peso del controllo. Quanto la struttura vincola la generazione. Basso: suggerimento. Alto: imposizione rigida che può produrre immagini innaturali. La zona di lavoro tipica sta intorno a 0,7-1,0.

L'intervallo di intervento. Puoi far agire ControlNet solo su una parte dei passi di generazione. Applicarlo nei primi passi e poi rilasciarlo fissa la composizione lasciando al modello libertà sui dettagli finali — spesso il compromesso migliore.

La risoluzione del preprocessore. Influisce su quanto dettaglio viene estratto dall'immagine di controllo.

A cosa serve davvero

I casi in cui fa la differenza:

Pose precise. La ragione principale per cui esiste. Puoi disegnare o riutilizzare uno scheletro e ottenere quella posa esatta, con soggetti sempre diversi.

Coerenza tra immagini. Una serie di illustrazioni con la stessa impostazione compositiva.

Da schizzo a immagine finita. Disegni la composizione grossolanamente e il modello la realizza. È probabilmente l'uso più liberatorio per chi ha un'idea chiara ma non sa disegnare.

Rifare uno stile mantenendo la struttura. Una foto di un edificio trasformata in illustrazione, con l'architettura intatta.

Inserire un prodotto o un oggetto in scene diverse mantenendone la forma.

Architettura e interni. Partendo da un rendering grezzo o da una foto, si generano varianti di finitura e arredo con la stanza che resta la stessa.

ControlNet, LoRA e inpainting: come si combinano

Vale la pena chiarire i ruoli, perché si usano insieme:

  • LoRAchi o che stile — il soggetto e l'aspetto
  • ControlNetdove — la composizione e la struttura
  • Inpaintingcorrezione — sistemare quello che non è venuto

Usati insieme si ottiene un controllo che con il solo prompt è irraggiungibile: un personaggio specifico (LoRA), in una posa definita (ControlNet), con i dettagli sbagliati corretti dopo (inpainting).

È questa combinazione, più che il modello in sé, la ragione per cui chi lavora seriamente con le immagini generate usa Stable Diffusion invece di un servizio chiuso: sono strumenti che richiedono accesso al modello.

I limiti

Serve un'immagine di controllo. Devi averla o crearla: una foto di riferimento, uno schizzo, un manichino di posa. Non nasce dal nulla.

Un vincolo troppo rigido produce immagini innaturali. Se la posa imposta è anatomicamente forzata, il modello la rispetta e il risultato è sgraziato.

Non risolve i difetti classici. Mani e testo restano problematici anche con la posa vincolata.

È legato all'architettura del modello. Un ControlNet è compatibile con certe versioni e non con altre.

Aggiunge complessità. Se ti serve una bella immagine e non una composizione precisa, è una complicazione che non ti serve.

In sintesi

ControlNet affianca al prompt una guida strutturale, separando ciò che si vede da come è disposto. Il prompt decide l'aspetto, l'immagine di controllo decide la composizione.

La scelta che conta è il preprocessore: OpenPose per la posa, Depth per lo spazio, Canny per le forme fedeli, Scribble per partire da uno schizzo. Sbagliare quella scelta è la causa più frequente di risultati inattesi.

Insieme ai LoRA e all'inpainting, è ciò che rende la generazione di immagini un processo controllabile e ripetibile invece di una lotteria — ed è il motivo per cui l'uso professionale passa quasi sempre da strumenti che danno accesso al modello.