Cum să rulați Stable Diffusion local cu o interfață grafică pe Windows

Publicat: 2022-09-18

Imagine de antet. Un vultur ciudat, o pisică gri drăguță și o medusa cibernetică.

Puteți instala Stable Diffusion local pe computer, dar procesul tipic implică multă muncă cu linia de comandă de instalat și utilizat. Din fericire pentru noi, comunitatea Stable Diffusion a rezolvat această problemă. Iată cum se instalează o versiune de Stable Diffusion care rulează local cu o interfață grafică de utilizator!

Cuprins

Ce este difuzia stabilă?
De ce aveți nevoie pentru a rula această versiune de Stable Diffusion?
Cum se instalează Stable Diffusion cu o interfață grafică
Instalați Python mai întâi
Instalați Git și descărcați GitHub Repo
Descărcați Toate punctele de control
Cum se generează imagini utilizând difuzie stabilă cu o interfață grafică
Cum să mascați imaginile pe care le creați în Inpaint
Cum să remediați eroarea „CUDA epuizată din memorie”.

Ce este difuzia stabilă?

Stable Diffusion este un model AI care poate genera imagini din solicitări text sau poate modifica imaginile existente cu un prompt text, la fel ca MidJourney sau DALL-E 2. A fost lansat pentru prima dată în august 2022 de Stability.ai. Înțelege mii de cuvinte diferite și poate fi folosit pentru a crea aproape orice imagine pe care imaginația ta poate evoca în aproape orice stil.

Cu toate acestea, există două diferențe critice care diferențiază Stable Diffusion de majoritatea celorlalte generatoare de artă AI populare:

  • Poate fi rulat local pe computer
  • Este un proiect open-source
Difuziunea stabilă aduce generarea locală de artă AI pe computer
RELATED Difuziunea stabilă aduce generarea locală de artă AI pe computer

Ultimul punct este într-adevăr problema importantă aici. În mod tradițional, Stable Diffusion este instalat și rulat printr-o interfață de linie de comandă. Funcționează, dar poate fi greoi, neintuitiv și este o barieră semnificativă în calea accesului pentru persoanele care altfel ar fi interesate. Dar, deoarece este un proiect open source, comunitatea a creat rapid o interfață cu utilizatorul pentru acesta și a început să-și adauge propriile creșteri, inclusiv optimizări pentru a minimiza utilizarea video ram (VRAM) și pentru a construi upscaling și mascare.

De ce aveți nevoie pentru a rula această versiune de Stable Diffusion?

Această versiune a Stable Diffusion este o furcă – o ramură – a depozitului principal (repo) creat și întreținut de Stability.ai. Are o interfață grafică cu utilizatorul (GUI) - care o face mai ușor de utilizat decât Stable Diffusion obișnuită, care are doar o interfață de linie de comandă - și un program de instalare care se va ocupa de cea mai mare parte a instalării în mod automat.

LEGATE: Cum să rulați Stable Diffusion pe computer pentru a genera imagini AI

Avertisment: ca întotdeauna, fiți atenți la pachetele de software terță parte pe care le găsiți pe GitHub. Îl folosim de ceva vreme, fără probleme, la fel și mii de alții, așa că suntem înclinați să spunem că este sigur. Din fericire, codul și modificările de aici sunt mici în comparație cu unele bifurcări de proiecte open-source.

Această furcă conține, de asemenea, diverse optimizări care ar trebui să îi permită să ruleze pe computere cu mai puțină memorie RAM, upscaling încorporat și capabilități faciale folosind GFPGAN, ESRGAN, RealESRGAN și CodeFormer și mascare. Mascarea este o afacere uriașă - vă permite să aplicați în mod selectiv generarea de imagini AI anumitor părți ale imaginii fără a distorsiona alte părți, un proces numit de obicei inpainting.

  • Minim 10 gigaocteți liberi pe hard disk
  • Un GPU NVIDIA cu 6 GB de RAM (deși s-ar putea să poți face ca 4 GB să funcționeze)
  • Un PC care rulează Windows 11, Windows 10, Windows 8.1 sau Windows 8
  • WebUI GitHub Repo, de AUTOMATIC1111
  • Python 3.10.6 (versiunile mai noi și cele mai vechi versiuni ar trebui, de asemenea, să fie bine)
  • The Stable Diffusion Official Checkpoints (Urmăriți punctele de control v1.5 la sfârșitul lunii septembrie!)
  • Punctele de control GFPGAN v1.3 (și v1.4 ar putea funcționa)
  • Orice modele ESRGAN suplimentare pe care le doriți. Puteți folosi câte sau puține doriți.

Cum se instalează Stable Diffusion cu o interfață grafică

