ControlNet Canny in ComfyUI

Image

ControlNet Canny in ComfyUI

Se usi ComfyUI da un po’, lo sai già, la differenza tra “generare immagini carine” e “ottenere esattamente quella posa, quella silhouette e quella struttura” sta quasi sempre nel controllo. E quando parliamo di controllo, uno dei mattoni più pratici e immediati è ControlNet con preprocess Canny. È la soluzione da smanettoni per tenere fermo lo scheletro dell’immagine mentre lasci al modello la libertà di inventare texture, luce e stile. Partiamo daun workflow di base.

Nel workflow partendo da sinistra: il blocco di caricamento immagine, il preprocess con dentro Canny, il nodo “Z-Image-Turbo Fun Control to Image” e infine il salvataggio), la logica è lineare, prima prendi un’immagine di riferimento, ne estrai i contorni con Canny e dai quei contorni in pasto al modello come guida strutturale, generi, poi salvi.

Stai trasformando una foto (o un render, o uno screenshot) in una “mappa di bordi” che descrive dove finiscono e iniziano le forme principali. Quella mappa diventa un vincolo che non dice al modello “disegna una persona”, gli dice “rispetta questi bordi”. Il modello riempie tutto il resto con il suo sapere (dataset, stile, texture, luci), ma con un guinzaglio. E se quel guinzaglio è tarato bene, ottieni immagini coerenti, ripetibili e molto più direzionabili.

Load Image

Qui carichi l’immagine di input. È la fonte di verità per la geometria. Il nodo espone un’uscita IMAGE (e spesso anche MASK). Dal punto di vista mentale, questa immagine non è “quello che vuoi ottenere”, è “il vincolo strutturale” (o almeno, lo sarà dopo il preprocess).

Piccola nota da smanettone: la risoluzione e il contenuto della reference contano. Se carichi un’immagine troppo rumorosa o troppo compressa, Canny potrebbe impazzire e produrre bordi sporchi. Se carichi un’immagine con forme molto pulite (render, illustrazione, foto ben esposta), Canny lavora meglio e ti restituisce linee più sensate.

Image preprocess

Gestisce dimensioni e metodo di resize (si vede “lanczos”) e prepara l’immagine per il preprocess successivo. Questo è un passaggio sottovalutato.

Perché? Perché ControlNet, per funzionare bene, vuole che la guida (il control image) sia nella stessa “scala” dell’immagine che genererai. Se ridimensioni male o ritagli male, i bordi che estrai non corrispondono più alle proporzioni della generazione finale. E quando la guida non corrisponde, il modello si sente “tirato” in due direzioni: da una parte la tua control map, dall’altra il prompt e la sua prior.

“Lanczos” è spesso scelto perché fa un resize pulito, con meno aliasing rispetto a metodi più grezzi. Meno aliasing significa bordi più stabili quando poi fai Canny. È un dettaglio da nerd, ma ha effetti visibili: bordi più “seghettati” diventano contorni più rumorosi, e contorni rumorosi diventano una guida che costringe male.

Canny

Canny è un edge detector classico (computer vision “old school”, ma ancora super efficace). In pratica prova a capire dove ci sono cambi netti di intensità (contrasti) e li trasforma in linee. Il risultato è una mappa quasi binaria: linee chiare su fondo scuro, una specie di “disegno tecnico” delle forme.

Canny riduce l’immagine a struttura. Non porta dietro colori, texture, rumore fotografico. Porta dietro “la forma”. E al modello, spesso, basta questo per rispettare pose e silhouette.

Il low threshold decide quanto sei permissivo nel considerare un bordo “valido” nella fase iniziale. Se lo tieni basso, Canny cattura più bordi, inclusi quelli deboli (micro-contrasti, dettagli minuti, grana, capelli, texture dei vestiti, pattern del muro). Se lo alzi, Canny diventa più selettivo: ignora i dettagli e tende a tenere solo forme più nette.

L’high threshold decide quanto un bordo deve essere “forte” per essere accettato come bordo certo. È una soglia più severa. L’idea classica è che i bordi molto forti passano subito, quelli intermedi possono passare se “connessi” a bordi forti (hysteresis). Tradotto con high threshold alto, tieni solo contorni davvero decisi e perdi tutto ciò che è delicato. Con high threshold più basso, accetti più linee come strutturali.

Se Canny mostra solo due o tre contorni giganti e perde parti importanti del soggetto (esempio: spariscono gli occhi, spariscono i bordi del viso, la silhouette del corpo si interrompe), sei troppo aggressivo, quindi low e/o high sono troppo alti. Il modello allora non ha abbastanza struttura e “scappa”: cambia posa, sposta elementi, ricompone la scena.

La zona buona è quando guardi la Canny map e riconosci immediatamente il soggetto e la scena, ma senza vedere rumore inutile. Devi poter dire “ok, questa è la posa” e basta, non “ok, qui vedo anche la trama della maglietta punto per punto”.

Preview Image

Con Canny, la preview è fondamentale perché è l’unico modo rapido per tarare low/high threshold senza generare dieci immagini. Prima guardi la mappa bordi, poi generi. Se fai il contrario, stai sprecando risorse.

Il comportamento da smanettone efficiente è: carichi reference, preprocess, guardi mappa Canny, aggiusti threshold finché la mappa “assomiglia” a ciò che vuoi preservare, poi lanci la generazione.

Z-Image-Turbo

