Come addestrare l'IA a diffusione stabile con il tuo viso per creare arte usando DreamBooth

Pubblicato: 2022-10-10

Guest Post di Tarunabh Dutta.

Se il 2021 è stato l'anno dei modelli linguistici di intelligenza artificiale basati su parole, il 2022 ha fatto un salto nei modelli di intelligenza artificiale da testo a immagine. Oggi sono disponibili molti modelli di IA da testo a immagine in grado di produrre immagini di alta qualità. La diffusione stabile è una delle opzioni più popolari e conosciute. È un modello veloce e stabile che produce risultati coerenti.

how to train stable diffusion

Il processo di generazione delle immagini è ancora alquanto misterioso, ma è chiaro che Stable Diffusion produce ottimi risultati. Può essere utilizzato per generare immagini dal testo o per alterare immagini esistenti. Le opzioni e i parametri disponibili consentono molta personalizzazione e controllo sull'immagine finale.

Sebbene sia relativamente più facile lavorare su immagini di celebrità e personaggi famosi, semplicemente a causa del set di immagini già disponibile, non è così facile far funzionare l'IA sul tuo viso. La logica dice di alimentare il modello AI con le tue immagini e poi lasciarlo fare la sua magia, ma come si può farlo esattamente?

In questo articolo, proveremo a dimostrare come addestrare un modello di diffusione stabile utilizzando l'inversione testuale di DreamBooth su un riferimento di immagine per creare rappresentazioni AI del proprio viso o di qualsiasi altro oggetto e generare foto di risultati con risultati, precisione e coerenza incredibili. Se sembra troppo tecnico, resta in giro e cercheremo di renderlo il più adatto ai principianti possibile.

Sommario

Che cos'è la diffusione stabile?

Togliamo le basi. Il modello Stable Diffusion è un modello di apprendimento automatico da testo a immagine all'avanguardia addestrato su un set di immagini di grandi dimensioni. È costoso da addestrare, costa circa $ 660.000. Tuttavia, il modello Stable Diffusion può essere utilizzato per generare arte utilizzando il linguaggio naturale.

I modelli di intelligenza artificiale da testo a immagine di deep learning stanno diventando sempre più popolari grazie alla loro capacità di tradurre accuratamente il testo in immagini. Questo modello è gratuito e può essere trovato su Hugging Face Spaces e DreamStudio. I pesi del modello possono anche essere scaricati e utilizzati localmente.

Stable Diffusion utilizza un processo chiamato "diffusione" per generare immagini simili al prompt di testo.

In breve, l'algoritmo Stable Diffusion prende una descrizione testuale e genera un'immagine basata su quella descrizione. L'immagine generata sarà simile al testo ma non sarà una replica esatta. Le alternative a Stable Diffusion includono i modelli Dall-E di OpenAI e Imagen di Google.

Guida per addestrare l'IA a diffusione stabile con la tua faccia per creare immagini utilizzando DreamBooth

Oggi dimostrerò come addestrare un modello a diffusione stabile utilizzando il mio viso come riferimento iniziale per generare immagini con uno stile altamente coerente e accurato, originale e fresco.

Quindi, a questo scopo, utilizzeremo un Google Colab chiamato DreamBooth per addestrare Stable Diffusion.

Prima di lanciare questo Google Colab, dobbiamo preparare alcune risorse di contenuto.

Fase 1: Google Drive con spazio libero sufficiente

Per questo, è necessario un account Google Drive con almeno 9 GB di spazio libero.

Un account Google Drive gratuito viene fornito con 15 GB di spazio di archiviazione gratuito, che è sufficiente per questa attività. Quindi puoi creare un nuovissimo account Gmail (usa e getta) proprio per questo scopo.

google drive

Fase 2: immagini di riferimento per addestrare l'IA

