Hur man kör stabil diffusion lokalt med ett gränssnitt på Windows


Du kan installera Stable Diffusion lokalt på din PC, men den typiska processen innebär mycket arbete med kommandoraden för att installera och använda. Lyckligtvis för oss har Stabil Diffusion-gemenskapen löst det problemet. Så här installerar du en version av Stable Diffusion som körs lokalt med ett grafiskt användargränssnitt!

Vad är stabil diffusion?

Stable Diffusion är en AI-modell som kan generera bilder från textmeddelanden, eller modifiera befintliga bilder med en textprompt, ungefär som MidJourney eller DALL-E 2. Den släpptes först i augusti 2022 av Stability.ai. Den förstår tusentals olika ord och kan användas för att skapa nästan vilken bild din fantasi kan frammana i nästan vilken stil som helst.

Det finns två kritiska skillnader som skiljer stabil diffusion från de flesta andra populära AI-konstgeneratorer:

  • Det kan köras lokalt på din PC
  • Det är ett projekt med öppen källkod

Den sista punkten är verkligen den viktiga frågan här. Traditionellt installeras och körs Stable Diffusion via ett kommandoradsgränssnitt. Det fungerar, men det kan vara klumpigt, ointuitivt, och det är ett betydande hinder för inträde för människor som annars skulle vara intresserade. Men eftersom det är ett projekt med öppen källkod skapade communityn snabbt ett användargränssnitt för det och började lägga till sina egna tillägg, inklusive optimeringar för att minimera användningen av video ram (VRAM) och bygga in uppskalning och maskering.

Vad behöver du för att köra den här versionen av stabil diffusion?

Den här versionen av Stable Diffusion är en gaffel — en utlöpare — av huvudförvaret (repo) som skapats och underhålls av Stability.ai. Den har ett grafiskt användargränssnitt (GUI) - vilket gör det lättare att använda än den vanliga stabila diffusionen, som bara har ett kommandoradsgränssnitt - och ett installationsprogram som hanterar det mesta av installationen automatiskt.

Denna gaffel innehåller också olika optimeringar som bör göra det möjligt för den att köras på datorer med mindre RAM, inbyggd uppskalning och ansiktsfunktioner med GFPGAN, ESRGAN, RealESRGAN och CodeFormer, och maskering. Maskering är en stor sak – det låter dig selektivt tillämpa AI-bildgenereringen på vissa delar av bilden utan att förvränga andra delar, en process som vanligtvis kallas inpainting.

  • Minst 10 gigabyte ledigt på din hårddisk
  • En NVIDIA GPU med 6 GB RAM (även om du kanske kan få 4 GB att fungera)
  • En dator som kör Windows 11, Windows 10, Windows 8.1 eller Windows 8
  • WebUI GitHub Repo, av AUTOMATIC1111
  • Python 3.10.6 (Nyere versioner och de flesta äldre versioner borde också fungera bra)
  • The Stable Diffusion Official Checkpoints (Se upp för v1.5-kontrollpunkterna!)
  • GFPGAN v1.4 Checkpoints
  • Alla ytterligare ESRGAN-modeller du vill ha. Du kan använda så många eller få som du vill.

Hur man installerar stabil diffusion med ett grafiskt användargränssnitt

Installationsprocessen har effektiviserats avsevärt, men det finns fortfarande några steg du behöver göra manuellt innan installationsprogrammet kan användas.

Installera Python först

Det första du bör göra är att installera versionen av Python, 3.10.6, som rekommenderas av författaren till repo. Gå till den länken, scrolla mot botten av sidan och klicka på Windows Installer (64-bitars).

Klicka på den körbara filen du laddade ner och gå igenom anvisningarna. Om du redan har Python installerat (och det gör du verkligen), klicka bara på Uppgradera. Följ annars de rekommenderade uppmaningarna.

Installera Git och ladda ner GitHub Repo

Du måste ladda ner och installera Git på Windows innan installationsprogrammet för stabil diffusion kan köras. Ladda bara ner den 64-bitars körbara Git-filen, kör den och använd de rekommenderade inställningarna om du inte har något specifikt i åtanke.

Därefter måste du ladda ner filerna från GitHub-repo. Klicka på den gröna Kod-knappen och klicka sedan på Ladda ner ZIP längst ner i menyn.

