Jak używać stabilnej dyfuzji do tworzenia GIF-ów i filmów AI

Opublikowany: 2023-02-20
Kamera wideo, zilustrowana przez Stable Diffusion.
Stabilna dyfuzja
Aby utworzyć animację za pomocą interfejsu WWW Stable Diffusion, użyj Inpaint, aby zamaskować to, co chcesz przenieść, a następnie wygeneruj wariacje, a następnie zaimportuj je do GIF-a lub kreatora wideo. Ewentualnie zainstaluj rozszerzenie Deforum, aby generować animacje od podstaw.

Stabilna dyfuzja jest w stanie generować więcej niż tylko nieruchome obrazy. Dzięki wbudowanym narzędziom i specjalnemu rozszerzeniu możesz bez większego wysiłku uzyskać bardzo fajne wideo AI. Oto jak wygenerować klatki dla animowanego pliku GIF lub rzeczywistego pliku wideo za pomocą stabilnej dyfuzji.

Spis treści

Stabilna dyfuzja może generować wideo?
Animuj obraz za pomocą Inpaint
Krok 1: Uzyskaj obraz i jego monit
Krok 2: Zamaskuj części do animacji za pomocą programu InPaint
Krok 3: Wygeneruj swoje ramki
Krok 4: Skaluj wsadowo swoje ramki (opcjonalnie)
Krok 5: Animuj ramki w GIF-ie lub kreatorze wideo
Wygeneruj wideo za pomocą Deforum
Krok 1: Zainstaluj rozszerzenie Deforum
Krok 2: Napisz swoje podpowiedzi
Krok 3: Dostosuj ustawienia Deforum
Krok 4: Wygeneruj swój film

Stabilna dyfuzja może generować wideo?

Podczas gdy film generowany przez sztuczną inteligencję jest wciąż rodzącą się dziedziną, technicznie możliwe jest stworzenie kilku prostych animacji za pomocą Stable Diffusion, jako GIF lub rzeczywisty plik wideo. Istnieją jednak ograniczenia.

Ponieważ img2img ułatwia generowanie odmian konkretnego obrazu, Stable Diffusion dobrze nadaje się do szybkiego tworzenia wielu klatek animacji, w szczególności cyklicznych. Pomyśl o płomieniach liżących z ognia, obracających się kołach samochodu lub wodzie pluskającej w fontannie. Praktycznym zastosowaniem może być nadanie realistycznej atmosfery niektórym grafikom RPG:


Stabilna dyfuzja

Możesz nawet tworzyć filmy na podstawie prawdziwych obrazów zamiast syntetycznych. Tutaj zrobiłem zdjęcie podlewanej rośliny i kilkoma kliknięciami animowałem strumień wody:


Jordan Gloor / Stabilna dyfuzja

Jeśli chcesz animować obiekt, aby poruszał się z punktu A do punktu B, jest to trudne zadanie dla stabilnej dyfuzji (przynajmniej na razie). Prawdopodobnie spędziłbyś dużo czasu na poprawianiu monitów i ustawień, a następnie przeglądaniu tony wyników, aby znaleźć najlepsze klatki i umieścić je we właściwej kolejności. W tym momencie równie dobrze możesz wyrwać Adobe Illustrator i po prostu zacząć animować ręcznie.

Mimo to możesz tworzyć fajne, proste animacje za pomocą podstawowej konfiguracji stabilnej dyfuzji i innego wybranego narzędzia do łączenia klatek w animację. Istnieje również projekt o nazwie Deforum, który wykorzystuje stabilną dyfuzję do tworzenia „przekształcających się” animacji, które wyglądają całkiem interesująco. Wypluje wideo MP4, więc nie są wymagane żadne zewnętrzne narzędzia, a nawet pozwala dodać dźwięk. Pokażemy Ci podstawy obu metod.

Uwaga: na potrzeby tego artykułu założymy, że masz już zainstalowany interfejs graficzny dla Stable Diffusion, w szczególności interfejs sieciowy Stable Diffusion firmy AUTOMATIC1111. W porównaniu ze standardową instalacją z wiersza poleceń, znacznie ułatwia generowanie obrazów i zawiera mnóstwo przydatnych narzędzi i dodatków.

