Scarichi un modello nuovo, lo colleghi a un workflow che “più o meno” assomiglia a quello giusto, scrivi un prompt sensato e… l’immagine sembra casuale. Oppure il nodo va in errore, oppure i risultati sono inspiegabilmente scarsi rispetto a quelli che vedi online. In ComfyUI, nella maggior parte dei casi non è magia nera né “sfortuna”: è un disallineamento fra componenti. Il punto è semplice da dire e facile da dimenticare quando si collezionano file, un modello di diffusione non vive da solo, ma si appoggia a un ecosistema preciso fatto di text encoder (spesso chiamato “CLIP” per abitudine), VAE e, quando li usi, LoRA. Se uno di questi pezzi appartiene a una famiglia diversa, la catena si spezza.
L’idea da tenere a mente è che ogni famiglia di modelli è stata addestrata aspettandosi determinati formati e determinate “coordinate” interne. Il prompt non viene letto dal modello in chiaro, ma viene trasformato dal text encoder in vettori numerici (embedding). Se quei vettori non hanno la struttura che il modello si aspetta, il modello non “capisce” davvero cosa vuoi. Allo stesso modo, la VAE si occupa di tradurre fra spazio latente e immagine (codifica/decodifica): se metti una VAE non coerente, puoi ottenere colori spenti, contrasto sballato, dettagli “impastati” o artefatti strani. Le LoRA, infine, non sono “filtri universali”, sono piccole patch addestrate su un backbone specifico (il “backbone” è il modello base su cui tutto il resto si appoggia, in pratica è l’architettura e l’insieme di pesi principali che fanno il lavoro grosso della generazione). Per questo una LoRA nata per SD 1.5 non è automaticamente adatta a SDXL, e una LoRA pensata per SDXL non si comporta bene su Flux o Z-Image.
L’allineamento, in pratica: una catena in quattro anelli
In ComfyUI, la pipeline più comune si può leggere così: testo → text encoder → condizionamento → modello di diffusione → latenti → VAE → immagine. Ogni freccia implica compatibilità. Quando tutto è coerente, il prompt “aggancia” subito e i controlli (CFG, sampler, steps) si comportano in modo prevedibile. Quando qualcosa è fuori famiglia, i sintomi cambiano: a volte il workflow non parte, a volte parte ma ignora le parole chiave, a volte genera immagini che sembrano sempre “uguali” anche cambiando prompt, a volte la resa cromatica è palesemente sbagliata.
MODEL ↔ TEXT ENCODER ↔ VAE
Qui sotto trovi una tabella orientativa (utile come mappa mentale). Se un modello viene distribuito con un workflow di esempio o con un README, quello è il riferimento più affidabile perché ti dice esattamente cosa si aspettava l’autore.
| Famiglia / modello (macro) | Text encoder tipico (quello “giusto” per la famiglia) | Note pratiche su VAE |
|---|---|---|
| Stable Diffusion 1.x (es. 1.5) | CLIP ViT-L/14 (famiglia SD1) | In genere usa il VAE “classico” SD1; cambiare VAE può alterare colori/dettaglio |
| Stable Diffusion 2.x | OpenCLIP ViT-H/14 (famiglia SD2) | SD2 tende a essere più “sensibile” all’accoppiata corretta |
| SDXL | Doppio encoder (CLIP-L + “bigG” a seconda dei loader/workflow) | Spesso va bene anche con VAE SDXL consigliato; VAE sbagliato = look “spento” o oversharp |
| Flux / famiglie simili | Text encoder specifici (spesso T5 + componenti dedicati) | Di frequente viene indicato un VAE preciso (o compatibile) nel pacchetto |
| Z-Image / famiglie recenti “custom” | Encoder non-CLIP classico (es. Qwen o altri) | Qui seguire l’esempio ufficiale è quasi obbligatorio: cambiare encoder rompe il prompt |
Questa tabella non serve a “memorizzare sigle”, ma a farti scattare la domanda giusta: “Questo modello, con quale encoder è stato addestrato?”. Se non lo sai, il comportamento casuale che vedi non è un mistero, è un mismatch.
Come si riconosce un mismatch
Molti principianti interpretano i segnali al contrario, pensando che il modello sia “scarso”. In realtà alcuni sintomi sono abbastanza tipici.
| Sintomo | Spesso è colpa di | Perché succede |
|---|---|---|
| Il prompt sembra ignorato, output “random” | Text encoder sbagliato | Il condizionamento non corrisponde allo spazio appreso dal modello |
| Errore immediato nel nodo di load | Encoder o checkpoint incompatibili | Dimensioni/architettura non combaciano (shape mismatch) |
| Colori strani, pelle grigiastra, contrasto incoerente | VAE non adatta | Decodifica latenti con parametri diversi da quelli attesi |
| LoRA “non fa nulla” o distorce tutto | LoRA di famiglia diversa | La patch modifica pesi che non corrispondono (o pesa male sui layer) |
| Risultati sempre simili anche cambiando prompt | Encoder errato o CFG/clip skip incoerenti | Il testo non guida davvero la generazione, quindi il rumore domina |
La cosa importante è non correggere “a caso”. Se sospetti un mismatch, non cambiare dieci impostazioni: rimetti prima la triade corretta (model + encoder + VAE), verifica che il prompt torni a incidere, poi aggiungi LoRA e controlli.
Il metodo operativo
Un approccio affidabile, in ComfyUI, assomiglia più a un controllo qualità che a un gioco d’incastri. Parti dal modello e ricostruisci a ritroso tutto ciò che lo alimenta.
Il primo passo è trattare il modello di diffusione come “la famiglia” e non come un file isolato. Se scarichi un checkpoint SD1.5, ragiona in termini di pipeline SD1. Se scarichi SDXL, usa un loader SDXL e i suoi encoder previsti. Se scarichi Flux o Z-Image, cerca sempre il workflow ufficiale o almeno la lista delle dipendenze (text encoder e VAE inclusi). Importa un workflow di esempio e guarda quali nodi di load usa e quali file punta.
Il secondo passo è mettere ordine nelle cartelle, perché “carico quello che trovo nel menu” è uno dei modi più rapidi per sbagliare. I percorsi possono variare leggermente a seconda di installazione e plugin, ma l’idea è che ogni asset abbia la sua casa. Se un encoder finisce nella cartella dei checkpoint o una VAE viene messa “dove capita”, aumentano le probabilità di selezionare per sbaglio un file simile ma non coerente.
| Componente | Dove finisce di solito in ComfyUI | Effetto se messo/cercato altrove |
|---|---|---|
| Modello di diffusione / checkpoint | models/checkpoints (o models/diffusion_models in setup specifici) | Rischi di caricare il file con un loader sbagliato |
| Text encoder (CLIP/T5/Qwen ecc.) | models/clip o models/text_encoders (dipende dal workflow) | Menu confusionario e mismatch frequenti |
| VAE | models/vae | Selezioni casuali e resa cromatica incoerente |
| LoRA | models/loras | LoRA “invisibile” o caricata col nodo sbagliato |
Il terzo passo è aggiungere le LoRA solo quando la base è stabile. È tentante partire con “modello + 3 LoRA + 2 ControlNet”, ma se qualcosa va storto non saprai mai dov’è il problema. Una volta che il modello risponde bene al prompt con la sua triade corretta, inserisci una LoRA alla volta e controlla che l’effetto sia coerente con ciò che ti aspetti.
LoRA
La frase “questa LoRA funziona ovunque” è quasi sempre un equivoco. Una LoRA è allenata su un backbone (SD1.5, SD2, SDXL, ecc.) e spesso presuppone un certo modo di interpretare il testo (quindi un certo encoder e un certo schema di condizionamento). Anche quando “sembra funzionare”, può farlo in modo degradato o imprevedibile.
| LoRA nata per | Di solito funziona bene con | Tipico risultato se la usi altrove |
|---|---|---|
| SD 1.5 | SD 1.x | Effetto nullo o distorsioni su SDXL/Flux/Z-Image |
| SD 2.x | SD 2.x | Comportamento instabile su SD1.5 e SDXL |
| SDXL | SDXL | Su SD1.5 spesso “non prende” o genera artefatti |
| Famiglie custom (Flux, Z-Image, ecc.) | La stessa famiglia | Su altre famiglie quasi sempre inutile |
Un dettaglio che aiuta: molte LoRA includono indicazioni su “trigger words” e pesi consigliati. Se le trigger words non fanno niente, prima di aumentare il peso chiediti se sei sulla famiglia giusta. Aumentare il peso di una LoRA incompatibile raramente “risolve”: di solito amplifica solo l’instabilità.
Immagina…
Immagina che il text encoder sia un traduttore e il modello sia un artigiano che ha imparato a lavorare seguendo istruzioni in una lingua specifica. Se porti un traduttore che usa un dizionario diverso, le frasi arrivano all’artigiano deformate, alcune parole diventano rumore, altre cambiano significato. L’artigiano lavora lo stesso (perché sa comunque “generare”), ma lo fa senza una guida affidabile. La VAE, invece, è come la lente con cui guardi il risultato, se non è tarata sul tipo di materiale, i colori e i dettagli vengono interpretati male. Le LoRA sono utensili progettati per quel banco da lavoro e se li monti su un altro banco, non si avvitano dove dovrebbero.
Ricostruire il contesto
Quando scarichi un modello, il modo più professionale di usarlo non è “provare finché va”, ma ricostruire il contesto di addestramento: quale text encoder, quale VAE, quali esempi di workflow. È il motivo per cui, con modelli recenti e “non standard”, l’abbinamento corretto non è opzionale, è parte integrante del modello. Una volta interiorizzata questa logica, ComfyUI smette di sembrare un labirinto e diventa un sistema molto lineare. Se il prompt guida bene, sei allineato, se non guida, stai parlando la lingua sbagliata.
Se l’articllo ti è piaciuto restiamo in contatto su linkedin a: https://www.linkedin.com/in/andreatonin/
#model #ComfyUI #text_encoder #CLIP #VAE #LoRA #compatibilità #workflow #StableDiffusion #Flux #ZImage
Nerd per passione e per professione da oltre 30 anni, lavoro nel mondo dell’innovazione tecnologica come CTO e consulente, progettando ecosistemi software complessi e scalabili. Parallelamente mi dedico alla formazione informatica, condividendo esperienze e buone pratiche maturate sul campo.
Scopri di più sulla mia attività di consulenza su lucedigitale.com Mi trovi anche su LinkedIn



















