I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.
2 l
29
Doberek
Od jakiś 2 tygodni bawię się ze sztuczną inteligencją generującą obrazy z tekstu, a od tygodnia aktywnie udostępniam co lepsze wyniki.
Domyślam się, że nie jestem pierwszą osobą, która już taki tutorial wrzucała na dzidkę, ale w związku z rosnącą liczbą zapytań: co? gdzie? i jak?, doszedłem do wniosku, że jedna więcej dzida w tym temacie nie zaszkodzi a może kogoś przy okazji zmotywuje do zabawy.
Z góry ostrzegam- instrukcja jest skierowana głównie do totalnych laików w kwestiach związanych z oprogramowaniem i sztuczną inteligencją więc proszę wszystkich #programista15k o nie mieszanie mnie z błotem na starcie :D
Od jakiś 2 tygodni bawię się ze sztuczną inteligencją generującą obrazy z tekstu, a od tygodnia aktywnie udostępniam co lepsze wyniki.
Domyślam się, że nie jestem pierwszą osobą, która już taki tutorial wrzucała na dzidkę, ale w związku z rosnącą liczbą zapytań: co? gdzie? i jak?, doszedłem do wniosku, że jedna więcej dzida w tym temacie nie zaszkodzi a może kogoś przy okazji zmotywuje do zabawy.
Z góry ostrzegam- instrukcja jest skierowana głównie do totalnych laików w kwestiach związanych z oprogramowaniem i sztuczną inteligencją więc proszę wszystkich #programista15k o nie mieszanie mnie z błotem na starcie :D
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/TXS9Uh48gQnN6ygnlSb2qeHMIhqpCxfA.png)
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/VZWDJT59m34LL2IJLDN1IbpEdcaA8hhY.png)
Ale zacznijmy od początku: "Co to w ogóle jest?"
Stable Diffusion jest modelem tzw. głębokiego uczenia (deep learning) tekstu-na-obraz wypuszczony przez StabilityAI w tym roku.
W wielkim skrócie: wpisujesz co chcesz zobaczyć, a zadaniem sztucznej inteligencji jest, w oparciu o wyuczony model i losowe ziarno, wygenerować coś, co ma spełnić oczekiwania użytkownika.
Oczywiście wyniki nie zawsze są idealnie więc jest to często czasochłonna zabawa oparta na metodzie prób i błędów. Ale jak już wam się poszczęści, to SI potrafi "wypluć" naprawdę poważne dzieła (przykładowo powyższy portret wygenerowałem po kilku godzinach zabawy z danymi wejściowymi i po odrzuceniu około 300 innych wyników).
Z góry jeszcze tylko chciałbym ostrzec. Autorzy projektu sugeruje korzystanie ze sprzętu posiadającego co najmniej 4 GB VRAMu na karcie graficznej, chociaż działa przy mniejszych wartościach. Ogólnie im nowsza, mocniejsza karta tym szybciej będzie generowało grafiki.
Stable Diffusion jest modelem tzw. głębokiego uczenia (deep learning) tekstu-na-obraz wypuszczony przez StabilityAI w tym roku.
W wielkim skrócie: wpisujesz co chcesz zobaczyć, a zadaniem sztucznej inteligencji jest, w oparciu o wyuczony model i losowe ziarno, wygenerować coś, co ma spełnić oczekiwania użytkownika.
Oczywiście wyniki nie zawsze są idealnie więc jest to często czasochłonna zabawa oparta na metodzie prób i błędów. Ale jak już wam się poszczęści, to SI potrafi "wypluć" naprawdę poważne dzieła (przykładowo powyższy portret wygenerowałem po kilku godzinach zabawy z danymi wejściowymi i po odrzuceniu około 300 innych wyników).
Z góry jeszcze tylko chciałbym ostrzec. Autorzy projektu sugeruje korzystanie ze sprzętu posiadającego co najmniej 4 GB VRAMu na karcie graficznej, chociaż działa przy mniejszych wartościach. Ogólnie im nowsza, mocniejsza karta tym szybciej będzie generowało grafiki.
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/aiSIPkvPVdHCJKUZ8n3M1UL5TqFqyDfQ.png)
Przede wszystkim musimy przygotować nasz sprzęt do obsługi projektu. Stable diffusion jest napisany w języku programowania Python więc logicznym jest, że wpierw należy go zainstalować. Prosta sprawa- wchodzicie na stronę Pythona, pobieracie i instalujecie! Link do strony:
https://www.python.org/downloads/
Kolejnym krokiem byłoby już właściwie pobieranie samego projektu, ale by ułatwić sprawę, skorzystamy z innego oprogramowania- tj Git'a. Jest to system kontroli wersji, dzięki któremu łatwo, szybko i bezboleśnie pobierzecie repozytoria internetowe, a w przypadku jakichkolwiek zmian, równie szybko i łatwo jest zaktualizujecie zamiast od nowa pobierać całokształt.
Link do Git'a:
https://git-scm.com/downloads
Ponadto zalecam założyć konta na stronach:
https://github.com/
https://huggingface.co/
Konta są darmowe i będą wam za chwilę potrzebne.
Skoro mamy przygotowane fundamenty to możemy się zabrać za pobieranie poszczególnych składników.
https://www.python.org/downloads/
Kolejnym krokiem byłoby już właściwie pobieranie samego projektu, ale by ułatwić sprawę, skorzystamy z innego oprogramowania- tj Git'a. Jest to system kontroli wersji, dzięki któremu łatwo, szybko i bezboleśnie pobierzecie repozytoria internetowe, a w przypadku jakichkolwiek zmian, równie szybko i łatwo jest zaktualizujecie zamiast od nowa pobierać całokształt.
Link do Git'a:
https://git-scm.com/downloads
Ponadto zalecam założyć konta na stronach:
https://github.com/
https://huggingface.co/
Konta są darmowe i będą wam za chwilę potrzebne.
Skoro mamy przygotowane fundamenty to możemy się zabrać za pobieranie poszczególnych składników.
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/jKSKviMUgbmrYHLMof0em9yzSwibzexY.png)
Zaczynamy oczywiście od głównego interfejsu na którym będziemy pracować:
W moim przypadku korzystam ze Stable Diffusion WebUI, bo jest chyba najpopularniejszą ze wszystkich dostępnych opcji.
Tak więc wchodzimy pod poniższy link:
https://github.com/AUTOMATIC1111/stable-diffusion-webui
Powinna pojawić się wam strona jak na powyższej grafice. Klikacie w zielony przycisk z napisem "Code" i kopiujecie link https.
W moim przypadku korzystam ze Stable Diffusion WebUI, bo jest chyba najpopularniejszą ze wszystkich dostępnych opcji.
Tak więc wchodzimy pod poniższy link:
https://github.com/AUTOMATIC1111/stable-diffusion-webui
Powinna pojawić się wam strona jak na powyższej grafice. Klikacie w zielony przycisk z napisem "Code" i kopiujecie link https.
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/RF2RmB8KlU88e3R71gihCTSCw5Adls6o.png)
Następnie wybieramy gdzie chcemy zainstalować program. Prywatnie nie polecam instalować na dysku systemowym, bo szybko można go zapchać.
Jak już znajdziemy sobie dogodny folder, klikamy w nim prawym przyciskiem myszy i wybieramy "Git GUI here". Powinno wtedy wyskoczyć okienko jak te po lewej stronie i na nim klikamy na "Clone Existing Repository".
Jak już znajdziemy sobie dogodny folder, klikamy w nim prawym przyciskiem myszy i wybieramy "Git GUI here". Powinno wtedy wyskoczyć okienko jak te po lewej stronie i na nim klikamy na "Clone Existing Repository".
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/mldfc5TOnuq1JPhksoFAObyW7o7QW2y4.png)
Po kliknięciu na przycisk, powinno pojawić się wam powyższe okienko.
W "Source Location" wklejacie wcześcniej skopiowany link https z GitHub'a, a w Target Directory wpisujecie jak ma nazywać się nowo utworzony folder (nie musicie podawać pełnej ścieżki do wybranego miejsca). Następnie klikacie "Clone". Jeśli wyskoczy wam prośba o autoryzację czy logowanie- podajecie login do wcześniej założonego GitHub'a. Po tym jak program przemieli i pobierze projekt powinno wyskoczyć wam podobne okienko jak na poniższej grafice. Oznacza to, że projekt został już pobrany na wasz komputer. Okno możecie spokojnie zamknąć.
W "Source Location" wklejacie wcześcniej skopiowany link https z GitHub'a, a w Target Directory wpisujecie jak ma nazywać się nowo utworzony folder (nie musicie podawać pełnej ścieżki do wybranego miejsca). Następnie klikacie "Clone". Jeśli wyskoczy wam prośba o autoryzację czy logowanie- podajecie login do wcześniej założonego GitHub'a. Po tym jak program przemieli i pobierze projekt powinno wyskoczyć wam podobne okienko jak na poniższej grafice. Oznacza to, że projekt został już pobrany na wasz komputer. Okno możecie spokojnie zamknąć.
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/dEeiRaeN1lOxyI9FWGTcMXKYv48O14W3.png)
Po pobraniu otwórzcie folder projektu i wejdźcie w ścieżkę: "models\Stable-diffusion" w tym miejscu będziecie wrzucać tzw. modele. Osobiście pracowałem na dwóch: stockowym "stable-diffusion" oraz "waifu-diffusion". Różnica między nimi jest taka, że ten drugi jest wyuczony na bazie artów z pewnej strony z "anime dziewczynkami" i jest oparty na innym sposobie opisywania.
Dobra ale o tym potem. Linki do obu modeli:
- Stable-Diffusion: https://huggingface.co/CompVis/stable-diffusion-v1-3 (musicie założyć konto i zalogować się by otrzymać dostęp);
- Waifu-Diffusion: https://huggingface.co/hakurei/waifu-diffusion-v1-3/blob/main/wd-v1-3-full.ckpt
Jeśli będziecie mieli kilka opcji do wyboru, polecam wybrać wersję ważącą około 7GB. Te wersje poza samym działaniem pozwalają również na trenowanie modelu, jeśli będziecie chcieli kiedyś z tym się pobawić.
Prywatnie polecam wrzucać pojedynczy model do folderu, bo nie wiem jak u innych, ale u mnie spadała jakość obrazków, tak jakby program nie wiedział do końca z którego modelu ma korzystać.
Na samym dole macie link http- skopiujcie go i odpalcie w przeglądarce (nie wyłączajcie konsoli!!).
Dobra ale o tym potem. Linki do obu modeli:
- Stable-Diffusion: https://huggingface.co/CompVis/stable-diffusion-v1-3 (musicie założyć konto i zalogować się by otrzymać dostęp);
- Waifu-Diffusion: https://huggingface.co/hakurei/waifu-diffusion-v1-3/blob/main/wd-v1-3-full.ckpt
Jeśli będziecie mieli kilka opcji do wyboru, polecam wybrać wersję ważącą około 7GB. Te wersje poza samym działaniem pozwalają również na trenowanie modelu, jeśli będziecie chcieli kiedyś z tym się pobawić.
Prywatnie polecam wrzucać pojedynczy model do folderu, bo nie wiem jak u innych, ale u mnie spadała jakość obrazków, tak jakby program nie wiedział do końca z którego modelu ma korzystać.
Na samym dole macie link http- skopiujcie go i odpalcie w przeglądarce (nie wyłączajcie konsoli!!).
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/v2zaO053aO7PXkWtuhsESpOHU3nmldAP.png)
Waszym oczom powinien ukazać się powyższy interfejs.
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/OReoYo8G0Qnf58Qo4H7eQZzMimJMh2uS.png)
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/esuzAkWwq54tmDA8YWFcSPtlq9CGt7oG.png)
Teraz jeszcze szybko co gdzie i jak. Jako, że dopiero zaczynacie to nie będę was zanudzał jak to wszystko działa i co dany cosiek robi i po krótce opiszę najważniejsze (imo) punkty:
-"Prompt" to pole tekstowe gdzie wpisujecie co chcecie by SI wam narysowało. Im więcej szczegółów tym lepiej.
-"Negative Prompt" to pole tekstowe gdzie wpisujecie co NIE chcecie by SI wam narysowało. Np. określonego koloru oczu.
- "Sampling step" oznacza ile razy wasz obraz będzie próbkowany. Bawienie się tą zmienną to praktycznie metoda prób i błędów, ale im więcej razy program będzie próbkował pojedynczy obraz tym adekwatnie więcej czasu będzie potrzebował do zwrócenia obrazu.
- "Batch Count" to po prostu ile takich grafik ma wam jednorazowo wygenerować zbiór promptów o określonych parametrach.
Dobra, skoro już opisałem jak działa interfejs, no to poświęcę jeszcze chwilę na krótki opis różnic między modelem stable-diffusion a waifu-diffusion
-"Prompt" to pole tekstowe gdzie wpisujecie co chcecie by SI wam narysowało. Im więcej szczegółów tym lepiej.
-"Negative Prompt" to pole tekstowe gdzie wpisujecie co NIE chcecie by SI wam narysowało. Np. określonego koloru oczu.
- "Sampling step" oznacza ile razy wasz obraz będzie próbkowany. Bawienie się tą zmienną to praktycznie metoda prób i błędów, ale im więcej razy program będzie próbkował pojedynczy obraz tym adekwatnie więcej czasu będzie potrzebował do zwrócenia obrazu.
- "Batch Count" to po prostu ile takich grafik ma wam jednorazowo wygenerować zbiór promptów o określonych parametrach.
Dobra, skoro już opisałem jak działa interfejs, no to poświęcę jeszcze chwilę na krótki opis różnic między modelem stable-diffusion a waifu-diffusion
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/Drs8lEpjavPf2RKG9xOe9UVXG7uhG7Ry.png)
Powyższy obraz został wygenerowany z pomocą modelu stable-diffusion. Zapis Promptów w tym przypadku jest względnie uproszczony- dosłownie piszecie co chcecie by zostało wygenerowane. Przykładowo:
"Portrait of female knight with long hair, in armor, without helmet, oil painting"
"Portrait of female knight with long hair, in armor, without helmet, oil painting"
![I'm Something of a Artist Myself, czyli Stable-Diffusion dla opornych.](https://i1.jbzd.com.pl/contents/2022/10/normal/JqbefoMqSfiiDfa7uwHcERGjIVZObVwH.png)
Ten obraz natomiast został wygenerowany z pomocą modelu waifu-diffusion. Tak jak wcześniej wspomniałem, ten model jest oparty o system tagowania znany z takich stron jak Danbooru, Gelbooru... czy Rule34. Przykładowo:
"1 girl, solo,simple background, looking at the viewer, full view
green hair,brown hair, long hair, ornament, bangs, crossed bangs, purple eyes, single earring...", i tak dalej.
"1 girl, solo,simple background, looking at the viewer, full view
green hair,brown hair, long hair, ornament, bangs, crossed bangs, purple eyes, single earring...", i tak dalej.
Dobra mam nadzieję, że nie zanudziłem. Zapraszam do oglądania codziennie nowych zbiorów, które wrzucam na dzidkę i jeśli będziecie mieli jakiekolwiek problemy czy pytania- walcie śmiało. Postaram się w miarę moich możliwości na nie odpowiedzieć.
A teraz tradycyjnie wypierdalam ;P
A teraz tradycyjnie wypierdalam ;P