In secondo luogo, devi avere almeno una dozzina di ritratti del tuo viso o qualsiasi oggetto bersaglio pronto per l'uso come riferimento.

  • Assicurati che i tratti del viso siano visibili e adeguatamente illuminati nelle immagini acquisite. Evita di usare ombre dure, in particolare sul viso.
  • Inoltre, il soggetto dovrebbe essere rivolto verso la fotocamera o avere un profilo laterale in cui sia gli occhi che tutti i tratti del viso siano chiaramente visibili.
  • La fotocamera dovrebbe essere in grado di catturare caratteristiche facciali di alta qualità. L'opzione migliore è una fotocamera DSLR o mirrorless di livello professionale. Può bastare anche una fotocamera per smartphone di ottima qualità.
  • La composizione dovrebbe essere posizionata al centro dell'inquadratura con un piccolo spazio di testa.
  • Come immagini di input, dovrebbero essere sufficienti un minimo di dodici foto ravvicinate del viso, cinque foto a metà ripresa che coprono dalla testa fino al di sopra della vita e circa tre foto a figura intera.
  • A tale scopo dovrebbero essere sufficienti almeno venti fotografie di riferimento.

birme faces

Nel mio caso, ho scattato e raccolto una raccolta di circa 50 autoritratti, che ho ritagliato a 512 x 512 pixel utilizzando lo strumento online – Birme. Puoi anche utilizzare qualsiasi editor di immagini alternativo per questo scopo.

Tieni presente che l'immagine di output finale deve essere ottimizzata per il Web e ridotta nelle dimensioni del file con una perdita di qualità minima.

Fase 3: Google Colab

È ora possibile eseguire il runtime di Google Colab.

Esistono versioni sia gratuite che a pagamento della piattaforma Google Colab. Dreambooth può essere eseguito sulla versione gratuita, ma le prestazioni sono significativamente più veloci e coerenti sulla versione Colab Pro (a pagamento), che dà la priorità all'utilizzo di una GPU ad alta velocità e assegna almeno 15 GB di VRAM all'attività in corso.

Se non ti dispiace spendere qualche dollaro, un abbonamento Colab Pro da $ 10 che include 100 unità di calcolo ogni mese è più che adeguato per questa sessione.

google colab signup

Avrai anche accesso a RAM di memoria aggiuntiva e GPU relativamente più potenti e veloci.

Consentitemi di ribadire questo: NON è necessario essere uno specialista tecnico per eseguire questa Colab. Inoltre, non è necessaria alcuna precedente esperienza di codifica.

Dopo esserti registrato con Google Colab (versione gratuita oa pagamento), accedi con le tue credenziali e vai a questo link per aprire DreamBooth Stable Diffusion .

Un Google Colab ha sezioni o celle "runtime" con pulsanti di riproduzione cliccabili sul lato sinistro, che sono disposte in sequenza. Per riprodurre il runtime partendo dall'alto, è sufficiente fare clic sui pulsanti di riproduzione uno per uno. Ogni segmento è costituito da un runtime che deve essere eseguito. Quando si fa clic su un pulsante di riproduzione, la sezione corrispondente viene eseguita come runtime. Dopo qualche tempo, apparirà un segno di spunta verde a sinistra del pulsante di riproduzione per indicare che il runtime è stato eseguito correttamente.

Assicurati di eseguire manualmente solo un runtime alla volta e vai alla sezione "runtime" successiva solo quando il runtime corrente è terminato.

Nella parte di runtime della barra dei menu in alto, hai la possibilità di eseguire tutti i runtime contemporaneamente. Tuttavia, questo non è raccomandato.

change runtime type dreambooth

Sotto c'è un'opzione etichettata "Cambia tipo di runtime". Se sei abbonato a un abbonamento pro, puoi scegliere e salvare una GPU "premium" e una RAM elevata per la tua esecuzione.

choose high ram

Ora sei pronto per avviare DreamBooth Colab.

run dream booth

10 passaggi per completare con successo un modello di intelligenza artificiale addestrato su DreamBooth

PASSAGGIO 1: Decidi la GPU e la VRAM

Il passaggio iniziale consiste nel determinare il tipo di GPU e VRAM disponibili. Gli utenti Pro avranno accesso a GPU veloci e VRAM potenziate che sono più stabili.

determine GPU VRAM

Dopo aver fatto clic sul pulsante di riproduzione, verrà visualizzato un avviso perché è in corso l'accesso a GitHub, il sito Web di origine dello sviluppatore. Devi solo fare clic su " Esegui comunque " per continuare.

choose vram

PASSO 2: Esegui DreamBooth

Nel passaggio successivo, devi installare determinati requisiti e dipendenze. Devi solo fare clic sul pulsante di riproduzione e lasciarlo funzionare.

dreambooth play

PASSO 3: Accedi a Hugging Face