Animuj obraz za pomocą Inpaint

Za pomocą narzędzia img2img Inpaint możesz wyróżnić część obrazu, którą chcesz animować, i wygenerować kilka jej odmian. Następnie upuścisz je do GIF-a lub kreatora wideo i zapiszesz klatki jako animację.

Krok 1: Uzyskaj obraz i jego monit

Zacznij od upuszczenia obrazu, który chcesz animować, na kartę Inpaint narzędzia img2img. Jeśli nie masz jeszcze wygenerowanego, poświęć trochę czasu na napisanie dobrego monitu, aby uzyskać dobre zdjęcie początkowe. Możesz także zaimportować obraz, który sam sfotografowałeś lub narysowałeś.

Jeśli importujesz obraz, którego nie wygenerowałeś za pomocą Stable Diffusion, nadal będziesz potrzebować odpowiedniego monitu do generowania odmian, więc kliknij „Interrogate CLIP” u góry strony Img2Img. To wygeneruje monit startowy na podstawie tego, co według Stable Diffusion zawiera twój obraz. Uzupełnij monit, dodając inne ważne szczegóły.

Na potrzeby naszego przewodnika wygenerowaliśmy obraz robota o wymiarach 512×512 pikseli pod nocnym niebem, któremu chcemy nadać formę animacji poklatkowej, przedstawiającej spadające gwiazdy i przelatujące obok galaktyki.

Robot stojący na polu pod rozgwieżdżonym niebem.
Stabilna dyfuzja

Jeśli chcesz dokładnie śledzić, możesz odtworzyć go za pomocą monitu, którego użyliśmy:

 robot stoi na polu patrząc na nocne niebo podczas deszczu meteorytów, spadające gwiazdy, galaktyki, kosmos, droga mleczna, ultra realistyczny, bardzo szczegółowy, 4k uhd

A oto ustawienia, których użyliśmy:

Punkt kontrolny: Stabilna dyfuzja 2.0

Metoda próbkowania: DPM++ SDE

Kroki pobierania próbek: 20

Skala CFG: 5

Nasiona: 4177542269

Krok 2: Zamaskuj części do animacji za pomocą programu InPaint

Po umieszczeniu obrazu i monitu w narzędziu Inpaint użyj pędzla, aby zamaskować (zakryć) każdą część obrazu, którą chcesz animować. Pozostaw odkryte wszystko, co chcesz statyczne.

W naszym przykładzie pokrywamy większość nieba. Zostawiliśmy trochę poduszki wokół robota, ponieważ w naszych testach, gdy podeszliśmy zbyt blisko, funkcja Stable Diffusion czasami dodawała do robota anteny i inne dodatki.

Użyj pędzla Inpaint, aby pokryć każdą część obrazu, którą chcesz animować.

Porada: Możesz dostosować rozmiar pędzla Inpaint za pomocą suwaka, klikając przycisk pędzla w prawym górnym rogu płótna.

Krok 3: Wygeneruj swoje ramki