Procesul de instalare a fost simplificat în mod semnificativ, dar mai sunt câțiva pași pe care trebuie să îi faceți manual înainte ca programul de instalare să poată fi utilizat.

Instalați Python mai întâi

Primul lucru pe care trebuie să-l faceți este să instalați versiunea de Python, 3.10.6, recomandată de autorul depozitului. Mergeți la acel link, derulați spre partea de jos a paginii și faceți clic pe „Windows Installer (64-Bit)”.

Faceți clic pe executabilul pe care l-ați descărcat și parcurgeți solicitările. Dacă aveți deja instalat Python (și, cu siguranță, aveți), faceți clic pe „Upgrade”. În caz contrar, urmați instrucțiunile recomandate.

Notă: Asigurați-vă că adăugați Python 3.10.6 la PATH dacă obțineți o opțiune pentru asta.

Instalați Git și descărcați GitHub Repo

Trebuie să descărcați și să instalați Git pe Windows înainte ca programul de instalare Stable Diffusion să poată fi rulat. Doar descărcați executabilul Git pe 64 de biți, rulați-l și utilizați setările recomandate, dacă nu aveți ceva anume în minte.

LEGATE: Cum se instalează Git pe Windows

Apoi, trebuie să descărcați fișierele din depozitul GitHub. Faceți clic pe butonul verde „Cod”, apoi faceți clic pe „Descărcați ZIP” în partea de jos a meniului.

Deschideți fișierul ZIP în File Explorer sau în programul preferat de arhivare a fișierelor, apoi extrageți conținutul oriunde doriți. Rețineți că folderul este locul în care va trebui să mergeți pentru a rula Stable Diffusion. Acest exemplu le-a extras în directorul C:\, dar asta nu este esențial.

Trageți folderul „stable-diffusion-webui-master” oriunde doriți.

Notă: Asigurați-vă că nu trageți accidental „stable-diffusion-webui-master” într-un alt dosar, în loc de spațiu gol - dacă o faceți, acesta va fi introdus în acel dosar, nu în folderul părinte dorit.

Descărcați Toate punctele de control

Există câteva puncte de control de care aveți nevoie pentru ca acest lucru să funcționeze. Primele și cele mai importante sunt punctele de control de difuzie stabilă. Trebuie să creați un cont pentru a descărca punctele de control, dar nu este nevoie de mult pentru cont - tot ce au nevoie este un nume și o adresă de e-mail și sunteți gata.

Notă: Descărcarea punctelor de control este de câțiva gigaocteți. Nu vă așteptați să se facă instantaneu.

Copiați și inserați „sd-v1-4.ckpt” în folderul „stable-diffusion-webui-master” din secțiunea anterioară, apoi faceți clic dreapta pe „sd-v1-4.ckpt” și apăsați Redenumiți. Tastați „model.ckpt” în câmpul de text și apăsați Enter. Asigurați-vă că este „model.ckpt” — altfel nu va funcționa.

Notă: funcția de redenumire este o pictogramă pe Windows 11.

De asemenea, trebuie să descărcați punctele de control GFPGAN. Autorul depozitului pe care îl folosim a apelat pentru punctele de control GFPGAN v1.3, dar este posibil să puteți utiliza v1.4 dacă doriți să o încercați. Derulați în jos în pagină, apoi faceți clic pe „Model V1.3”.

Plasați acel fișier, „GFPGANv1.3.pth”, în folderul „stable-diffusion-webui-master”, așa cum ați făcut cu fișierul „sd-v1-4.ckpt”, dar nu- l redenumiți. Dosarul „stable-diffusion-webui-master” ar trebui să conțină acum aceste fișiere:

Acesta este modul în care ar trebui să arate folderul după ce ați redenumit modelul Stable Diffusion și ați adăugat modelul GFPGAN.

De asemenea, puteți descărca câte puncte de control ESRGAN doriți. De obicei, vin ambalate ca fișiere ZIP. După descărcarea unuia, deschideți fișierul ZIP și apoi extrageți fișierul „.pth” în folderul „ESRGAN”. Iată un exemplu:

Locația pentru modelele ESRGAN.

Modelele ESRGAN tind să ofere funcționalități mai specifice, așa că alegeți un cuplu care vă atrage.

Acum, trebuie doar să faceți dublu clic pe fișierul „webui-user.bat”, care se află în folderul principal „stable-diffusion-webui-master”. Va apărea o fereastră de consolă și va începe să preia toate celelalte fișiere importante, să construiască un mediu Python și să configureze o interfață de utilizator web. Va arata asa:

Notă: Așteptați-vă că prima dată când rulați acest lucru să dureze cel puțin câteva minute. Trebuie să descarce o grămadă de lucruri de pe Internet. Dacă pare să se blocheze pentru o perioadă nerezonabilă de lungă la un singur pas, încercați doar să selectați fereastra consolei și să apăsați tasta Enter.

