Addestrare un LoRA con ComfyUI: dati, tag e validazione

"kohya-ss/sd-scripts fornisce script e documentazione per il training LoRA di Stable Diffusion, SDXL, SD3, FLUX.1 e altre famiglie."
Hai 20 immagini di un personaggio originale e vuoi addestrare un LoRA capace di riprodurlo in nuove generazioni.
Dataset e strumento di captioning sono pronti e i parametri arrivano da uno screenshot, ma il risultato non regge: il volto cambia con lo sfondo; “wall” e “floor” nelle caption impongono sempre la stessa stanza; LR=1e-3 provoca overfitting; dim/alpha=32/1 lascia alpha=1 e dim=32 con una scala di circa 0.03, appena il 3%.
Non esiste garanzia di riuscita al primo tentativo. Il percorso pratico collega dati, caption, parametri iniziali, diagnosi e validazione in ComfyUI.
Preparare il dataset: quantità e tipo di immagini
Il primo passo non è aprire il trainer, ma stabilire se il materiale è sufficiente e adatto.
L’obiettivo determina la quantità
La quantità dipende direttamente da cosa vuoi addestrare.
LoRA di personaggio: parti da 15–30 immagini. Dieci fonti eccellenti, nitide e coerenti possono funzionare. Per cambiare scena, includi sfondi e angoli diversi.
LoRA di stile: spesso richiede 50–100 immagini, perché tratto, colore e composizione aggiungono variabili. Con pochi dati, lo stile scompare su immagini nuove.
LoRA di oggetto o abbigliamento: anche qui 15–30 immagini, con fronte, profilo e primi piani dei dettagli.
Tabella di qualità del dataset
La quantità non basta. Fonti deboli insegnano anche sfondi, illuminazione e difetti.
| Obiettivo | Quantità iniziale | Risoluzione | Sfondo | Altri requisiti |
|---|---|---|---|---|
| Personaggio | 15–30 immagini (10 di alta qualità) | 512×512 o 1024×1024 coerente | Pulito o vario, senza ripetere la scena | Angoli, espressioni e pose |
| Stile | 50–100 immagini | Adatta alla base (SD1.5→512, SDXL→1024) | Non deve essere pulito, ma lo stile deve essere coerente | Stesso autore o serie |
| Oggetto | 15–30 immagini | Risoluzione coerente | Meglio pulito, ma può variare | Viste e dettagli diversi |
La priorità è: risoluzione uniforme, sfondo per i personaggi, varietà di angoli e dettagli. Grandi differenze producono resize e dettagli incoerenti.
Risoluzione, sfondo e preprocessing
Risoluzione: il trainer ridimensiona tutto. Mescolare fonti da 512 e 2048 conserva i dettagli in modo diverso; ritagliale prima alla dimensione finale.
Sfondo: se 15 immagini su 20 mostrano la stessa stanza, il tagger ripete “wall” e “floor” e il LoRA può imparare l’ambiente. Scegli sfondi puliti o correggi le caption.
Flusso:
- Seleziona immagini nitide, con risoluzione simile e tratti chiari.
- Ritagliale a una sola risoluzione con Photoshop, GIMP o uno script batch.
- Escludi materiale rischioso se lo stesso sfondo compare più di cinque volte.
Caption e trigger word: etichettare il dataset
Il tagging automatico richiede revisione. Sfondi e tratti secondari incidono direttamente sull’utilità del LoRA.
Scegliere lo strumento di captioning
Opzioni comuni:
| Strumento | Caratteristiche | Uso | Supporto ComfyUI |
|---|---|---|---|
| WD14 Tagger | Tag Danbooru, comune in Stable Diffusion | Personaggi e anime | Nodo Image-Captioning-in-ComfyUI |
| Florence2 | Modello visivo Microsoft con linguaggio naturale | Personaggi realistici e oggetti | Nodi disponibili |
| BLIP | Modello di caption in linguaggio naturale | Stili realistici e scene | Compatibile con ComfyUI |
WD14 è utile per i personaggi ma aggiunge “simple background” o “white wall”. Florence2 produce frasi e si adatta meglio al materiale realistico.
Formato e posizione del trigger
Usa un token raro o una combinazione personale:
sks charname, con un prefisso raro usato nei primi workflow Stable Diffusionxyz_character_name, con prefisso personalizzatomy_char_001
Posizione:
- Inserisci il trigger all’inizio di ogni
.txto.caption, seguito dagli attributi. - Alcuni trainer hanno un campo separato; non serve se tutte le caption contengono già il token.
La ripetizione assegna un nome stabile al concetto. Usa lo stesso trigger nella generazione.
Controllare manualmente gli attributi
Verifica almeno tre aspetti.
Perdita dello sfondo: “wall”, “floor” o “bedroom” frequenti possono bloccare nuove scene. Rimuovili o generalizzali.
Trigger mancante: controlla ogni caption.
Caratteristica essenziale assente: aggiungi capelli, colori o abbigliamento distintivo se mancano.
Non serve leggere ogni parola. Conta i termini con grep o un foglio di calcolo e correggi le anomalie.
Limiti degli strumenti: cosa fa ComfyUI
ComfyUI può avviare il training, ma non è il backend.
kohya-ss/sd-scripts è il backend
Il calcolo è svolto da kohya-ss/sd-scripts, molto usato per i LoRA Stable Diffusion. Kohya GUI e i nodi ComfyUI incapsulano questi script o implementazioni affini.
FluxTrainer e Lora-Training-in-Comfy sono wrapper:
- FluxTrainer di Kijai integra codice sd-scripts modificato per FLUX e workflow correlati.
- Lora-Training-in-Comfy offre un’altra interfaccia ComfyUI per training basato su kohya.
I valori predefiniti non sono ottimali universali. Consulta README corrente e documentazione upstream.
Confrontare i percorsi di training
| Percorso | Vantaggi | Limiti | Per chi |
|---|---|---|---|
| GUI kohya-ss | Interfaccia completa e molti tutorial | Installazione separata e schermata complessa | Chi vuole controllo totale |
| Nodi ComfyUI come FluxTrainer | Training nello stesso workflow | Parti sperimentali e default non garantiti | Utenti ComfyUI |
| Script kohya-ss nel terminale | Funzioni recenti e controllo completo | Barriera tecnica maggiore | Utenti esperti |
Dove verificare i parametri attuali
Non affidarti solo agli screenshot. Parti dalla documentazione aggiornata di kohya-ss/sd-scripts:
- Le guide descrivono le opzioni per SD1.5, SDXL e FLUX.1.
- Issues e Discussions raccolgono esperienze specifiche, come network alpha.
Learning rate, dim/alpha e step variano con modello e dataset. Non esiste una configurazione universale.
Ricette iniziali per obiettivo
Sono punti di partenza riproducibili. Regolali con epoch salvate e sintomi.
Relazione tra network dim e alpha
network dim o rank definisce la capacità delle matrici LoRA. Un dim maggiore apprende più dettagli, ma aumenta memoria e tempo.
network alpha scala i pesi appresi. Se alpha è inferiore a dim, l’effetto è attenuato rispetto al learning rate configurato.
Scala semplificata: alpha / dim
Esempi:
- alpha=16, dim=32 → 16/32=0.5
- alpha=32, dim=32 → 1
- alpha=1, dim=32 → 1/32≈0.03
Copiare dim=32 e alpha=1 senza considerare learning rate e step può produrre un risultato debole.
Partenza:
- Prova alpha=dim senza attenuazione o alpha=dim/2 con attenuazione moderata.
- Con alpha<dim, confronta learning rate e step insieme.
Learning rate, step ed epoch
| Parametro | Personaggio | Stile | Nota |
|---|---|---|---|
| U-Net LR | 4e-4 | 1e-4 | Partenza da regolare secondo sintomi e alpha |
| Text encoder LR | 5e-5 o 1e-5 | 5e-5 o meno | In genere inferiore a U-Net |
| Step | 1000–2000 | 2000–3000 | Derivare dalle epoch e fermare prima se necessario |
| Epoch | 10–20 | 20–30 | Un dataset piccolo può richiederne meno |
Uno step è un aggiornamento dell’optimizer, una epoch attraversa il dataset. Repeats, batch size, gradient accumulation e distribuzione modificano il rapporto; usa il contatore del trainer.
Scegliere il modello base
La base di training determina la compatibilità.
| Modello | Risoluzione | Modelli compatibili | VRAM iniziale |
|---|---|---|---|
| SD1.5 | 512×512 | SD1.5 e derivati compatibili | Circa 8 GB con fp16 e checkpointing |
| SDXL | 1024×1024 | SDXL e derivati compatibili | Circa 12 GB con fp16 e checkpointing |
| FLUX.1 | 1024×1024 o più | Famiglia FLUX.1 corrispondente | Spesso molto più alta senza ottimizzazione |
Il supporto FLUX.1 e le opzioni di memoria cambiano. Segui la documentazione invece di fidarti di un numero fisso.
Tabella iniziale
| Obiettivo | dim | alpha | U-Net LR | Text encoder LR | Step/epoch | Modello |
|---|---|---|---|---|---|---|
| Personaggio SD1.5 | 32 o 128 | 32 o 1; compensare se basso | 4e-4 | 5e-5 | 1000–2000 / 10–20 | SD1.5 |
| Personaggio SDXL | 128 | 1 o 128 | 4e-4 | 5e-5 | 1500–2500 / 10–20 | SDXL |
| Stile SD1.5 | 128 o 256 | 128 o 1 | 1e-4 | 5e-5 o meno | 2000–3000 / 20–30 | SD1.5 |
Regola questi punti con i controlli successivi.
Riconoscere e correggere overfitting e underfitting
Una configurazione errata può distruggere i dettagli o apprendere pochissimo.
Sintomi di overfitting
Aspetto:
- I dettagli si fondono, sfocano o deformano.
- Sfondi e angoli nuovi falliscono perché riconosce solo le scene di training.
- Rumore e watermark del dataset riappaiono.
Trigger:
- Anche weight=0.3 copia i dati e non è controllabile.
- I tratti compaiono senza trigger e sono troppo legati.
Sintomi di underfitting
Aspetto:
- La somiglianza è bassa e mancano dettagli chiave.
- Il trigger risponde poco o per nulla.
Test dello sfondo:
- I tratti restano deboli in ogni scena; il concetto principale non è stato appreso.
Tabella di confronto
| Sintomo | Overfitting | Underfitting | Correzione |
|---|---|---|---|
| Dettagli | Deformati o copiati | Somiglianza debole | Over: ridurre LR/step; under: aumentare LR/migliorare dati |
| Sfondo | Fallisce cambiando scena | Obiettivo sempre debole | Over: controllare tag di sfondo; under: controllare trigger |
| Trigger | Troppo forte | Debole o assente | Over: ridurre LR/dim alto; under: rivedere LR, dati, dim |
| Weight | Copia a 0.3 | Appare appena a 1.0 | Over: epoch precedente; under: continuare con cautela o migliorare dati |
Ordine delle correzioni
Overfitting:
- Riduci chiaramente il learning rate, per esempio del 50% in un test.
- Riduci gli step o scegli una epoch precedente.
- Controlla sfondi e tratti secondari nelle caption.
- Riduci un dim inutilmente alto.
Underfitting:
- Aumenta il learning rate in modo controllato.
- Aggiungi o migliora i dati.
- Conferma il trigger in ogni caption.
- Aumenta dim se manca capacità.
VRAM e percorsi a memoria ridotta per RTX 3060
Poca VRAM non impedisce sempre il training, ma impone compromessi su risoluzione, modello, velocità e ottimizzazione.
Minimi approssimativi
| Modello | Base fp16 con checkpointing | Con risparmio aggiuntivo | Opzioni |
|---|---|---|---|
| SD1.5 | Circa 8 GB | Circa 6 GB in setup limitati | dim basso, checkpointing, optimizer e precision |
| SDXL | Circa 12 GB | Vicino a 10 GB in alcuni casi | dim basso, checkpointing, risparmio per blocchi |
| FLUX.1 | Spesso circa 24 GB senza risparmio | Vicino a 10 GB con forte ottimizzazione | block swapping, checkpointing, dim basso, quantizzazione |
L’esempio da 24 a 10 GB proviene da una guida esterna del 2025. L’uso reale dipende da trainer, modello, optimizer, cache, dataset e GPU.
Tecniche di risparmio
Fused o memory-efficient backward riduce il picco secondo l’implementazione.
Gradient checkpointing ricalcola le attivazioni e scambia velocità con memoria.
dim basso riduce i parametri LoRA e in genere la VRAM.
Mixed precision e quantizzazione: fp16 o bf16 sono comuni; alcuni trainer supportano FP8 o componenti quantizzati con compromessi.
Tabella per poca VRAM
| VRAM | Obiettivo realistico | Compromesso | Percorso |
|---|---|---|---|
| 6 GB | Personaggio SD1.5 | dim basso, checkpointing, lento | SD1.5 con batch piccolo |
| 8 GB | Personaggio o stile SD1.5 | dim basso e checkpointing | Opzioni mature di SD1.5 |
| 10 GB | Alcuni setup SDXL | Risparmio aggressivo | Ricetta low-memory documentata |
| 12 GB+ | Più SDXL, FLUX.1 sperimentale | Può servire ancora risparmio | Prima SDXL; FLUX.1 dipende dal setup |
Con VRAM limitata, inizia da SD1.5. Richiede meno e dispone di tecniche più mature.
Validare il LoRA finito in ComfyUI
Un’immagine non basta. Verifica trigger, dettagli, cambio di sfondo e intervallo di weight.
Caricare il LoRA
Carica il .safetensors con Load LoRA:
- Nodo: Load LoRA incluso in ComfyUI
- Parametri: file e strength di model e clip; inizia vicino a 0.5
Creare un prompt di test
Includi trigger e attributi:
- Trigger word: token appreso, come
sks charname, vicino all’inizio. - Attributi: capelli, colori e abbigliamento importanti.
- Scena: usa “in a forest” o “at night” nel test dello sfondo.
Esempio:
sks charname, blonde hair, blue eyes, white dress, simple background
Test dello sfondo:
sks charname, blonde hair, blue eyes, white dress, in a forest, at sunset
Scorrere l’intervallo di weight
Confronta a condizioni identiche:
- weight=0.3: effetto leggero e controllabile.
- weight=0.5: obiettivo riconoscibile.
- weight=1.0: forza piena senza deformazione o perdita di controllo.
Se 0.3 resta legato ai dati, sospetta overfitting. Se 1.0 somiglia appena, verifica underfitting, trigger e compatibilità.
Checklist di accettazione
| Controllo | Risultato | Se fallisce |
|---|---|---|
| Trigger | Chiaro a 0.5 e controllabile a 0.3 | Assente: caption/trigger; forte: ridurre LR o usare epoch precedente |
| Dettagli | Capelli, colori e abiti nitidi | Deformati: overfitting; deboli: underfitting |
| Cambio sfondo | Soggetto riconoscibile in una scena nuova | Controllare caption di sfondo e varietà |
| Weight | Tratti graduali tra 0.3 e 1.0 | Rivedere forza ed epoch |
Passaggi successivi e letture
Per caricamento, weight, stacking e trigger, continua con Usare i LoRA in ComfyUI: pesi, stacking e coerenza del personaggio.
Il rapporto tra base, compatibilità e shape mismatch è spiegato in Scegliere i modelli Stable Diffusion: compatibilità tra base e LoRA.
Per test ripetibili, usa Template di prompt Stable Diffusion per validare un LoRA.
Alternative senza nuovo training:
- FLUX.1 Kontext può mantenere un personaggio senza LoRA quando i dati sono pochi o il training non conviene.
- InstantID e IPAdapter FaceID controllano il volto con un’immagine di riferimento invece di addestrare un LoRA.
Come addestrare e validare il proprio LoRA
Scegli obiettivo e modello base, prepara immagini e caption, addestra con valori controllati e verifica trigger, dettagli e generalizzazione dello sfondo in ComfyUI.
⏱️ Estimated time: 4 hr
- 1
Step 1: Scegliere obiettivo e modello base
Decidi se addestrare un personaggio, uno stile o un oggetto e scegli SD1.5, SDXL o FLUX.1; la base determina la compatibilità. - 2
Step 2: Selezionare e uniformare il dataset
Conserva immagini nitide con soggetto chiaro, angoli e sfondi vari, poi ritagliale a una risoluzione coerente. - 3
Step 3: Generare e rivedere le caption
Usa lo strumento adatto e controlla parole di sfondo frequenti, attributi essenziali e trigger in ogni file. - 4
Step 4: Impostare i parametri iniziali
Scegli dim, alpha, learning rate e step o epoch secondo l’obiettivo; usa le tabelle come partenza riproducibile, non come risposta universale. - 5
Step 5: Salvare le epoch intermedie
Salva i pesi a intervalli fissi per selezionare il punto che generalizza senza overfitting. - 6
Step 6: Validare a condizioni fisse
Mantieni prompt, seed, sampler e dimensioni e confronta weight 0.3, 0.5 e 1.0 su più sfondi. - 7
Step 7: Correggere in base ai sintomi
Con overfitting riduci learning rate o step e controlla i tag di sfondo; con underfitting verifica trigger, dati, learning rate e dim.
FAQ
Quante immagini servono per addestrare un LoRA?
Come impostare network dim e alpha?
Quale learning rate usare per un LoRA?
Come addestrare con poca VRAM?
Si può addestrare un LoRA direttamente in ComfyUI?
Che differenza c’è tra training LoRA SDXL e FLUX.1?
10 min di lettura · Pubblicato il: 28 ago 2026 · Aggiornato il: 28 ago 2026
Guida pratica a ComfyUI e Stable Diffusion
Se arrivi dalla ricerca, il modo più veloce per orientarti è passare all’articolo precedente o successivo della stessa serie.
Precedente
Coerenza dei volti in ComfyUI: InstantID, FaceID o ReActor?
Confronta InstantID, IPAdapter FaceID e ReActor per mantenere un volto in ComfyUI: modelli, percorsi, regolazioni, errori comuni e limiti di licenza.
Parte 9 di 16
Successivo
Prompt regionali in ComfyUI: separare più soggetti con Set Area, RegionalPrompt e Cutoff
Separa i soggetti in ComfyUI con Set Area, RegionalPrompt e Cutoff: coordinate, maschere, strength, ControlNet e colori che si mescolano nel secondo pass.
Parte 11 di 16



Commenti
Accedi con GitHub per lasciare un commento