Dopo aver fatto clic sul pulsante di riproduzione, il passaggio successivo richiederà di accedere al tuo account Hugging Face. Puoi creare un account gratuito se non ne hai già uno. Una volta effettuato l'accesso, vai alla pagina delle impostazioni dall'angolo in alto a destra.

hugging face settings

Quindi, fare clic sulla sezione ' Access Tokens ' e sul pulsante ' Crea New ' per generare un nuovo "token di accesso" e rinominarlo come desiderato.

access tokens

Copia il token di accesso, quindi torna alla scheda Colab e inseriscilo nel campo fornito, quindi fai clic su " Accedi ".

login to huggingface

PASSO 4: Installa xformers

In questo passaggio, puoi fare clic sul runtime per installare xformers semplicemente premendo il pulsante di riproduzione.

install xformers

PASSO 5: Collega Google Drive

Dopo aver fatto clic sul pulsante di riproduzione , in una nuova finestra pop-up ti verrà chiesto il permesso di accedere al tuo account Google Drive. Fare clic su "Consenti" quando vengono richieste le autorizzazioni.

access google drive folder

Dopo aver concesso le autorizzazioni, devi confermare che " salva su Google Drive " è selezionato. È inoltre necessario impostare un nuovo nome per la variabile ' NOME CLASSE '. Se desideri inviare immagini di riferimento di una persona, metti semplicemente "persona", "uomo" o "donna". Se le tue immagini di riferimento sono di un cane, digita "cane" e così via. Puoi mantenere invariati i campi rimanenti. In alternativa, è possibile rinominare la directory di input - 'INSTANCE DIR' o la directory di output - 'OUTPUT DIR.'

dreambooth settings

PASSO 6: Carica le foto di riferimento

Dopo aver fatto clic sul pulsante di riproduzione nel passaggio precedente, vedrai l'opzione per caricare e aggiungere tutte le tue foto di riferimento.

upload images

Consiglierei un minimo di 6 e un massimo di 20 fotografie. Fare riferimento a "FASE 2" sopra per una spiegazione concisa di come selezionare la migliore immagine di riferimento in base a come viene catturato il soggetto.

select images

Una volta che tutte le tue immagini sono state caricate, puoi visualizzarle nella colonna di sinistra. C'è un'icona di cartella. Dopo aver fatto clic su di esso, sarai in grado di visualizzare le cartelle e le sottocartelle in cui sono attualmente archiviati i tuoi dati.

Sotto la directory dei dati, puoi visualizzare la tua directory di input, dove sono archiviate tutte le tue foto caricate. Nel mio caso, è noto come "sks" (nome predefinito).

Inoltre, tieni presente che questo contenuto viene archiviato solo temporaneamente nel tuo spazio di archiviazione di Google Colab e non su Google Drive.

input directory

start training

PASSO 7: Addestra il modello AI con DreamBooth

Questo è il passaggio più cruciale, poiché allenerai un nuovo modello di intelligenza artificiale basato su tutte le tue foto di riferimento caricate utilizzando DreamBooth.

train images dreambooth

Devi concentrarti solo su due campi di input. Il primo parametro è "—prompt di istanza". Qui devi inserire un nome molto univoco. Nel mio caso userò il mio nome seguito dalle mie iniziali. L'idea è di mantenere il nome completo unico e preciso.

Il secondo campo di input cruciale è il parametro '—class prompt'. Devi rinominarlo in modo che corrisponda a quello che hai usato in 'STEP 4'. Nel mio caso, ho usato il termine "uomo". Quindi lo riscriverò in questo campo e sovrascriverò qualsiasi voce precedente.

dreambooth parameters

Il resto dei campi può essere lasciato intatto. Ho osservato gli utenti che sperimentavano alterando campi come "—num class images" su 12 e "—max train steps" su 1000, 2000 o anche più. Tuttavia, ricorda che la modifica di questi campi può causare l'esaurimento della memoria e l'arresto anomalo di Colab, che richiede il riavvio dall'inizio. Pertanto, si consiglia di non modificarli al primo tentativo. Potresti sperimentarli in futuro dopo aver acquisito sufficiente esperienza.

Una volta eseguito questo runtime facendo clic sul pulsante di riproduzione, Colab inizierà a scaricare i file eseguibili necessari e sarà quindi in grado di allenarsi utilizzando le immagini di riferimento.

