Come eseguire la diffusione stabile in locale con una GUI su Windows
Pubblicato: 2022-09-18Puoi installare Stable Diffusion localmente sul tuo PC, ma il processo tipico richiede molto lavoro con la riga di comando da installare e utilizzare. Fortunatamente per noi, la comunità di Stable Diffusion ha risolto il problema. Ecco come installare una versione di Stable Diffusion che funziona localmente con un'interfaccia utente grafica!
Che cos'è la diffusione stabile?
Di cosa hai bisogno per eseguire questa versione di Stable Diffusion?
Come installare la diffusione stabile con una GUI
Installa prima Python
Installa Git e scarica il repository GitHub
Scarica Tutti i checkpoint
Come generare immagini utilizzando la diffusione stabile con una GUI
Come mascherare le immagini che crei per dipingere
Come correggere l'errore "CUDA fuori memoria".
Che cos'è la diffusione stabile?
Stable Diffusion è un modello di intelligenza artificiale in grado di generare immagini da prompt di testo o modificare immagini esistenti con un prompt di testo, proprio come MidJourney o DALL-E 2. È stato rilasciato per la prima volta nell'agosto 2022 da Stability.ai. Comprende migliaia di parole diverse e può essere utilizzato per creare quasi tutte le immagini che la tua immaginazione può evocare in quasi tutti gli stili.
Tuttavia, ci sono due differenze critiche che distinguono Stable Diffusion dalla maggior parte degli altri famosi generatori di arte dell'IA:
- Può essere eseguito localmente sul tuo PC
- È un progetto open source
L'ultimo punto è davvero la questione importante qui. Tradizionalmente, Stable Diffusion viene installato ed eseguito tramite un'interfaccia della riga di comando. Funziona, ma può essere goffo, non intuitivo ed è una barriera significativa all'ingresso per le persone che altrimenti sarebbero interessate. Ma, poiché si tratta di un progetto open source, la community ha rapidamente creato un'interfaccia utente per esso e ha iniziato ad aggiungere i propri potenziamenti, comprese le ottimizzazioni per ridurre al minimo l'utilizzo di video ram (VRAM) e creare upscaling e mascheramento.
Di cosa hai bisogno per eseguire questa versione di Stable Diffusion?
Questa versione di Stable Diffusion è un fork — una propaggine — del repository principale (repo) creato e mantenuto da Stability.ai. Ha un'interfaccia utente grafica (GUI) - che lo rende più facile da usare rispetto alla normale diffusione stabile, che ha solo un'interfaccia a riga di comando - e un programma di installazione che gestirà automaticamente la maggior parte dell'installazione.
CORRELATI: Come eseguire la diffusione stabile sul tuo PC per generare immagini AI
Avvertenza: come sempre, fai attenzione ai fork di software di terze parti che trovi su GitHub. Lo usiamo da un po' di tempo senza problemi, così come migliaia di altri, quindi siamo propensi a dire che è sicuro. Fortunatamente, il codice e le modifiche qui sono piccole rispetto ad alcuni fork di progetti open source.
Questo fork contiene anche varie ottimizzazioni che dovrebbero consentirgli di funzionare su PC con meno RAM, upscaling integrato e funzionalità facciali utilizzando GFPGAN, ESRGAN, RealESRGAN e CodeFormer e mascheramento. Il mascheramento è un grosso problema: ti consente di applicare selettivamente la generazione di immagini AI a determinate parti dell'immagine senza distorcere altre parti, un processo tipicamente chiamato inpainting.
- Un minimo di 10 gigabyte gratuiti sul disco rigido
- Una GPU NVIDIA con 6 GB di RAM (anche se potresti essere in grado di far funzionare 4 GB)
- Un PC con Windows 11, Windows 10, Windows 8.1 o Windows 8
- Il repository GitHub WebUI, di AUTOMATIC1111
- Python 3.10.6 (anche le versioni più recenti e la maggior parte delle versioni precedenti dovrebbero andare bene)
- The Stable Diffusion Official Checkpoints (Guarda i checkpoint v1.5 a fine settembre!)
- I checkpoint GFPGAN v1.3 (potrebbe funzionare anche v1.4)
- Eventuali modelli ESRGAN aggiuntivi che potresti desiderare. Puoi usarne quanti ne vuoi.
Come installare la diffusione stabile con una GUI
Il processo di installazione è stato notevolmente semplificato, ma ci sono ancora alcuni passaggi da eseguire manualmente prima di poter utilizzare il programma di installazione.
Installa prima Python
La prima cosa da fare è installare la versione di Python, 3.10.6, consigliata dall'autore del repository. Vai a quel link, scorri verso la parte inferiore della pagina e fai clic su "Windows Installer (64-Bit)".
Fai clic sull'eseguibile che hai scaricato e segui le istruzioni. Se hai già installato Python (e sicuramente lo fai), fai semplicemente clic su "Aggiorna". Altrimenti segui le istruzioni consigliate.
Nota: assicurati di aggiungere Python 3.10.6 al PATH se ottieni un'opzione per questo.
Installa Git e scarica il repository GitHub
È necessario scaricare e installare Git su Windows prima di poter eseguire il programma di installazione di Stable Diffusion. Basta scaricare l'eseguibile Git a 64 bit, eseguirlo e utilizzare le impostazioni consigliate a meno che tu non abbia in mente qualcosa di specifico.
CORRELATI: Come installare Git su Windows
Successivamente, devi scaricare i file dal repository GitHub. Fare clic sul pulsante verde "Codice", quindi fare clic su "Scarica ZIP" nella parte inferiore del menu.
Apri il file ZIP in Esplora file o nel tuo programma di archiviazione file preferito, quindi estrai il contenuto ovunque desideri. Tieni presente che la cartella è dove dovrai andare per eseguire Stable Diffusion. Questo esempio li ha estratti nella directory C:\, ma non è essenziale.
Nota: assicurati di non trascinare accidentalmente "stable-diffusion-webui-master" su un'altra cartella anziché su uno spazio vuoto: se lo fai, cadrà in quella cartella, non nella cartella principale che volevi.
Scarica Tutti i checkpoint
Ci sono alcuni checkpoint necessari per farlo funzionare. Il primo e il più importante sono i checkpoint di diffusione stabile. Devi creare un account per scaricare i checkpoint, ma non è richiesto molto per l'account: tutto ciò di cui hanno bisogno è un nome e un indirizzo e-mail e sei a posto.
Nota: il download dei checkpoint è di diversi gigabyte. Non aspettarti che venga fatto all'istante.
Copia e incolla "sd-v1-4.ckpt" nella cartella "stable-diffusion-webui-master" dalla sezione precedente, quindi fai clic con il pulsante destro del mouse su "sd-v1-4.ckpt" e premi rinomina. Digita "model.ckpt" nel campo di testo e premi Invio. Assicurati che sia "model.ckpt" - altrimenti non funzionerà.
Nota: la funzione di ridenominazione è un'icona su Windows 11.
Devi anche scaricare i checkpoint GFPGAN. L'autore del repository che stiamo utilizzando ha richiesto i checkpoint GFPGAN v1.3, ma potresti essere in grado di utilizzare v1.4 se vuoi provarlo. Scorri la pagina verso il basso, quindi fai clic su "Modello V1.3".
Inserisci quel file, "GFPGANv1.3.pth", nella cartella "stable-diffusion-webui-master" proprio come hai fatto con il file "sd-v1-4.ckpt", ma non rinominarlo. La cartella "stable-diffusion-webui-master" dovrebbe ora contenere questi file:
Puoi anche scaricare tutti i checkpoint ESRGAN che desideri. In genere vengono confezionati come file ZIP. Dopo averne scaricato uno, apri il file ZIP, quindi estrai il file ".pth" nella cartella "ESRGAN". Ecco un esempio:
I modelli ESRGAN tendono a fornire funzionalità più specifiche, quindi scegline un paio che ti piacciono.
Ora devi solo fare doppio clic sul file "webui-user.bat", che si trova nella cartella principale "stable-diffusion-webui-master". Apparirà una finestra della console e inizierà a recuperare tutti gli altri file importanti, creare un ambiente Python e configurare un'interfaccia utente web. Sembrerà così:
Nota: aspettati che la prima volta che esegui questa operazione richieda almeno alcuni minuti. Ha bisogno di scaricare un sacco di cose da Internet. Se sembra bloccarsi per un tempo irragionevolmente lungo in un passaggio, prova semplicemente a selezionare la finestra della console e premere il tasto Invio.
Al termine, la console visualizzerà:
In esecuzione su URL locale: http://127.0.0.1:7860 Per creare un collegamento pubblico, imposta `share=True` in `launch()`
CORRELATI: Qual è l'indirizzo IP 127.0.0.1 e come lo usi?
Come generare immagini utilizzando la diffusione stabile con una GUI
Bene, hai installato la variante WebUI di Stable Diffusion e la tua console ti ha fatto sapere che è "in esecuzione su URL locale: http://127.0.0.1:7860".
Nota: cosa significa esattamente, cosa sta succedendo? 127.0.0.1 è l'indirizzo localhost — l'indirizzo IP fornito dal tuo computer. Questa versione di Stable Diffusion crea un server sul tuo PC locale accessibile tramite il proprio indirizzo IP, ma solo se ti connetti tramite la porta corretta: 7860.
Apri il browser, inserisci "127.0.0.1:7860" o "localhost:7860" nella barra degli indirizzi e premi Invio. Vedrai questo nella scheda txt2img:
Se hai già utilizzato Stable Diffusion, queste impostazioni ti risulteranno familiari, ma ecco una breve panoramica del significato delle opzioni più importanti:
- Prompt: la descrizione di ciò che desideri creare.
- Pulsante Roll: applica uno stile artistico casuale al tuo prompt.
- Fasi di campionamento: il numero di volte in cui l'immagine verrà rifinita prima di ricevere un output. Di più è generalmente meglio, ma ci sono rendimenti decrescenti.
- Metodo di campionamento: la matematica sottostante che governa il modo in cui viene gestito il campionamento. Puoi usare uno qualsiasi di questi, ma euler_a e PLMS sembrano essere le opzioni più popolari. Puoi leggere di più sul PLMS in questo documento.
- Ripristina volti: utilizza GFPGAN per cercare di correggere volti inquietanti o distorti.
- Conteggio batch: il numero di immagini da generare.
- Dimensione lotto: il numero di "lotti". Mantieni questo a 1 a meno che tu non abbia un'enorme quantità di VRAM.
- Scala CFG: con quanta attenzione Stable Diffusion seguirà il prompt che gli dai. Numeri più grandi significano che lo segue con molta attenzione, mentre numeri più bassi gli conferiscono maggiore libertà creativa.
- Larghezza: la larghezza dell'immagine che desideri generare.
- Altezza: la larghezza dell'immagine che desideri generare.
- Seme: il numero che fornisce un input iniziale per un generatore di numeri casuali. Lasciarlo a -1 per generare casualmente un nuovo seme.
Generiamo cinque immagini in base al prompt: "una mucca dell'altopiano in una foresta magica, fotografia su pellicola 35 mm, nitida" e vediamo cosa otteniamo usando il campionatore PLMS, 50 fasi di campionamento e una scala CFG di 5.
Suggerimento: puoi sempre premere il pulsante "Interrompi" per interrompere la generazione se il tuo lavoro sta impiegando troppo tempo.
La finestra di output sarà simile a questa:
Nota: le tue immagini saranno diverse.
L'immagine in alto al centro è quella che useremo per provare a mascherare un po' più tardi. Non c'è davvero una ragione per questa scelta specifica diversa dalle preferenze personali. Prendi qualsiasi immagine che ti piace.
Selezionalo, quindi fai clic su "Invia a Inpaint".
Come mascherare le immagini che crei per dipingere
La pittura è una caratteristica fantastica. Normalmente la diffusione stabile viene utilizzata per creare intere immagini da un prompt, ma l'inpainting consente di generare (o rigenerare) parti dell'immagine selettivamente. Ci sono due opzioni critiche qui: inpaint masked, inpaint non mascherato.
Inpaint mascherato utilizzerà il prompt per generare immagini all'interno dell'area evidenziata, mentre inpaint non mascherato farà l'esatto contrario: verrà preservata solo l'area mascherata.
Tratteremo prima un po' di Inpaint mascherato. Trascina il mouse sull'immagine tenendo premuto il tasto sinistro del mouse e noterai uno strato bianco che appare sopra l'immagine. Disegna la forma dell'area che desideri sostituire e assicurati di riempirla completamente. Non stai girando intorno a una regione, stai mascherando l'intera regione.
Suggerimento: se stai solo aggiungendo qualcosa a un'immagine esistente, può essere utile provare ad allineare la regione mascherata con la forma approssimativa che stai cercando di creare. Mascherare una forma triangolare quando si desidera un cerchio, ad esempio, è controproducente.
Prendiamo l'esempio della nostra mucca dell'altopiano e diamogli un cappello da chef. Maschera una regione approssimativamente a forma di cappello da chef e assicurati di impostare "Batch Size" su più di 1. Probabilmente avrai bisogno di più per ottenere un risultato ideale (ish).
Inoltre, dovresti selezionare "Rumore latente" anziché "Riempi", "Originale" o "Niente latente". Tende a produrre i migliori risultati quando si desidera generare un oggetto completamente nuovo in una scena.
Nota: Noterai che il bordo sinistro del cappello ha cancellato parte del suo corno. Ciò è accaduto perché l'impostazione "Sfocatura maschera" era un po' troppo alta. Se vedi cose del genere nelle tue immagini, prova a ridurre il valore "Sfocatura maschera".
Va bene, forse un cappello da chef non è la scelta giusta per la tua mucca delle Highlands. La tua mucca dell'altopiano è più coinvolta nelle vibrazioni dell'inizio del XX secolo, quindi diamogli una bombetta.
Come positivamente azzimato.
Naturalmente, puoi anche fare l'esatto contrario con Inpaint Not Masked. È concettualmente simile, tranne per il fatto che le regioni definite sono invertite. Invece di contrassegnare la regione che desideri modificare, contrassegni le regioni che desideri preservare. È spesso utile quando si desidera spostare un piccolo oggetto su uno sfondo diverso.
Come correggere l'errore "CUDA fuori memoria".
Più grande è l'immagine che crei, maggiore è la memoria video richiesta. La prima cosa che dovresti provare è generare immagini più piccole. Stable Diffusion produce immagini buone, anche se molto diverse, a 256×256.
Se hai voglia di fare immagini più grandi su un computer che non ha problemi con le immagini 512 × 512, o stai riscontrando vari errori "Memoria insufficiente", ci sono alcune modifiche alla configurazione che dovrebbero aiutare.
Apri "webui-user.bat" nel Blocco note o in qualsiasi altro editor di testo normale che desideri. Basta fare clic con il pulsante destro del mouse su "webui-user.bat", fare clic su "Modifica", quindi selezionare Blocco note. Identificare la riga che legge set COMMANDLINE_ARGS=
. È qui che posizionerai i comandi per ottimizzare l'esecuzione di Stable Diffusion.
CORRELATI: Come scrivere uno script batch su Windows
Se vuoi solo fare foto enormi o stai esaurendo la RAM su una GPU della serie GTX 10XX, prova prima --opt-split-attention
. Sembrerà così:
Quindi fare clic su File > Salva. In alternativa, puoi premere Ctrl+S sulla tastiera.
Se continui a ricevere errori di memoria, prova ad aggiungere --medvram
all'elenco degli argomenti della riga di comando (COMMANDLINE_ARGS).
Puoi aggiungere --always-batch-cond-uncond
per provare a risolvere problemi di memoria aggiuntivi se i comandi precedenti non hanno aiutato. Esiste anche un'alternativa a --medvram
che potrebbe ridurre ulteriormente l'utilizzo della VRAM, --lowvram
, ma non possiamo attestare se funzionerà o meno.
L'aggiunta di un'interfaccia utente è un passo avanti fondamentale nel rendere accessibili a tutti questi tipi di strumenti basati sull'intelligenza artificiale. Le possibilità sono quasi infinite e anche una rapida occhiata alle comunità online dedicate all'arte dell'IA ti mostrerà quanto sia potente la tecnologia, anche quando è nella sua infanzia. Ovviamente, se non hai un computer da gioco o non vuoi preoccuparti della configurazione, puoi sempre utilizzare uno dei generatori di arte dell'IA online. Tieni presente che non puoi presumere che le tue voci siano private.