Öppna ZIP-filen i File Explorer eller ditt föredragna filarkiveringsprogram och extrahera sedan innehållet var du vill. Tänk bara på att mappen är dit du måste gå för att köra Stable Diffusion. Detta exempel extraherade dem till C:\-katalogen, men det är inte nödvändigt.

Ladda ner alla kontrollpunkter

Det finns några kontrollpunkter du behöver för att detta ska fungera. Den första och viktigaste är de stabila diffusionskontrollpunkterna. Du måste skapa ett konto för att ladda ner kontrollpunkterna, men det krävs inte mycket för kontot - allt de behöver är ett namn och en e-postadress, och du är klar.

Kopiera och klistra in sd-v1-4.ckpt i mappen C:\stable-diffusion-webui-master\models\Stable-diffusion, högerklicka sedan på sd-v1-4.ckpt och tryck på Byt namn . Skriv model.ckpt i textfältet och tryck på Enter. Var mycket säker på att det är model.ckpt - detta kommer inte att fungera annars.

Du måste också ladda ner GFPGAN-kontrollpunkterna. Författaren till repo som vi använder efterlyste GFPGAN v1.4-kontrollpunkter. Scrolla ner på sidan och klicka sedan på V1.4-modell.

Placera filen, GFPGANv1.4.pth, i mappen stable-diffusion-webui-master, men inte byt namn på den. Mappen stable-diffusion-webui-master bör nu innehålla dessa filer:

Du kan också ladda ner så många ESRGAN-kontrollpunkter du vill. De kommer vanligtvis förpackade som ZIP-filer. När du har laddat ner en, öppna ZIP-filen och extrahera sedan filen .pth till mappen models/ESRGAN. Här är ett exempel:

ESRGAN-modeller tenderar att ge mer specifik funktionalitet, så välj ut ett par som tilltalar dig.

Nu behöver du bara dubbelklicka på filen webui-user.bat, som finns i den primära mappen stable-diffusion-webui-master. Ett konsolfönster visas och börjar hämta alla andra viktiga filer, bygga en Python-miljö och ställa in ett webbanvändargränssnitt. Det kommer att se ut så här:

När det är klart kommer konsolen att visa:

Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`

Hur man genererar bilder med hjälp av stabil diffusion med ett GUI

Okej, du har installerat WebUI-varianten av Stable Diffusion, och din konsol låter dig veta att den körs på lokal URL: http://127.0.0.1:7860.

Öppna din webbläsare, skriv 127.0.0.1:7860 eller localhost:7860 i adressfältet och tryck på Enter. Du ser detta på fliken txt2img:

Om du har använt Stable Diffusion tidigare kommer dessa inställningar att vara bekanta för dig, men här är en kort översikt över vad de viktigaste alternativen betyder:

  • Prompt: Beskrivningen av vad du vill skapa.
  • Målarens palettknapp: Tillämpar en slumpmässig konstnärlig stil på din uppmaning.
  • Samplingssteg: Antalet gånger bilden kommer att förfinas innan du får en utdata. Mer är generellt sett bättre, men det finns minskande avkastning.
  • Samplingsmetod: Den underliggande matematiken som styr hur urvalet hanteras. Du kan använda vilken som helst av dessa, men euler_a och PLMS verkar vara de mest populära alternativen. Du kan läsa mer om PLMS i detta papper.
  • Återställ ansikten: Använder GFPGAN för att försöka fixa kusliga eller förvrängda ansikten.
  • Satsantal: Antalet bilder som ska genereras.
  • Batchstorlek: Antalet batcher. Behåll detta på 1 om du inte har en enorm mängd VRAM.
  • CFG-skala: Hur noggrant kommer stabil diffusion att följa uppmaningen du ger den. Större siffror betyder att den följer den mycket noggrant, medan lägre siffror ger den mer kreativ frihet.
  • Bredd: Bredden på bilden du vill generera.
  • Höjd: Bredden på bilden du vill generera.
  • Frö: Numret som ger en initial inmatning för en slumptalsgenerator. Lämna den på -1 för att slumpmässigt generera ett nytt frö.

Låt oss generera fem bilder baserade på uppmaningen: en höglandsko i en magisk skog, 35 mm filmfotografering, skarp och se vad vi får med PLMS-samplaren, 50 provtagningssteg och en CFG-skala på 5.

Utdatafönstret kommer att se ut så här:

Den övre mittenbilden är den vi kommer att använda för att testa för maskering lite senare. Det finns egentligen ingen anledning till detta specifika val annat än personliga preferenser. Ta vilken bild du vill.

Välj det och klicka sedan på Skicka till Inpaint.

Hur man maskerar bilder du skapar för att måla

Målning är en fantastisk funktion. Normalt används Stabil Diffusion för att skapa hela bilder från en prompt, men inpainting låter dig selektivt generera (eller regenerera) delar av bilden. Det finns två kritiska alternativ här: inpaint maskerad, inpaint inte maskerad.

Inpaint masked kommer att använda uppmaningen för att generera bilder inom det område du markerar, medan inpaint not masked kommer att göra raka motsatsen - bara området du maskerar kommer att bevaras.

Vi kommer att täcka lite om Inpaint masked först. Dra runt med musen på bilden och håll kvar vänsterklick och du kommer att märka att ett vitt lager dyker upp över bilden. Rita ut formen på det område du vill bytas ut och se till att fylla i det helt. Du cirklar inte en region, du maskerar i hela regionen.

Låt oss ta vår höglandsko som exempel och ge honom en kockhatt. Maskera ut ett område i ungefär formen av en kockhatt och se till att ställa in Batch Size till mer än 1. Du kommer förmodligen att behöva flera för att få ett perfekt(ish) resultat.

Dessutom bör du välja Latent Noise istället för Fill, Original eller Latent Nothing. Det brukar ge de bästa resultaten när du vill skapa ett helt nytt objekt i en scen.

Okej – kanske är en kockhatt inte rätt val för din ko i höglandet. Din höglandsko är mer inne på 1900-talets vibbar, så låt oss ge honom en bowlerhatt.

Vad positivt daft.

Självklart kan du också göra precis tvärtom med Inpaint Not Masked. Det är begreppsmässigt lika, förutom att regionerna du definierar är omvända. Istället för att markera den region du vill ändra, markerar du de regioner du vill ska bevaras. Det är ofta användbart när du vill flytta ett litet föremål till en annan bakgrund.

Hur man åtgärdar felet CUDA out Of Memory.

Ju större bild du gör, desto mer videominne krävs. Det första du bör prova är att skapa mindre bilder. Stabil diffusion ger bra — om än väldigt olika — bilder vid 256×256.

Om du längtar efter att göra större bilder på en dator som inte har problem med 512×512-bilder, eller om du stöter på olika Minnes slut-fel, finns det några ändringar i konfigurationen som borde hjälpa.

Öppna webui-user.bat i Anteckningar, eller någon annan vanlig textredigerare du vill ha. Högerklicka bara på webui-user.bat, klicka på Redigera och välj sedan Anteckningar. Identifiera raden som lyder set COMMANDLINE_ARGS=. Det är där du ska placera kommandona för att optimera hur stabil diffusion körs.

Om du bara vill ta stora bilder, eller om du får slut på RAM-minne på en GTX 10XX-serie GPU, prova --opt-split-attention först. Det kommer att se ut så här:

Klicka sedan på Arkiv > Spara. Alternativt kan du trycka på Ctrl+S på ditt tangentbord.

Om du fortfarande får minnesfel kan du försöka lägga till --medvram till listan med kommandoradsargument (COMMANDLINE_ARGS).

Du kan lägga till --always-batch-cond-uncond för att försöka fixa ytterligare minnesproblem om de tidigare kommandona inte hjälpte. Det finns också ett alternativ till --medvram som kan minska VRAM-användningen ännu mer, --lowvram, men vi kan inte intyga om det faktiskt kommer att fungera eller inte .

Tillägget av ett användargränssnitt är ett viktigt steg framåt för att göra den här typen av AI-drivna verktyg tillgängliga för alla. Möjligheterna är nästan oändliga, och till och med en snabb blick på online-gemenskaperna som är dedikerade till AI-konst kommer att visa dig hur kraftfull tekniken är, även i sin linda. Naturligtvis, om du inte har en speldator, eller om du inte vill oroa dig för installationen, kan du alltid använda en av AI-konstgeneratorerna online. Tänk bara på att du inte kan anta att dina bidrag är privata.