Po zamaskowaniu każdej części obrazu, która ma się poruszać, nadszedł czas na wygenerowanie klatek naszej animacji. Ale najpierw upewnij się, że img2img ma odpowiednie ustawienia. Mogą być mylące, więc wyjaśnimy, co oznaczają niektóre z nich i dlaczego możesz lub nie chcesz je modyfikować:

  • Tryb maski: Inpaint Masked – gwarantuje, że wszystko, co jest zakryte, zostanie zmienione, a nie na odwrót. Jeśli z jakiegoś powodu chcesz zamiast tego zmodyfikować zdemaskowaną część, zmień ją na „Inpaint Not Masked”.
  • Zamaskowana treść: Oryginalna — gwarantuje, że stabilna dyfuzja zobaczy i weźmie pod uwagę istniejący obraz podczas generowania odmian. W przeciwnym razie uzna zamaskowaną zawartość za puste lub losowe płótno.
  • Inpaint Area: Whole Picture – Zmusza to stabilną dyfuzję do generowania zupełnie nowego obrazu dla każdej klatki przed zintegrowaniem go z oryginalnym obrazem. Przełączenie na „Tylko zamaskowane” może przyspieszyć generowanie, ale może też dać gorsze wyniki.
  • Metoda próbkowania: DPM++ SDE — jest to ta sama metoda próbkowania, której użyliśmy do wygenerowania naszego oryginalnego obrazu i trzymamy się jej, aby zapewnić spójny wygląd. Jeśli nie wiesz, czego użyć, „Euler a” to wszechstronny dobry wybór.
  • Liczba partii: 60 — tyle obrazów chcesz wygenerować. Możesz potrzebować więcej lub mniej, w zależności od tego, jak szybko i jak długo chcesz mieć sekwencję animacji.
  • Skala CFG: 5 – Skala CFG w pewnym sensie określa, ile swobody twórczej ma Stabilna Dyfuzja. Im wyższa liczba, tym ściślej Stabilna dyfuzja będzie próbowała postępować zgodnie z Twoimi wskazówkami. Zwiększenie go i uzyskanie dobrych wyników wymaga posiadania bardzo dobrego monitu.
  • Siła odszumiania: 0,3 – prawdopodobnie najważniejsze ustawienie dla tego projektu, skala odszumiania określa, jak bardzo stabilna dyfuzja zmieni oryginalny obraz. Prawdopodobnie chcesz utrzymać go na poziomie około 0,2 lub 0,3, ponieważ zbyt duża zmiana między klatkami może zepsuć animację.
  • Seed: -1 – To mówi Stable Difusion, aby rozpocząć z losowym nasionem. Nie zalecamy ponownego używania materiału siewnego z oryginalnego obrazu, ponieważ zmniejsza to ilość uzyskanych zmienności (jeśli w ogóle występują).

Po skonfigurowaniu wszystkich ustawień kliknij „Generuj” i usiądź wygodnie, podczas gdy program Stable Diffusion narysuje dla Ciebie klatki animacji. Znajdziesz je w folderze /outputs/img2img-images w katalogu Stable Diffusion. Jeśli nie podobają ci się wyniki, dostosuj ustawienia (prawdopodobnie zaczynając od odszumienia i etapów próbkowania) i spróbuj ponownie.

Krok 4: Skaluj wsadowo swoje ramki (opcjonalnie)

Jeśli planujesz stworzyć wideo w wysokiej rozdzielczości, pamiętaj o przeskalowaniu wszystkich nowo wygenerowanych klatek do żądanej rozdzielczości. Kliknij „Wyślij do dodatków”, aby rozpocząć.

Wewnątrz dodatków przejdź do zakładki „Proces wsadowy”.

Dostosuj skalę „Zmień rozmiar” do wymaganej liczby razy (ustawienie na 2 zmieni obrazy 512×512 na obrazy 1024×1024). Ewentualnie przełącz się z „Skaluj według” na „Skaluj do” i ustaw określoną rozdzielczość. Ustaw także „Upscaler 1” na wybrany przez siebie skaler. Osiągnęliśmy wystarczająco dobre wyniki z R-ESRGAN 4x+, ale możesz poeksperymentować, aby zobaczyć, który najlepiej radzi sobie z Twoimi obrazami.

Następnie naciśnij „Generuj”, a Stable Diffusion da ci wersję każdej klatki w wyższej rozdzielczości, zapisaną w folderze /outputs/extras .

Krok 5: Animuj ramki w GIF-ie lub kreatorze wideo

Teraz, gdy masz już swoje klatki, nadszedł czas, aby połączyć je wszystkie razem i stworzyć ostateczną animację. Istnieje wiele narzędzi, za pomocą których możesz to zrobić, w tym bezpłatne dedykowane strony internetowe, takie jak Ezgif i flixier, które są łatwe w użyciu i mają wiele precyzyjnych elementów sterujących. Pamiętaj jednak, że te witryny mogą zobaczyć wszystko, co przesyłasz, więc nie dawaj im niczego, o czym świat nie wie.

Chociaż te strony są dość oczywiste, pokażemy, jak korzystać z bezpłatnego narzędzia do edycji zdjęć offline, GIMP, do tworzenia GIF-ów. Jeśli chcesz plik wideo, zamiast tego użyj Kdenlive lub podobnego edytora wideo - po prostu dostosuj ustawienia, aby wszystkie klatki były importowane jako klipy trwające jedną sekundę lub krócej, w zależności od liczby klatek na sekundę, które chcesz.

