12 novembre 2026 · Team VRAMfarm
Addestrare una LoRA Flux con le tue foto: 20 immagini, 24 GB e circa due ore
Venti buone foto, circa 2.000 step di training e una scheda da 24 GB: è tutto ciò che serve a una LoRA di somiglianza per Flux.1 dev. Su una RTX 4090 a noleggio il training vero e proprio dura da 1 a 2,5 ore, e un primo tentativo con configurazione e immagini di prova arriva a circa 1,24 € di tempo GPU. La maggior parte delle LoRA venute male fallisce prima che parta la GPU, su foto e didascalie, quindi quei due passaggi meritano la stessa cura dei comandi.
Il dataset: quante foto e quali
Per una persona, l’intervallo utile è 15–30 foto. Con meno di 10 il modello non riesce a separare il tuo volto dall’illuminazione di quegli scatti precisi. Oltre 40 raramente aiuta e rende più difficile mantenere la qualità uniforme. Venti foto nitide e varie battono cento foto simili.
Com’è fatto un buon set:
- Varietà dove vuoi flessibilità. Angolazioni diverse (frontale, tre quarti, profilo), luce (giorno, interni, sera), sfondi, vestiti ed espressioni. Tutto ciò che resta costante nel set finisce dentro la LoRA. Se in 15 foto indossi lo stesso maglione nero, quel maglione te lo ritrovi in ogni immagine.
- Soprattutto testa e spalle, qualche mezzo busto e figura intera. Circa due terzi di primi piani danno al volto abbastanza pixel; il resto insegna le proporzioni.
- Solo tu nell’inquadratura. Ritaglia via le altre persone, o lascia fuori la foto. Un secondo volto confonde il training più di qualsiasi altra cosa.
- Niente filtri pesanti, modalità bellezza o upscale con l’IA. La LoRA impara il filtro come parte del tuo volto.
- Almeno 1024 pixel sul lato corto dopo il ritaglio. Le foto del telefono vanno bene. Le immagini piccole vengono ingrandite dal trainer e risultano morbide.
Non serve ritagliare tutto in quadrato: ai-toolkit e kohya dividono le immagini in bucket per proporzioni. Metti le immagini in una sola cartella dal nome neutro, come dataset, con nomi di file come 01.jpg, 02.jpg. Il tuo nome non deve stare nei nomi dei file che si trovano su una macchina a noleggio.
Per una LoRA di stile (uno stile di illustrazione, il look di un prodotto) valgono più o meno gli stessi numeri: 20–50 immagini che condividono lo stile e cambiano soggetto.
Didascalie e trigger word
Ogni immagine ha un file di testo con lo stesso nome (01.txt accanto a 01.jpg). La didascalia dice al modello quale parte dell’immagine è il nuovo concetto e quale è ordinaria.
Scegli una trigger word che non significhi ancora nulla, come annx o mrkv. Una parola vera come “anna” ha già un significato nel modello e combatte contro il tuo training. Poi scrivi didascalie brevi che citano la trigger word e descrivono ciò che cambia da una foto all’altra:
photo of annx, a woman with curly hair, smiling, sitting at a cafe table, daylight
photo of annx, close-up portrait, serious expression, dark background
Due regole decidono gran parte del risultato. Descrivi le cose che vuoi poter cambiare (vestiti, sfondo, luce), perché ciò che è descritto viene trattato come separato dal concetto. Non descrivere il volto nel dettaglio, perché è proprio quello che la trigger word deve assorbire.
Flux qui è indulgente. Didascalie con il solo photo of annx funzionano sorprendentemente bene per un singolo volto, e molti addestrano così. Le didascalie dettagliate aiutano quando il set è disomogeneo o quando in seguito vuoi cambiare liberamente vestiti e ambientazioni. I captioner automatici (FluxGym usa Florence-2; JoyCaption è molto diffuso) ti risparmiano di scrivere, ma leggi il risultato e togli tutto ciò che è sbagliato, soprattutto le descrizioni del volto.
ai-toolkit, FluxGym o kohya: quale trainer
Sono tutti e tre gratuiti e girano su un server vuoto con PyTorch e Jupyter.
| Trainer | Come si usa | Adatto per | Preset di VRAM |
|---|---|---|---|
| ai-toolkit (Ostris) | Un config YAML e un comando; interfaccia web opzionale | I migliori default per Flux, immagini di esempio durante il training, anche FLUX.2, Qwen-Image, Wan | Config da 24 GB; opzione low_vram per meno |
| FluxGym | Una semplice pagina web: carichi, scrivi le didascalie, addestri | Prima LoRA, nessun file di configurazione | Preset da 12, 16 e 20 GB |
| kohya sd-scripts | Riga di comando con molte opzioni | Controllo fine, gli script che FluxGym usa sotto | Qualsiasi, con fp8 e block swapping |
Se ti trovi bene con il terminale, prendi ai-toolkit: il suo config di esempio train_lora_flux_24gb.yaml è un punto di partenza sensato e produce immagini di esempio ogni qualche centinaio di step, che è il modo per scegliere il checkpoint migliore. FluxGym è più semplice per un primo tentativo, soprattutto su una scheda da 16 GB.
Entrambi addestrano su Flux.1 dev. Su Hugging Face è un modello ad accesso riservato: per ai-toolkit, accetta la licenza nella pagina del modello e crea un token di lettura; FluxGym scarica i file del modello al primo avvio, come descritto nel suo README. I pesi di Flux.1 dev hanno una licenza non commerciale; controlla i termini aggiornati prima di usare le immagini per lavori a pagamento. Se per te conta, ai-toolkit può addestrare su Flux.1 schnell (Apache 2.0) con un training adapter.
VRAM, tempi e costi per scheda
Flux.1 dev ha 12 miliardi di parametri, circa 24 GB in bf16. I trainer lo caricano a 8 bit, il che dimezza quel valore e lascia spazio alla LoRA, all’ottimizzatore e alle immagini a 1024 px. Per questo 24 GB è la dimensione comoda. Con 16 GB il trainer sposta anche blocchi del modello nella RAM di sistema e indietro a ogni step: funziona, ma va sensibilmente più piano.
Un training tipico: 20 foto, 2.000 step, rank 16, bucket di risoluzione fino a 1024 px.
| Scheda | VRAM | Durata del training (intervallo) | Costo del training a metà intervallo |
|---|---|---|---|
| RTX 4080, RTX 5080 (trucchi per 16 GB) | 16 GB | 3–6 h | 1,40 € su una RTX 4080 |
| RTX 3090 | 24 GB | 2,5–4 h | 0,90 € |
| RTX 4090 | 24 GB | 1–2,5 h | 0,89 € |
| RTX 5090 | 32 GB | 0,8–1,6 h | 0,84 € |
| H100 | 80 GB | 0,5–1 h | 2,93 € |
Prendi i tempi come intervalli per pianificare, non come benchmark: risoluzione, rank, numero di immagini di esempio e versione del trainer li spostano. Addestrare solo a 512 px dimezza circa il tempo, con meno dettaglio fine. Una H100 è la più veloce ma raramente la più economica; una LoRA è un lavoro troppo piccolo per sfruttarla tutta. La RTX 4090 e la RTX 3090 sono le scelte abituali, e la 3090, più economica, spesso vince sul prezzo per LoRA quando non guardi l’orologio. La pagina dei prezzi riporta le tariffe attuali.
Sugli step: circa 100 step per foto è un buon inizio, quindi 1.500–2.500 per un set di 15–25. Learning rate 1e-4 e rank 16 (i default di ai-toolkit) vanno bene per i volti. Salva un checkpoint ogni 250 step e giudica dai sample. Il migliore spesso non è l’ultimo.
Avviare il training su un server a noleggio
Avvia un server vuoto PyTorch + Jupyter su una scheda da 24 GB. Driver e versione CUDA della macchina sono mostrati prima dell’avvio; i trainer attuali vogliono CUDA 12.x o più recente, quindi controllalo lì. Apri Jupyter → File → New → Terminal, oppure collegati via SSH (guida alla chiave SSH).
Carica la cartella dataset con il pulsante di upload di Jupyter (prima comprimila in zip, poi unzip dataset.zip). Poi installa ai-toolkit, seguendo il suo README per le versioni esatte:
cd /workspace
git clone https://github.com/ostris/ai-toolkit
cd ai-toolkit
pip install -r requirements.txt
echo "HF_TOKEN=<your read token>" > .env
cp config/examples/train_lora_flux_24gb.yaml config/annx.yaml
In config/annx.yaml imposta name, trigger_word: "annx", folder_path: "/workspace/dataset", steps: 2000 e i prompt di esempio (usaci la tua trigger word). Poi avvialo dentro tmux, così continua a girare quando chiudi il browser:
tmux new -s lora
python run.py config/annx.yaml
# stacca la sessione con Ctrl+B, poi D; per tornare: tmux attach -t lora
Il primo avvio scarica Flux.1 dev e i suoi text encoder, circa 30–35 GB. Quei minuti si pagano, e i gigabyte contano come traffico alla tariffa della macchina indicata prima dell’avvio. Checkpoint e immagini di esempio compaiono in /workspace/ai-toolkit/output/<name>/. Apri i sample in Jupyter man mano che arrivano; se allo step 1.250 sembrano già giusti, puoi fermarti prima.
FluxGym fa girare una pagina web su una sua porta. Su un server vuoto PyTorch dall’esterno sono raggiungibili solo SSH e Jupyter, quindi apri FluxGym con un tunnel SSH (ssh -L 7860:localhost:7860 ... con host e porta presi da I miei server) e visita http://localhost:7860 sul tuo computer.
Un training tiene occupata la GPU, quindi la protezione dall’inattività lo lascia stare. Quando finisce, la GPU si quieta. Se stai dormendo e non c’è niente collegato, dopo circa due ore ricevi un avviso di inattività, e un’ora dopo il server salva /workspace e si ferma (la cartella di un server PyTorch si può salvare; dove il salvataggio non è possibile ricevi solo gli avvisi). Quelle ore di inattività si pagano. Per fermarti proprio alla fine, aggiungi una chiamata all’API dopo python run.py, o metti semplicemente una sveglia.
Le tue foto su una macchina a noleggio
È la domanda che si fa sottovoce, quindi ecco una risposta diretta.
Le nostre GPU arrivano da host verificati, non da data center di nostra proprietà. Prima dell’avvio vedi il paese della macchina. Il tuo server gira in un container suo, separato dagli altri clienti, e il suo disco viene cancellato quando il server si ferma. L’host gestisce il computer fisico, e chiunque abbia il controllo fisico di una macchina in linea di principio può leggere ciò che contiene. Vale per qualsiasi server a noleggio, da un marketplace a un grande cloud, ed è questo il rischio che stai valutando.
Per un set di ritratti, queste abitudini lo riducono a pochissimo:
- Togli i metadati prima di caricare. Le foto del telefono contengono coordinate GPS e nome del dispositivo.
exiftool -all= *.jpgsul tuo computer li rimuove. - Carica solo il set di training, non la tua libreria di foto, e usa nomi di file neutri.
- Cancella il dataset a training finito (
rm -rf /workspace/dataset /workspace/dataset.zip), soprattutto prima di Salva e ferma, così le foto non restano nella cartella salvata. - Tratta la LoRA come una tua foto. Riproduce il tuo volto a richiesta. Non pubblicarla se non è quello che vuoi.
- Scegli il paese della macchina se per te conta; è indicato prima dell’avvio.
Le foto di altre persone richiedono il loro consenso. Per il GDPR un volto riconoscibile è un dato personale, e un modello che genera nuove immagini di qualcuno va oltre la condivisione di una foto. Chi può vedere cosa lo trovi in i miei dati sono al sicuro su una GPU a noleggio?.
Conservare la LoRA e usarla in ComfyUI
Una LoRA Flux a rank 16 pesa circa 100–170 MB, a rank 32 circa il doppio. Scarica da Jupyter il checkpoint che ti è piaciuto (tasto destro → Download), così ne hai una copia a casa. Poi, in /workspace/ai-toolkit/output/<name>/, cancella i checkpoint che non ti servono e usa Salva e ferma. La cartella salvata conserva /workspace per il prossimo server, anche su un’altra scheda, a 0,03 € per GB al mese; qualche LoRA insieme sta ben sotto il gigabyte. Flux.1 dev sta nella cache di Hugging Face fuori da /workspace, quindi non viene archiviato e non aggiunge 30 GB al tuo conto. I dettagli sono in cosa succede ai tuoi file quando fermi una GPU.
Per generare, avvia ComfyUI, metti il file in /workspace/ComfyUI/models/loras, aggiungi un nodo LoraLoader tra il modello e il sampler e usa la trigger word nel prompt. L’app pronta Flux usa Flux.1 schnell, dove una LoRA dev funziona ma ti somiglia meno; per la piena somiglianza scarica Flux.1 dev in ComfyUI. La guida a ComfyUI mostra dove va ogni file e come scaricare Flux dev con il tuo token.
Parti con una forza di 0,8–1,0. Se ogni immagine assomiglia alle tue foto più che a te in una scena nuova, abbassa la forza o torna a un checkpoint precedente. Se la somiglianza è debole, alzala, oppure addestra altri 500 step.