Il salto evolutivo più importante nella generazione di immagini con intelligenza artificiale è la creazione di modelli personalizzati. Con questo intendo pacchetti secondari che riproducono stili o oggetti specifici, ma che possono anche essere utilizzati per iniettare il volto di una persona in scenari unici. Questo è possibile grazie alla piattaforma Dreambooth, sviluppata da Google Research e dalla Boston University. L'applicazione più popolare di DreamBooth in questi giorni è il fine-tuning di modelli compatibili con Stable Diffusion, e oggi ti spieghiamo come farlo.
Oltre i limiti
Dei tre modelli disponibili per la generazione di immagini con intelligenza artificiale, Stable Diffusion ha dimostrato di essere il più flessibile. Perché? Due ragioni: da un lato, è gratuito e open source, e dall'altro, si sposa molto bene con modelli alternativi. Ma da dove vengono questi modelli? Dagli stessi utenti, che sfruttano il loro hardware di fascia alta o le opzioni gratuite online per addestrarli.
Il problema dell'addestramento personalizzato o «fine-tuning» di Stable Diffusion è il consumo di VRAM. Addestrare un modello con poca memoria video è quasi impossibile, tuttavia, grazie alla magia di Google Colab, Google Drive, HuggingFace e del canale DotCSV su YouTube, oggi possiamo farlo senza troppi intoppi e senza investire migliaia di euro in hardware. I requisiti tecnici saranno spiegati in ogni passaggio, quindi non saltare nulla!
Addestra il tuo modello di generazione di immagini con Dreambooth
- Il primo passo è andare sulla pagina di HuggingFace e creare un account. Tutto ciò che chiede è un'email e un nome utente. Questo è importante perché ci serve uno dei token di accesso alla piattaforma. Una volta creato l'account, vai su Impostazioni -> Access Tokens e clicca su Nuovo token. Assegna un nome e specifica la funzione Scrittura. Non allontanarti, perché dovrai copiare il token da qui più tardi.
- Poi dovrai definire quale classe di modello vuoi addestrare attraverso una selezione di immagini. La media raccomandata è di 20... e devono essere varie. L'obiettivo è mostrare uno stile, un concetto, un formato, un'idea. Ad esempio, supponiamo che tu voglia un modello ispirato alle foto Polaroid. Se ti concentri solo su ritratti in Polaroid, il modello non uscirà mai da quello stampo, quando l'ideale è riprodurre i dettagli, gli errori, il «calore» e l'essenza «vintage» di quelle foto.
- Il terzo passaggio è semplice: adattare le immagini a una dimensione esatta di 512 x 512 pixel. Il portale Birme di cui abbiamo parlato di recente ti permetterà di farlo in un attimo, regolando le dimensioni e ritagliando eventuali eccedenze. Salva le immagini in una cartella temporanea, ci torneremo tra poco.
- Ora è il momento di entrare nell'ambiente di Google Colab configurato da DotCSV. Il mio primo consiglio? Non avere paura. All'inizio sembra qualcosa progettato da extraterrestri, ma in realtà si tratta di un'interfaccia «passo dopo passo» più spartana del normale. Prima di tutto, vai su «Ambiente di esecuzione», entra nella sezione «Cambia tipo di ambiente di esecuzione» e assicurati che «GPU» sia l'opzione selezionata. Questo confermerà che Google Colab deve assegnare una scheda grafica adeguata per l'attività.
- L'ambiente di Google Colab ci invita a seguire i suoi passi. Premiamo il pulsante Play sul passaggio 1 e accettiamo l'avviso per associare il nostro Google Drive all'ambiente. Google Drive deve avere almeno 4 GB liberi per questo, e il mio suggerimento è di usare un account alternativo.
- Dopo premiamo il pulsante Play accanto a Dependencies. Come indica il nome, questo installerà tutte le dipendenze necessarie per il corretto funzionamento di Dreambooth. Fortunatamente, non ci mette molto.
- Il passaggio 3 attiva il campo in cui dobbiamo inserire il token che abbiamo generato su HuggingFace. Un clic sulla freccia aprirà il menu, copiamo il token e lo incolliamo in «HuggingFace_Token». Ignora il resto delle opzioni e premi Play. Aspetta che finisca.
- Il quarto passaggio richiede dati sull'addestramento di Dreambooth, e questo cambia a seconda dei tuoi desideri: il piano è addestrare una persona o un oggetto? Forse un artista o una serie TV? Scegli l'opzione appropriata dall'elenco nel campo «Training_Subject», poi modifica l'espressione in «Subject_Type» seguendo gli esempi qui sotto. Tuttavia, tutta la tua attenzione deve andare a «Instance_name». Questo è il jolly, la parola chiave che userai nei prompt per «attivare» il contenuto che hai addestrato. Si raccomanda una parola rara, che non venga confusa con altro da Stable Diffusion.
- Premendo Play sul passaggio 4, Google Colab abiliterà un pulsante di caricamento per caricare le immagini che serviranno come riferimento nell'addestramento. Ricorda, devono essere 512 x 512!
- Il quinto passaggio è opzionale ed è particolarmente utile quando creiamo modelli di persone. Nel nostro test non è necessario, ma lì troverai cinque valori diversi. «person_ddim» è la modalità predefinita, non esitare a cambiarla per sperimentare.
E ora, aspettare
Il pulsante Play del passaggio 6 avvia il processo di addestramento, e da qui in poi... pazienza. Quanto dura? Per un pacchetto standard di 20 immagini con 1.600 passaggi, la media è di un'ora, molto ragionevole considerando che stiamo accedendo a interi gigabyte di VRAM gratuitamente. Anche il livello di attività su Google Colab e la scheda grafica configurata per il progetto influenzano le prestazioni finali.
Con il modello addestrato, restano solo due cose da fare: valutarlo online usando il passaggio 7, oppure scaricare il file ckpt dal nostro account Google Drive per eseguirlo offline con Automatic1111. Non dimenticare di aggiungere la tua parola chiave nei prompt, altrimenti non vedrai mai risultati corretti tra le immagini generate.
In sintesi, Dreambooth è uno strumento estremamente potente, ma richiede qualche ora di pratica. In alcune occasioni, l'addestramento non è del tutto soddisfacente, e potresti essere costretto a riprovare con un set di immagini diverso. Non abbatterti!
HuggingFace: Clicca qui
Dreambooth su Google Colab: Clicca qui