L'addestramento del modello richiederà da 15 minuti a più di un'ora. Devi essere paziente e tenere traccia dei progressi fino al completamento del runtime. Se il tuo Google Colab è inattivo per troppo tempo, potrebbe ripristinarsi. Quindi continua a controllare i progressi e a fare clic sulla scheda di tanto in tanto.

colab executing

execution complete

PASSO 8: Converti il ​​modello AI in formato ckpt

Al termine dell'addestramento, avrai la possibilità di convertire il modello addestrato in un file nel formato ckpt, che è direttamente compatibile con Stable Diffusion.

La conversione può essere eseguita in due fasi di runtime. Il primo è " Scarica script " e il secondo è " Esegui conversione ", in cui hai la possibilità di ridurre le dimensioni del download del modello addestrato. Tuttavia, così facendo si degraderà significativamente la qualità dell'immagine risultante.

Pertanto, per mantenere le dimensioni originali, l'opzione ' fp16 ' deve rimanere deselezionata.

run conversion

Al termine di questo particolare runtime, un file chiamato “ model.ckpt ” verrà salvato sul tuo Google Drive connesso.

model ckpt

Possiamo salvare questo file per un utilizzo futuro perché i tuoi tempi di esecuzione vengono immediatamente eliminati quando chiudi la scheda del browser DreamBooth Colab. Quando riaprirai la versione Colab di DreamBooth in un secondo momento, dovrai ricominciare da capo.

Supponiamo di salvare il file del modello addestrato su Google Drive. In tal caso, è possibile recuperarlo in un secondo momento per utilizzarlo con la GUI Stable Diffusion installata localmente, DreamBooth o qualsiasi notebook Stable Diffusion Colab che richiede il caricamento del file "model.ckpt" affinché il runtime funzioni in modo efficace. Puoi anche salvarlo sui tuoi dischi rigidi locali per un uso successivo.

PASSO 9: Prepararsi per il prompt testuale

I successivi due processi di runtime nella categoria "Inferenza" preparano il modello appena addestrato per il prompt testuale utilizzato per la generazione dell'immagine. Basta premere il pulsante di riproduzione per ogni runtime e finirà in pochi minuti.

inference

PASSO 10: Genera immagini AI

Questo è il passaggio finale, in cui puoi digitare i prompt testuali e verranno generate le immagini AI.

È necessario utilizzare il nome esatto di 'instance_prompt' e '–class_prompt' insieme dal PASSAGGIO 6 all'inizio del prompt di testo. Ad esempio, nel mio caso, ho usato "un ritratto di un uomo tarunabhtd, pittura digitale" per generare nuove immagini AI che assomigliano a me stesso.

image prompt

image generation

Di seguito puoi vedere alcuni risultati di immagini generati con il modello addestrato di DreamBooth.

sample generated images

Gioca con i prompt per ottenere i migliori risultati

Se segui attentamente i passaggi descritti sopra, sarai in grado di generare immagini AI che assomigliano molto ai lineamenti del viso nelle tue immagini di riferimento. Questo metodo richiede solo che la piattaforma online di Google Colab esegua una versione aggiornata della tecnologia AI per l'inversione testuale.

Per idee migliori per i messaggi di testo, puoi controllare siti come -

  • OpenArt AI
  • Krea AI
  • Lessico art

Devi anche imparare l'arte di creare prompt di testo migliori e più efficaci usando una varietà di stili artistici e varie combinazioni. Un buon punto di partenza sarebbe Stable Diffusion SubReddit.

Reddit ha un'enorme comunità dedicata a Stable Diffusion. Ci sono anche numerosi gruppi Facebook e comunità Discord che discutono, condividono ed esplorano attivamente nuove strade di diffusione stabile.

Di seguito condivido anche i collegamenti ad alcuni video tutorial di DreamBooth che puoi guardare su Youtube –

Spero che questa guida ti sia utile. Se hai domande, sentiti libero di commentare di seguito e cercheremo di aiutarti.

Autore:
Tarunabh Dutta è un regista pluripremiato che ha completato più di 45 progetti negli ultimi 16 anni, inclusi lungometraggi, cortometraggi, video musicali, documentari e pubblicità, sotto il suo marchio indipendente "TD Film Studio".