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
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.
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.
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.
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".
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ąć.
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!!).
Waszym oczom powinien ukazać się powyższy interfejs.
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
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"
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