Clientul WebUI descarcă și instalează toate activele.

Când se termină, consola va afișa:

 Rulează pe adresa URL locală: http://127.0.0.1:7860
Pentru a crea un link public, setați `share=True` în `launch()`

RELATE: Ce este adresa IP 127.0.0.1 și cum o utilizați?

Cum se generează imagini utilizând difuzie stabilă cu o interfață grafică

Bine, ați instalat varianta WebUI a Stable Diffusion, iar consola dvs. vă anunță că „rulează pe adresa URL locală: http://127.0.0.1:7860”.

Notă: Ce înseamnă exact asta, ce se întâmplă? 127.0.0.1 este adresa localhost - adresa IP pe care și-o oferă computerul. Această versiune de Stable Diffusion creează un server pe computerul dvs. local care este accesibil prin propria sa adresă IP, dar numai dacă vă conectați prin portul corect: 7860.

Deschideți browserul, introduceți „127.0.0.1:7860” sau „localhost:7860” în bara de adrese și apăsați Enter. Veți vedea asta în fila txt2img:

Prima pagină a clientului WebUI în Google Chrome.

Dacă ați mai folosit Stable Diffusion, aceste setări vă vor fi familiare, dar iată o scurtă prezentare generală a ceea ce înseamnă cele mai importante opțiuni:

  • Solicitare: descrierea a ceea ce doriți să creați.
  • Butonul Roll: aplică un stil artistic aleatoriu solicitării dvs.
  • Pași de eșantionare: de câte ori imaginea va fi rafinată înainte de a primi o ieșire. Mai mult este, în general, mai bine, dar există randamente descrescătoare.
  • Metoda de eșantionare: matematica de bază care guvernează modul în care este gestionată eșantionarea. Puteți folosi oricare dintre acestea, dar euler_a și PLMS par să fie cele mai populare opțiuni. Puteți citi mai multe despre PLMS în această lucrare.
  • Restaurare fețe: folosește GFPGAN pentru a încerca să remedieze fețele ciudate sau distorsionate.
  • Număr lot: numărul de imagini care trebuie generate.
  • Dimensiunea lotului: numărul de „loturi”. Păstrați acest lucru la 1, dacă nu aveți o cantitate enormă de VRAM.
  • Scala CFG: Cât de atent va urma Stable Diffusion solicitarea pe care i-o dați. Numerele mai mari înseamnă că îl urmărește cu mare atenție, în timp ce numerele mai mici îi oferă mai multă libertate creativă.
  • Lățimea: lățimea imaginii pe care doriți să o generați.
  • Înălțime: lățimea imaginii pe care doriți să o generați.
  • Seed: numărul care oferă o intrare inițială pentru un generator de numere aleatoare. Lăsați-l la -1 pentru a genera aleatoriu o nouă sămânță.

Să generăm cinci imagini pe baza promptului: „o vacă de munte într-o pădure magică, fotografie pe film de 35 mm, clară” și să vedem ce obținem folosind eșantionrul PLMS, 50 de pași de eșantionare și o scară CFG de 5.

Sfat: puteți apăsa oricând butonul „Întrerupere” pentru a opri generarea dacă munca dumneavoastră durează prea mult.

Fereastra de ieșire va arăta astfel:

Ieșire pentru un prompt despre vacile de pe munte. Cinci vaci de munte, două albe și negre.

Notă: imaginile dvs. vor fi diferite.

Imaginea de sus-mijloc este cea pe care o vom folosi pentru a o încerca pentru a masca puțin mai târziu. Nu există cu adevărat un motiv pentru această alegere specifică, în afară de preferințele personale. Luați orice imagine care vă place.

O vacă adorabilă de munte într-o pădure.

Selectați-l, apoi faceți clic pe „Trimite la Inpaint”.

Cum să mascați imaginile pe care le creați în Inpaint

Inpainting este o caracteristică fantastică. În mod normal, Difuziunea stabilă este folosită pentru a crea imagini întregi dintr-un prompt, dar inpainting vă permite să generați (sau să regenerați) în mod selectiv părți ale imaginii. Există două opțiuni critice aici: inpaint mascat, inpaint not masked.

Inpaint mascat va folosi solicitarea pentru a genera imagini în zona pe care o evidențiați, în timp ce inpaint nemascat va face exact opusul - doar zona pe care o mascați va fi păstrată.

Vom vorbi mai întâi despre Inpaint masked. Trageți mouse-ul pe imagine ținând clic stânga și veți observa un strat alb care apare deasupra imaginii. Desenați forma zonei pe care doriți să o înlocuiți și asigurați-vă că o completați în întregime. Nu înconjurați o regiune, mascați întreaga regiune.