Aby rozpocząć, pobierz GIMP i zainstaluj go na swoim komputerze, jeśli jeszcze tego nie zrobiłeś. Uruchom go, a następnie przejdź do Plik> Otwórz jako warstwy.

Znajdź, gdzie znajdują się wygenerowane ramki i zaznacz je wszystkie naraz, zanim klikniesz „Otwórz”. (Przytrzymaj klawisz Shift, aby szybko wybrać wiele plików.) GIMP zaimportuje wszystkie twoje obrazy jako oddzielną warstwę na jednym płótnie. Chcemy tego, ponieważ sposób, w jaki działa generowanie GIF GIMP-a, polega na przejściu przez każdą warstwę od dołu do góry, traktując każdą kolejną warstwę jako następną klatkę animacji.

Teraz jest zabawna część. Aby obejrzeć podgląd GIF-a, przejdź do Filtry > Animacja > Odtwarzanie.

Naciśnij spację, aby odtwarzać i wstrzymywać GIF. Jeśli klatki płyną zbyt szybko lub wolno, dostosuj liczbę klatek na sekundę na dole okna dialogowego odtwarzania i kliknij przycisk odświeżania u góry, aby ponownie załadować podgląd z nową liczbą klatek na sekundę.

Gdy animacja wygląda dobrze, nadszedł czas na wygenerowanie pliku GIF. Zamknij podgląd i kliknij Plik > Eksportuj jako. Kiedy wpisujesz nazwę zapisu pliku, dodaj rozszerzenie .gif na końcu, aby GIMP wiedział, że chcesz GIF.

Dodaj „.gif” do nazwy pliku podczas eksportowania w GIMP.

W wyświetlonym oknie dialogowym eksportu GIF upewnij się, że zaznaczone jest pole „Jako animacja”. Dostosuj również liczbę milisekund między klatkami, jeśli chcesz uzyskać inną liczbę klatek na sekundę. W sekundzie jest 1000 milisekund, więc 100 zapewni ci około 10 FPS. Na koniec kliknij „Eksportuj”.

Bum, masz kompletny animowany GIF.


Wygeneruj wideo za pomocą Deforum

Jeśli chcesz tworzyć bardziej interesujące animacje za pomocą stabilnej dyfuzji i wyświetlać pliki wideo zamiast tylko kilku klatek do pracy, użyj Deforum. Jest to projekt syntezy obrazu z rozszerzeniem dostępnym dla interfejsu WWW Stable Diffusion, który umożliwia kierowanie i generowanie plików wideo MP4, nawet z dźwiękiem. To bardzo potężne i złożone narzędzie z wieloma ustawieniami do eksperymentowania, w tym panoramowaniem i powiększaniem kamery, wieloma monitami i importem wideo.

Dla naszych celów przedstawimy Ci tylko podstawy generowania dość prostej, ale interesującej animacji.

Krok 1: Zainstaluj rozszerzenie Deforum

Aby uzyskać rozszerzenie Deforum, otwórz wiersz polecenia i zmień katalogi na folder stable-diffusion-web-ui . Następnie użyj tego polecenia git clone, aby zainstalować Deforum w folderze rozszerzeń.

 klon git https://github.com/deforum-art/deforum-for-automatic1111-webui extensions/deforum

Uruchom interfejs sieciowy Stable Diffusion jak zwykle i otwórz kartę Deforum, która jest teraz w twoim interfejsie.

Wskazówka: rozszerzenie Deforum jest gotowe z ustawionymi ustawieniami domyślnymi, dzięki czemu możesz od razu nacisnąć przycisk „Generuj”, aby utworzyć film przedstawiający królika zmieniającego się w kota, następnie kokosa, a następnie duriana. Całkiem fajne!

Krok 2: Napisz swoje podpowiedzi

Możesz być przyzwyczajony do pisania pojedynczych monitów za pomocą stabilnej dyfuzji, ale Deforum pozwala pisać wiele monitów, które są „zaplanowane”, co oznacza, że ​​w dowolnym momencie wybranej animacji przełączy się na generowanie klatek na podstawie następnego monitu w harmonogramie.

