„Sztuczna Inteligencja” i generowanie obrazów – czyli jak prosto, automatycznie oraz za darmo zmienić tekst w gotową grafikę
„Sztuczna inteligencja”, a właściwie uczenie maszynowe, to w ostatnim czasie bardzo popularny temat poruszany zarówno w mediach, jak i na sympozjach naukowych. Z tego też powodu dziś na tapet postanowiłem wziąć jeden z jego obszarów, który może przydać się zarówno części z Was w pracy twórczej, jak i przy prostych działaniach w mediach społecznościowych.
W tym artykule postaram się opisać, jak w łatwy i szybki sposób przy pomocy gotowego programu – bez posiadania jakiejkolwiek wiedzy z zakresu grafiki i plastyki – automatycznie wygenerować gotowy do użycia obrazek/grafikę na podstawie podanych przez nas krótkich fraz tekstowych, opisujących zjawisko, które chcemy na niej zawrzeć. W kilka minut zamieniając krótkie zdanie na praktycznie gotową do użycia grafikę lub grafikę koncepcyjną dla naszego projektu.
Instalacja
By tego dokonać, najpierw musimy zainstalować program, który nam w tym pomoże. Ja w tym artykule postawiłem na model Stable Diffusion (z zainstalowanym graficznym interfejsem, który będziemy mogli uruchomić z pozycji naszej przeglądarki internetowej). Myślę, że to jeden z najłatwiejszych sposobów dotarcia do celu, nie wymagający nawet znajomości zasad funkcjonowania komputerów. Dlatego właśnie na nim się tutaj skupię.
Aby zainstalować program, należy wykonać zawarte poniżej kroki:
- Pobierz i zainstaluj Git SCM, dostępny na stronie: https://git-scm.com/downloads (jeżeli posiadasz system operacyjny Windows, należy wybrać opcję „Download for Windows”).
- Pobierz skrypt Stable Diffusion web UI, dostępny na stronie: https://github.com/AUTOMATIC1111/stable-diffusion-webui (jest to graficzny interfejs w postaci aplikacji przeglądarkowej, pozwalający na łatwe wykorzystanie modelu Stable Diffusion). Aby go pobrać, wybierz przycisk „Code”, a następnie „Download ZIP”. Po pobraniu spakowanego skryptu, rozpakuj go tam, gdzie chcesz, by finalnie znajdował się Twój program (np. [C:Program Filesstable-diffusion-webui-master]).
- Po rozpakowaniu Stable Diffusion web UI, pobierz już właściwy model Stable Diffusion (model dyfuzji tekstu na obraz, służący do generowania fotorealistycznych obrazów). Dostępny jest on do pobrania na stronie: https://huggingface.co/CompVis/stable-diffusion-v-1-4-original – samo pobieranie jednak wymaga posiadania konta. By je zarejestrować wybieramy opcję „Sign Up”, a następnie postępujemy zgodnie z instrukcją. Po utworzeniu konta logujemy się używając opcji „Log in”, a następnie pobieramy plik „sd-v1-4.ckpt” (mniejszy model, zawierający 4GB wzorców) lub „sd-v1-4-full-ema.ckpt” (pełen model, zawierający 7GB wzorców). Po pobraniu wybranego przez nas pliku, przenosimy go do folderu [models -> Stable-diffusion] w folderze programu Stable Diffusion web UI (np. [C:Program Filesstable-diffusion-webui-mastermodelsStable-diffusion]).
- Pobierz i zainstaluj środowisko Python – obecnie skrypt jest najbardziej kompatybilny z wersją 3.10. Instalator można pobrać ze strony: https://www.python.org/downloads/windows/ – wybieramy z listy interesującą nas wersję, najlepiej w postaci „Windows installer (64-bit)”. Ważnym jest jednak, by w takim przypadku, na samym początku instalacji zaznaczyć opcję „Add python.exe to PATH”, gdyż bez niej później uruchamiany skrypt może nie zadziałać.
- Gdy posiadamy już na komputerze wszystkie wymagane składniki, teraz wchodzimy do folderu naszego Stable Diffusion web UI (np. [C:Program Filesstable-diffusion-webui-master]) i uruchamiamy plik „webui-user.bat”, następnie czekamy aż skrypt automatycznie pobierze i zainstaluje wszystkie pozostałe elementy. Przy pierwszym uruchomieniu może to potrwać nawet 30 min lub 1 godzinę (zależnie od posiadanego połączenia internetowego oraz parametrów komputera). Gdy jednak wszystko zostanie pobrane, następne uruchomienia będą trwały już bardzo szybko. Podczas pierwszego uruchomienia czekamy jednak tak długo, aż na widocznym oknie CMD pojawi się napis „Running on local URL: http://127.0.0.1:7860” – pod takim właśnie adresem dostępna będzie strona z naszą aplikacją, gdy tylko zakończy się jej konfiguracja. Podczas inicjalizacji może wystąpić jakiś błąd, należy wtedy zobaczyć czego on dotyczy i poprawić ustawienie, które nie odpowiada Pythonowi, a następnie uruchomić plik „webui-user.bat” ponownie. Kilka podpowiedzi co może pójść nie tak oraz sposoby ich rozwiązania znajdują się w punkcie poniżej.
Problemy, jakie mogą wystąpić podczas instalacji Stable Diffusion web UI:
Głównymi problemami, jakie można napotkać podczas instalacji Stable Diffusion web UI, są m.in.:
- Brak dostępu do sieci Internet – skrypt do poprawnego działania (przynajmniej w czasie pierwszego uruchomienia, gdy kompletuje wszystkie składniki) wymaga połączenia internetowego, by mógł pobrać wszystkie brakujące elementy. Gdy takiego połączenia nie ma, skrypt może zwrócić nam błąd, iż nie posiada dostępu do wszystkich plików.
- Niewłaściwa wersja środowiska Python – nie zawsze najnowsza wersja środowiska będzie dla nas najlepszą. Obecnie skrypt nie radzi sobie z Pythonem w wersji 3.11 i wyrzuca błędy podczas jego uruchamiania. W chwili pisania tego artykułu najlepiej działa on z wersją 3.10 – a dokładniej 3.10.8. Jeżeli nie możesz uruchomi skryptu, to bardzo możliwe, że posiadasz zainstalowaną niewłaściwą wersję środowiska Python, która nie jest w stanie go wykonać.
- Brak zaznaczenia „Add python.exe to PATH” podczas instalacji Pythona (o czym mowa była w instrukcji instalacji).
- Nie rozpoznawanie przez skrypt ścieżki do plików środowiska Python – problem ten może wystąpić, gdy podczas działania skryptu przeinstalowywaliśmy np. środowisko Python z najnowszej wersji, do 3.10 lub innej. Każda wersja Pythona domyślnie instalowana jest do innego folderu z oznaczonym numerem wersji. Jeżeli przeinstalujemy wersję Pythona już po uruchomieniu skryptu Stable Diffusion web UI, ten może mieć zapisaną ścieżkę do starej wersji środowiska, która już dla niego nie będzie istniała. W takim wypadku najlepiej od nowa rozpakować pobrane pliki Stable Diffusion web UI do interesującego nas katalogu, ponownie przekopiować do niego pobrane modele oraz uruchomić plik „webui-user.bat”.
- Nieaktualne sterowniki karty graficznej –w przypadku kart graficznych Nvidia skrypt wykorzystuje architekturę CUDA i musi mieć dostęp do odpowiedniej wersji sterowników karty graficznej. Bardzo często przy zbyt starych sterownikach karty graficznej skrypt może wyrzucać błędy z obsługą CUDA. Szybkim rozwiązaniem tego problemu jest ich aktualizacja do najnowszej wersji.
- Inne problemy – podczas instalacji mogą również wystąpić inne problemy, które nie zostały wyżej opisane, jednak Python najczęściej bardzo dobrze je sygnalizuje w oknie CMD przy pomocy odpowiedniego opisu błędów. Jeżeli mamy problem ze zlokalizowaniem źródła problemu, najlepiej udać się do wyszukiwarki Google, a na 100% znajdziemy jakieś rozwiązanie.
Uruchamianie programu Stable Diffusion web UI:
Gdy mamy już zainstalowane wszystkie elementy i wykonaliśmy powyższe instrukcje, a Stable Diffusion web UI zwróciło nam komunikat „Running on local URL: http://127.0.0.1:7860” podczas pierwszego jego uruchamiania, teraz jedyne co musimy wykonać, to po prostu uruchomić program Stable Diffusion web UI przy pomocy pliku „webui-user.bat”, a następnie przy pomocy dowolnej przeglądarki internetowej wejść na wskazany adres http://127.0.0.1:7860 i voila, przed nami otwiera się nowy świat.
Generowanie grafik przy pomocy AI:
Po uruchomieniu programu, kiedy przeszliśmy najtrudniejszą część całego zadania, właściwie jesteśmy już gotowi do pracy i w uruchomionym programie możemy po prostu w polu „Prompt” wpisać interesującą nas frazę (w języku angielskim) i wybrać opcję „Generate”, by wygenerować nasz pierwszy obraz. Myślę jednak, że warto nieco popracować nad parametrami i polepszyć nasze efekty. Dokonać możemy to przy pomocy prostej konfiguracji, jak wybór np.:
- modelu, z którego skrypt ma skorzystać (dla nas będzie to „sd-v1-4.ckpt” lub „sd-v1-4-full-ema.ckpt”);
- ilości kroków próbkowania (im większa liczba, tym lepsza jakość finalnego obrazka, jednak tym dłuższy czas generowania oraz ostatecznie większe obciążenie karty graficznej);
- metody próbkowania (opis dostępnych metod znajdziecie pod adresem: https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features);
- szerokości i wysokości generowanej grafiki – najlepiej wybierać z dostępnych wartości przy pomocy suwaków, gdyż użycie niestandardowego rozmiaru może spowodować błędy podczas generowania. Pamiętać należy też, że im większa grafika, tym więcej proces będzie potrzebował pamięci CUDA, a co z tym idzie, zbyt duża grafika na zbyt słabej karcie graficznej może się nam nie wykonać;
- funkcji dodatkowe (jak: Restore faces, Tiling, Highres. Fix);
- ilości generowanych obrazków;
- CFG Scale – który wpływa na to, jak bardzo grafika jest zgodna z opisem, a na ile skrypt może podejść kreatywnie do podanych zapytań;
Kiedy ustawimy wszystkie interesujące nas parametry, w polu „Prompt” wpisujemy interesującą nas frazę tekstową (w języku angielskim), na podstawie której program ma wygenerować obrazek i wybrać opcję „Generate”. W polu „Negative prompt” możemy natomiast umieścić rzeczy, których grafika nie powinna zawierać.
Poniżej załączam kilka grafik wygenerowanych przy pomocy programu:
(darker skin German girl with short hair style and hair band who is an Arabian mercenary)
(darker skin German woman with short hair and hair band on head who is an Arabian mercenary)
(Ferrari car van Gogh)
(anime cyber girl)
(anime robot girl)
(anime robo girl stained glass)
Tip optymalizacyjny w przypadku słabszych kart graficznych:
Jeżeli posiadamy słabszą kartę graficzną, skorzystać możemy z parametru –medvram. By tego dokonać, musimy wejść do folderu z programem Stable Diffusion web UI, przy pomocy Notatnika lub innego prostego edytora tekstowego otworzyć plik „webui-user.bat”, a następnie w wierszu „set COMMANDLINE_ARGS=” dopisać parametr „–medvram”.
Pełną listę kodów optymalizacyjnych znajdziecie pod tym adresem: https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Optimizations.
Demo Stable Diffusion 2:
Demo Stable Diffusion można przetestować również w postaci strony internetowej dostępnej pod adresem: https://huggingface.co/spaces/stabilityai/stable-diffusion.
Autor: Daniel 'zoNE’ Gabryś