Von StyleGAN2 und dessen Bildqualität fasziniert und inspiriert wollten wir auch mit Bildgenerierung arbeiten. Eine Demo von StyleGAN2 findet man unter: thispersondoesnotexist.com.
Weitere Projektinfos
Viel Spaß mit dem Video 🍿
Dieses Projekt ist entstanden in Zusammenarbeit mit:Erarbeitet im Rahmen der Vorlesung “Digital Creativity” im Studiengang AI/ML an der Hochschule Luzern

Damit kann man schöne Videos zu erstellen, die von einem Bild zum anderen übergehen. Da die Bilder im “latent Space” interpoliert werden, nennt man dies einen “Latent Walk”. Eine Demonstration davon ist in diesem Video zu sehen, in dem ein Strand erzeugt wird.

Das ist schon sehr cool, aber es gibt noch mehr. Man kann Videos generieren, die sich einer Audio Datei anpassen, was als “Audioreactive Latent Walk” bezeichnet wird. Eine Demonstration davon ist im Video “Audio-reactive Latent Interpolations with StyleGAN2-ada” des YouTubers Nerdy Rodent zu sehen (Demo beginnt bei 5:50).

Auf dem YouTube-Kanal von Tim Hawkey gibt es noch einige weitere beeindruckende Videos, die hauptsächlich mit Stable Diffusion erstellt wurden.

Tools
Es gibt mehrere Bibliotheken und trainierte Modelle, die für die Erstellung eines solchen Videos verwendet werden müssen. Dazu gehören die Standard-ML-Bibliotheken wie numpy, tensorflow/pytorch, opencv und natürlich ein vortrainiertes StyleGAN2-Modell. Potenziell könnte das StyleGAN2-Modell gegen ein Stable-Diffusion-Modell ausgetauscht werden, da bereits einige Versuche unternommen wurden, Videos mit Stable Diffusion zu erstellen.
Process
Wir haben zunächst die folgenden Technologien ausprobiert:
StyleGAN 3
Gleich zu Beginn wollten wir das Projekt mit voller Energie angehen und die neuesten Technologien ausprobieren. Deshalb war unser erster Ansatz, auch StyleGAN 3 auszuprobieren.Leider mussten wir schnell feststellen, dass dies zum einen zu viel Rechenleistung erfordert, zum anderen aber auch nur sehr wenige Beispiele und Dokumentationen vorhanden sind.
Stable Diffusion
Während eine Person mit StyleGAN 3 beschäftigt war, versuchte die andere Person, Stable Diffusion zum Laufen zu bringen. Leider dauerte es zu lange, bis wir die Parameter so eingestellt hatten, dass wir gute Bilder bekamen, und das zog sich durch das ganze Video, wenn es nicht mit einer kostenpflichtigen GPU-Cloud verwendet wurde.
StyleGAN 2
Nachdem wir mit unserem Dozenten gesprochen hatten, suchten wir nach einer Alternative in StyleGAN 2 und stießen auf folgendes GitHub repo.
Maua StyleGAN
Aus dem oben erwähnten Repo haben wir den StyleGAN-Ansatz von maua genommen, ihn korrigiert und damit herumgespielt. Obwohl es sich um StyleGAN handelte, benötigte es immer noch eine Menge Rechenleistung, was ziemlich viel kostete, um “nur” einige Experimente auf Google Colab durchzuführen. maua_stylegan_song_1.mp4 maua_stylegan_song_2.mp4
BigGAN
Da wir mit den meisten anderen Modellen Probleme hatten, entschieden wir uns für ein kleines Modell, mit dem wir alles testen konnten, und wir waren sogar in der Lage, BigGAN lokal auf unseren Laptops auszuführen.Wir haben uns also für dieses Modell entschieden und ein großartiges GitHub-Repository gefunden, das wir für den Anfang genutzt haben. biggan.mp4
Final Product
Unser Endprodukt ist eine Mischung aus BigGAN und Stable Diffusion. Zuerst nehmen wir den Musik-Input und erstellen ein Video mit BigGAN. Wir nehmen die Frames des Videos aus BigGAN als Inputs für ein Stable Diffusion Img2Img Model und erstellen ein neues Video mit BigGAN. stable_diffusion_it_2.mp4
Folgende Einstellungen wurden verwendet:
truncation = 0.7
extra_detail = 0.9
max_frequency_level = 11000
low_frequency_skip = 16
frequency_band_growth_rate = 1.01
smoothing_factor = 0.1
iterations = 2
seed=42,
prompt=”Photorealistic, epic, focused, sharp, cinematic lighting, 4k, 8k, octane rendering, legendary, fantasy, trippy, LSD”,
num_steps=10,
unconditional_guidance_scale=7.5,
temperature=0.0,
batch_size=1,
input_image=img,
input_image_strength=0.5
stable_diffusion_it_1.mp4
Folgende Einstellungen wurden verwendet:
truncation = 0.7
extra_detail = 0.9
max_frequency_level = 11000
low_frequency_skip = 16
frequency_band_growth_rate = 1.01
smoothing_factor = 0.1
iterations = 1
seed=42,
prompt=”Photorealistic, epic, focused, sharp, cinematic lighting, 4k, 8k, octane rendering, beautiful”,
num_steps=15,
unconditional_guidance_scale=7.5,
temperature=0.0,
batch_size=1,
input_image=img,
input_image_strength=0.6
Code Struktur
- Audio in kleine Stücke schneiden
- Verwenden Sie audio fft, um Spektogramme für das in Schritt 1 erzeugte Stück zu erhalten.
- Zusammenfassen der Frequenz aus dem Spektogramm
- Gewogene Summe von Zufallsvektoren pro Spektogrammstärke erhalten (jeder Vektor hat noise_dim als Dimensionalität)
- Verwendung des Rauschens zur Erstellung eines Bildes / einer Aufforderungsklasse für die Interpolation
- Verwendung von Diffusion zur Erstellung des endgültigen Bildes
- Addieren Sie die Bilder und fügen Sie die Musik hinzu, um ein Video zu erhalten
Nutzung
Du findest die Datei mit dem Namen diffused-biggan.ipynb im Stammverzeichnis des Github Repos. Wir empfehlen, diese Datei auf Google Colab oder Lambda Labs hochzuladen, um die Bilderzeugung mithilfe einer GPU zu beschleunigen. setup.mp4
Outputs / Examples
- Check Plexatics YouTube Channel for more Examples