Kliknij kartę „Podpowiedzi” i zmień istniejące podpowiedzi na dowolne, zachowując strukturę nawiasów i zakładek. W naszym przykładzie użyjemy tego zestawu monitów:

 {
    "0": "robot stoi pod nocnym niebem podczas deszczu meteorytów, spadające gwiazdy, galaktyki, kosmos, droga mleczna, ultra realistyczny, bardzo szczegółowy, 4k uhd",
    „40”: „stacja kosmiczna leci w kosmosie podczas deszczu meteorytów, ultra realistyczna, bardzo szczegółowa”,
    „80”: „eksploduje supernowa, żywe kolory, ultra realistyczne, bardzo szczegółowe”
}

Co więc oznaczają te liczby? Domyślnie Deforum generuje 120 klatek dla Twojej animacji, a my dzielimy ten zestaw klatek na trzy części. 0 oznacza pierwszą klatkę, więc ona i wszystkie kolejne klatki będą im2img odmianami pierwszego monitu. Następnie w klatce 40, Stable Diffusion zacznie tworzyć wariacje w oparciu o nasz drugi monit. Przy 80 przełącza się na trzecią. Możesz dodać tyle zmian monitów, ile chcesz, iw razie potrzeby dostosować maksymalny limit klatek na karcie Klatki kluczowe.

Krok 3: Dostosuj ustawienia Deforum

Prawdopodobnie już zauważyłeś, że w Deforum jest mnóstwo ustawień, ale omówimy kilka z nich, abyś mógł zacząć. Po pierwsze, w zakładce „Uruchom” znajdziesz wiele typowych ustawień stabilnej dyfuzji. Zmień nazwę partii, wprowadź ziarno, od którego chcesz zacząć (używamy go ponownie w naszym robocie) i zmień próbnik na taki, jaki chcesz.

W zakładce „Uruchom” zmień sampler, seed i nazwę partii na preferowane ustawienia.

W zakładce Klatki kluczowe możesz dostosować ruch „kamery” dla animacji. Domyślnie jest ustawiony na powiększanie w odstępach, ale chcemy dodać pionowy ruch „przesuwania”, więc dodamy 0:(-2), 100:(4) do ramki „Translacja Y”. To mówi Deforum, aby potraktował pierwszą klatkę jako piksel -2 na osi Y, a następnie przez klatkę 100 przesunął się do piksela 4. To da nam lekkie przesunięcie w górę w miarę postępu animacji.

Wprowadź wartości w polu „Translation Y”, jeśli chcesz, aby widok animacji zmieniał się w pionie.

Na karcie Wyjście zaznaczymy pole „Make GIF”, które da nam plik GIF oprócz pliku wideo MPEG. W tym miejscu możesz również dodać dźwięk za pomocą ustawień „Dodaj ścieżkę dźwiękową” i „Ścieżka dźwiękowa”, jeśli takie masz.

Na karcie Wyjście zaznacz pole „Utwórz GIF”, jeśli chcesz plik GIF.

Krok 4: Wygeneruj swój film

Na koniec naciśnij ten duży przycisk „Generuj”. Ponieważ Deforum tworzy i łączy wiele klatek, zajmie to trochę czasu, więc napij się kawy, czekając. Po zakończeniu znajdziesz plik MPEG, wersję GIF oraz każdą pojedynczą klatkę i odczyt ustawień, których użyłeś pod nazwą partii w katalogu /outputs/img2img-images .

Oto, co dał nam nasz monit:

To nie jest letni hit, ale wciąż jest hipnotyzujący! Sprawdź oficjalny przewodnik szybkiego startu Deforum, aby dowiedzieć się o wszystkich innych pokrętłach i pokrętłach, które możesz regulować.


Jeśli szukasz innych fajnych projektów AI, dowiedz się, jak generować pakiety tekstur Minecraft za pomocą Stable Diffusion lub zacznij korzystać z ChatGPT, a także poznaj zaskakujące rzeczy, które możesz zrobić za pomocą ChatGPT.