Questo è il nodo “generativo”, quello che prende il control image (la mappa Canny) e la usa per guidare il modello. Qui avviene la magia, dove la rete generativa non vede più solo testo, vede testo + vincolo spaziale.

La cosa importante da capire è che ControlNet non è un “filtro” sul risultato finale. È una condizione, un segnale aggiuntivo che entra nel processo di denoising. In altre parole, mentre l’immagine viene “tirata fuori dal rumore”, la rete riceve continuamente l’indicazione “queste linee devono rimanere qui”. Se il peso di controllo è forte, il modello segue le linee in modo quasi ossessivo. Se è debole, le considera un suggerimento.

Save Image

Il nodo “Save Image” prende l’immagine finale e la salva con un prefisso. Usa prefissi informativi quando stai tarando Canny. Se stai facendo test, salvare come “canny_010_032_seedX” ti permette di tornare indietro e capire perché una versione funzionava.

Le trappole di Canny

Canny è forte, ma non è magico. Ci sono tre trappole ricorrenti.

La prima è quando la reference ha illuminazione complicata. Ombre dure o riflessi possono diventare bordi. Il modello poi cerca di “rispettare” quei bordi e ti ritrovi con pieghe strane o contorni fantasma. Te ne accorgi guardando la Canny map: se vedi linee che non sono contorni di oggetti ma tagli di luce, sai già che stai importando un vincolo sbagliato. In questi casi spesso basta alzare low per eliminare linee deboli e lasciare solo la struttura.

La seconda è quando la reference è troppo dettagliata. Capelli, texture, pattern, scritte. Canny li cattura e tu stai letteralmente chiedendo al modello di seguire un labirinto. Il risultato può essere un’immagine “impastata” o piena di contorni di troppo. Anche qui la preview ti salva: se la mappa sembra una stampa serigrafica piena di tratteggi, è troppo.

La terza è la mismatch di scala. Se preprocessi a una dimensione e generi a un’altra con ratio diverso, ti ritrovi contorni stirati o compressi. Il modello prova a inseguirli e ottieni deformazioni. Questo è il motivo per cui il blocco di preprocess e il metodo di resize contano più di quanto sembra.

Per una sessione di tuning, io terrei la preview della Canny map sempre visibile e farei piccole variazioni dei threshold, una alla volta. Basta allenare l’occhio. Dopo un po’ capisci al volo se la mappa è “troppo piena” o “troppo vuota”, e quindi se devi aumentare o diminuire low/high.

Facciamo pratica

Non c’è niente che chiarisca le idee meglio di un confronto diretto. Mettiamo fianco a fianco Canny Map, prompt e risultato finale. È un triangolo di forze che, quando lo bilanci bene, ti regala immagini sorprendenti con pochissimo sforzo.

Plaintext
traditional illustration on cold-press cotton paper, ink and watercolor painting, expressive black ink linework, subtle line weight variation, slightly broken lively contours, delicate hatching, transparent watercolor washes, wet-on-wet gradients, soft bleeding edges, natural pigment granulation, watercolor blooms, irregular stain boundaries, visible paper texture, muted harmonious palette, airy negative space, soft natural light, painterly, hand-painted scan look, high artistic quality
Plaintext
oil painting on canvas, traditional atelier style, rich impasto brushwork, visible bristle strokes, thick layered paint, painterly texture, subtle canvas weave, soft edge transitions, warm varnished highlights, realistic yet painterly rendering, natural color mixing, gentle glaze layers, depth and volume, chiaroscuro lighting, refined composition, museum-quality, high detail, timeless fine art look, no label or watermark
Plaintext
photorealistic architectural 3D render, V-Ray style, ultra-clean global illumination, high dynamic range lighting, physically based materials (PBR), accurate reflections and refractions, crisp ray-traced shadows, soft diffuse bounce light, realistic exposure and white balance, subtle lens bloom and glare, filmic tone mapping, high detail textures, micro-surface roughness, realistic glass with proper IOR, sharp but natural anti-aliasing, ambient occlusion, depth of field (subtle), 8k, professional archviz, daytime exterior, clear sky, natural color grading, realistic landscaping, straight verticals, tilt-shift look

Canny è spesso il primo passo da fare in ControlNet perché è immediato. Cambi low/high, vedi subito il risultato nella mappa. È un feedback loop corto, ed è quello che serve per imparare.

Se l’articolo ti è piaciuto restiamo in contatto su linkedin a: https://www.linkedin.com/in/andreatonin/

ControlNet #Canny #ComfyUI #EdgeDetection #LowThreshold #HighThreshold #Preprocess #ImageGuidance #Seed #Workflow

Banner

Releated Posts

ComfyUI – Reference Conditioning

In ComfyUI (soprattutto con modelli come Flux) il Reference Conditioning è un nodo che permette di usare una…

DiByAndrea Tonin Apr 9, 2026

ComfyUI per generare anime: NewBie Image Exp0.1

NewBie Image (spesso indicato come NewBie-image-Exp0.1) è un modello text-to-image in stile anime/ACG pensato per generare illustrazioni con…

DiByAndrea Tonin Apr 9, 2026

Comfy UI: OpenPose

Quando si parla di “OpenPose” in giro per ComfyUI, spesso si intende una cosa molto concreta: prendere una…

DiByAndrea Tonin Apr 9, 2026

L’AI in Cooperativa come scelta organizzativa

Negli ultimi mesi sono stato molto impegnato con docenze in cooperative anche molto diverse tra loro. In aula…

DiByAndrea Tonin Apr 9, 2026