Sfat: dacă doar adăugați ceva la o imagine existentă, poate fi util să încercați să faceți ca regiunea mascata să se alinieze cu forma aproximativă pe care încercați să o creați. Mascarea unei forme triunghiulare atunci când doriți un cerc, de exemplu, este contraproductivă.

Să luăm exemplul vaca noastră din munți și să-i dăm o pălărie de bucătar. Mascați o regiune în aproximativ forma unei pălării de bucătar și asigurați-vă că setați „Dimensiunea lotului” la mai mult de 1. Probabil veți avea nevoie de mai multe pentru a obține un rezultat ideal.

În plus, ar trebui să selectați „Zgomot latent” în loc de „Umplere”, „Original” sau „Nimic latent”. Tinde să producă cele mai bune rezultate atunci când doriți să generați un obiect complet nou într-o scenă.

Notă: veți observa că marginea din stânga a pălăriii a șters o parte din corn. Acest lucru s-a întâmplat deoarece setarea „Mask Blur” a fost puțin prea mare. Dacă vedeți astfel de lucruri în imaginile dvs., încercați să micșorați valoarea „Mask Blur”.
O vacă de munte cu pălărie de bucătar.
Solicitare: Căciulă de bucătar Setări: Mascată în vopsire, Difuzie latentă, CFG 9,5, puterea de dezgomot 0,75, Pași de prelevare = 50, Metoda de prelevare = Euler_A

Bine — poate că o pălărie de bucătar nu este alegerea potrivită pentru vaca ta de pe munte. Vaca ta din munți este mai interesată de vibrațiile de la începutul secolului al XX-lea, așa că hai să-i dăm o pălărie melon.

O vacă de munte cu o pălărie melon.
Prompt: Bwel hat Setări: Inpaint Masked, Latent Diffusion, CFG 9.5, puterea dezgomotului 0.75, Pași de eșantionare = 50, Metoda de eșantionare = Euler_A

Cât de elegant.

Desigur, puteți face exact opusul cu Inpaint Not Masked. Este similar din punct de vedere conceptual, cu excepția faptului că regiunile pe care le definiți sunt inversate. În loc să marcați regiunea pe care doriți să o modificați, marcați regiunile pe care doriți să le păstrați. Este adesea util atunci când doriți să mutați un obiect mic pe un fundal diferit.

Cum să remediați eroarea „CUDA Out Of Memory”.

Cu cât imaginea este mai mare, cu atât este nevoie de mai multă memorie video. Primul lucru pe care ar trebui să-l încercați este să generați imagini mai mici. Stable Diffusion produce imagini bune – deși foarte diferite – la 256×256.

Dacă doriți să faceți imagini mai mari pe un computer care nu are probleme cu imaginile de 512×512 sau dacă întâmpinați diverse erori „Memorie fără memorie”, există câteva modificări ale configurației care ar trebui să vă ajute.

Deschideți „webui-user.bat” în Notepad sau în orice alt editor de text simplu dorit. Doar faceți clic dreapta pe „webui-user.bat”, faceți clic pe „Editați”, apoi selectați Notepad. Identificați linia care citește set COMMANDLINE_ARGS= . Acolo vei plasa comenzile pentru a optimiza modul în care rulează Stable Diffusion.

LEGATE: Cum să scrieți un script batch pe Windows

Dacă doriți doar să faceți fotografii uriașe sau dacă rămâneți fără memorie RAM pe un GPU din seria GTX 10XX, încercați mai --opt-split-attention . Va arata asa:

Apoi faceți clic pe Fișier > Salvare. Alternativ, puteți apăsa Ctrl+S pe tastatură.

Dacă încă primiți erori de memorie, încercați să adăugați --medvram la lista de argumente ale liniei de comandă (COMMANDLINE_ARGS).

Puteți adăuga --always-batch-cond-uncond pentru a încerca să remediați probleme suplimentare de memorie dacă comenzile anterioare nu au ajutat. Există, de asemenea, o alternativă la --medvram care ar putea reduce și mai mult utilizarea VRAM, --lowvram , dar nu putem atesta dacă va funcționa sau nu.

Adăugarea unei interfețe cu utilizatorul este un pas esențial înainte pentru a face aceste tipuri de instrumente bazate pe inteligență artificială accesibile tuturor. Posibilitățile sunt aproape nesfârșite și chiar și o privire rapidă asupra comunităților online dedicate artei AI vă va arăta cât de puternică este tehnologia, chiar și în perioada incipientă. Desigur, dacă nu aveți un computer pentru jocuri sau nu doriți să vă faceți griji cu privire la configurare, puteți utiliza oricând unul dintre generatoarele de artă AI online. Rețineți că nu puteți presupune că intrările dvs. sunt private.