Najważniejszym ewolucyjnym skokiem w generowaniu obrazów za pomocą sztucznej inteligencji jest tworzenie spersonalizowanych modeli. Mam tu na myśli dodatkowe pakiety, które odwzorowują konkretne style lub obiekty, ale mogą być również używane do wstawiania twarzy danej osoby w unikalne sceny. Jest to możliwe dzięki platformie Dreambooth, opracowanej przez Google Research i Uniwersytet Bostoński. Najpopularniejszym zastosowaniem Dreambooth w tych dniach jest fine-tuning modeli kompatybilnych ze Stable Diffusion, a dziś wyjaśnimy, jak to zrobić.
Przekraczanie granic
Z trzech dostępnych modeli do generowania obrazów za pomocą sztucznej inteligencji, Stable Diffusion okazał się najbardziej elastyczny. Dlaczego? Z dwóch powodów: po pierwsze, jest darmowy i open source, a po drugie, dobrze współpracuje z modelami alternatywnymi. Ale skąd pochodzą te modele? Od samych użytkowników, którzy wykorzystują swój wydajny sprzęt lub darmowe opcje online do ich trenowania.
Problem trenowania niestandardowego lub „fine-tuningu” Stable Diffusion to jego zużycie VRAM. Trenowanie modelu z małą ilością pamięci wideo jest prawie niemożliwe, ale dzięki magii Google Colab, Google Drive, HuggingFace i kanałowi DotCSV na YouTube, dziś możemy to zrobić bez większych przeszkód i bez inwestowania tysięcy euro w sprzęt. Wymagania techniczne zostaną wyjaśnione na każdym kroku, więc nie pomijaj niczego!
Wytrenuj własny model do generowania obrazów za pomocą Dreambooth
- Pierwszym krokiem jest udanie się na stronę HuggingFace i utworzenie konta. Wymagany jest tylko adres e-mail i nazwa użytkownika. To ważne, ponieważ potrzebujemy jednego z tokenów dostępu do platformy. Po utworzeniu konta przejdź do Ustawienia -> Tokeny dostępu i kliknij Nowy token. Nadaj nazwę i określ funkcję Zapis. Nie oddalaj się zbyt daleko, ponieważ będziesz musiał skopiować token stąd później.
- Następnie musisz określić, jaką klasę modelu chcesz trenować, wybierając zestaw obrazów. Zalecana średnia to 20… i muszą być zróżnicowane. Celem jest pokazanie stylu, koncepcji, formatu, idei. Na przykład, załóżmy, że chcesz model inspirowany zdjęciami Polaroid. Jeśli skupisz się tylko na portretowych Polaroidach, model nigdy nie wyjdzie z tej formy, a idealnie jest odtworzyć szczegóły, błędy, „ciepło” i „vintage” esencję tych zdjęć.
- Trzeci krok jest prosty: dostosuj obrazy do dokładnego rozmiaru 512 x 512 pikseli. Portal Birme, o którym niedawno mówiliśmy, pozwoli Ci to zrobić w mgnieniu oka, dopasowując rozmiar i przycinając nadmiar. Zapisz obrazy w tymczasowym folderze, wrócimy do nich.
- Teraz wchodzimy do środowiska Google Colab skonfigurowanego przez DotCSV. Moja pierwsza rekomendacja? Nie bój się. Na początku wygląda to na coś zaprojektowanego przez kosmitów, ale w rzeczywistości to interfejs „krok po kroku” bardziej surowy niż zwykle. Przede wszystkim przejdź do „Środowisko wykonania”, wejdź w sekcję „Zmień typ środowiska wykonania” i upewnij się, że opcja „GPU” jest wybrana. To potwierdzi, że Google Colab ma przypisać odpowiednią kartę graficzną do zadania.
- Środowisko Google Colab zaprasza nas do podążania za jego krokami. Naciskamy przycisk Play w kroku 1 i akceptujemy ostrzeżenie, aby powiązać nasz Google Drive ze środowiskiem. Google Drive musi mieć co najmniej 4 GB wolnego miejsca, a moja sugestia to użycie alternatywnego konta.
- Następnie naciskamy przycisk Play obok opcji Dependencies. Jak sama nazwa wskazuje, zainstaluje to wszystkie zależności niezbędne do prawidłowego działania Dreambooth. Na szczęście nie trwa to zbyt długo.
- Krok 3 aktywuje pole, w którym musimy wprowadzić token wygenerowany w HuggingFace. Kliknięcie strzałki otworzy menu, kopiujemy token i wklejamy go w pole „HuggingFace_Token”. Zignoruj pozostałe opcje i naciśnij Play. Poczekaj, aż się zakończy.
- Krok czwarty prosi o dane dotyczące trenowania Dreambooth i to się zmienia w zależności od Twoich potrzeb: Czy planujesz trenować osobę, czy obiekt? Może artystę lub serial telewizyjny? Wybierz odpowiednią opcję z listy w polu „Training_Subject”, a następnie zmodyfikuj wyrażenie w „Subject_Type”, postępując zgodnie z przykładami poniżej. Jednak cała Twoja uwaga powinna skupić się na „Instance_name”. To jest symbol wieloznaczny, słowo kluczowe, którego użyjesz w promptach, aby „aktywować” wytrenowaną treść. Zaleca się użycie dziwnego słowa, które nie zostanie pomylone z czymś innym przez Stable Diffusion.
- Po naciśnięciu Play w kroku 4 Google Colab udostępni przycisk przesyłania, aby wgrać obrazy, które posłużą jako referencja w trenowaniu. Pamiętaj, muszą mieć rozmiar 512 x 512!
- Piąty krok jest opcjonalny i szczególnie przydatny, gdy tworzymy modele ludzi. W naszym teście nie jest konieczny, ale znajdziesz tam pięć różnych wartości. „person_ddim” to tryb domyślny, nie wahaj się go zmienić, aby poeksperymentować.
A teraz czekanie
Przycisk Play w kroku 6 rozpoczyna proces trenowania, a od tego momentu… cierpliwość. Ile to trwa? Dla standardowego pakietu 20 obrazów z 1600 krokami średnio to godzina, co jest bardzo rozsądne, biorąc pod uwagę, że uzyskujemy dostęp do całych gigabajtów VRAM za darmo. Poziom aktywności w Google Colab i karta graficzna skonfigurowana dla projektu również wpływają na końcową wydajność.
Gdy model jest już wytrenowany, pozostają tylko dwie rzeczy: przetestować go online, korzystając z kroku 7, lub pobrać plik ckpt z naszego konta Google Drive, aby uruchomić go offline z Automatic1111. Nie zapomnij dodać swojego słowa kluczowego do promptów, w przeciwnym razie nigdy nie zobaczysz poprawnych wyników wśród wygenerowanych obrazów.
Podsumowując, Dreambooth to niezwykle potężne narzędzie, ale wymaga kilku godzin nauki. W niektórych przypadkach trenowanie nie jest w pełni satysfakcjonujące i możesz być zmuszony spróbować ponownie z innym zestawem obrazów. Nie poddawaj się!
HuggingFace: Kliknij tutaj
Dreambooth w Google Colab: Kliknij tutaj