Dieses Netflix-KI-Modell entfernt jeden Schauspieler aus jeder Szene (VOID Model Breakdown)
BBetter Stack
Computing/SoftwareMoviesPhotography/ArtInternet Technology
Transcript
00:00:00Oh wow, das sieht irgendwie traurig aus, die arme Kate Winslet, oh mein Gott, sie steht da ganz allein, mit
00:00:09keinem Jack.
00:00:11Netflix hat gerade ein sehr interessantes Open-Source-KI-Tool namens Video Object and Interaction
00:00:17Deletion oder VOID veröffentlicht.
00:00:19Die meisten KI-Videotools sind bereits großartig darin, Objekte zu löschen, das ist nichts Neues.
00:00:24Aber sie sind schrecklich darin, die Auswirkungen dieser Objekte in der Szene zu löschen.
00:00:29Wenn man zum Beispiel eine Bowlingkugel entfernt, die Kegel trifft, lassen die meisten Modelle die Kegel
00:00:34ohne Grund umfallen, aber VOID versucht, dieses Problem zu lösen.
00:00:39Es ist ein neues Framework von Netflix und Insight, das Ursache und Wirkung versteht und den
00:00:44Videoinhalt basierend auf den entfernten Objekten modifiziert.
00:00:47In diesem Video schauen wir uns dieses Modell genauer an, sehen wie es funktioniert, und ich habe
00:00:52tatsächlich eine Web-App gebaut, um dieses Modell in seiner ganzen Pracht zu testen. Wir machen also
00:00:57ein paar eigene Videotests.
00:00:58Das wird ein Riesenspaß, also legen wir los.
00:01:05VOID steht für Video Object and Interaction Deletion.
00:01:09Um zu verstehen, warum das so wichtig ist, muss man sich ansehen, wie Video-Inpainting normalerweise
00:01:15funktioniert.
00:01:16Standard-KI-Radierer sind im Grunde „inhaltssensitives Füllen“ auf Steroiden.
00:01:20Sie schauen sich die Pixel um die Lücke an und versuchen zu raten, was dort sein sollte.
00:01:24Das funktioniert bei einem Wasserzeichen oder einer stillstehenden Person, aber es versagt in dem Moment,
00:01:29in dem eine physische Interaktion stattfindet.
00:01:31Wenn man ein Mädchen entfernt, das einen Smoothie im Mixer macht, löscht eine normale KI die Person,
00:01:36aber sie lässt den Mixer ohne Grund weiterdrehen und wirbeln.
00:01:40Es korrigiert das Aussehen, ignoriert aber die Physik der anderen Objekte drumherum.
00:01:46VOID wurde entwickelt, um dieses Geister-Interaktionsproblem zu lösen, indem es eine kontrafaktische Realität entwirft.
00:01:53Im Grunde eine Version des Videos, in der dieses Objekt oder diese Person von vornherein
00:01:57nie existiert hat.
00:01:58Und die Art und Weise, wie es das schafft, ist eigentlich ziemlich clever.
00:02:01Es fängt nicht einfach sofort an zu malen.
00:02:03Stattdessen verwendet es ein Zwei-Stufen-System.
00:02:06Im ersten Schritt findet eine Analysephase statt.
00:02:08Zuerst nutzt VOID ein Vision-Language-Modell und SAM2 (Segment Anything Model 2), um sich
00:02:15die Szene anzusehen.
00:02:16Ich habe bereits ein separates Video dazu gemacht, wie SAM2 funktioniert, schaut es euch bei Interesse an.
00:02:22Während SAM2 eine pixelgenaue Spur des zu entfernenden Objekts erstellt, stellt sich die KI
00:02:28die Frage: "Wenn ich das hier entferne, was ändert sich sonst noch?"
00:02:32Wenn man einen Dominostein aus einem Stapel entfernt, erkennt die KI, dass andere Dominosteine kausal
00:02:38davon betroffen sind.
00:02:39Sie erstellt dann das, was die Forscher eine "Quad Mask" nennen – eine spezifische Karte, die dem
00:02:44Diffusionsmodell nicht nur sagt, wo es löschen, sondern wo es die Physik der Umgebung
00:02:50neu schreiben soll.
00:02:51Und Schritt zwei ist dann die Generierung und Verfeinerung.
00:02:54Sobald diese Karte generiert ist, erstellt ein Video-Diffusionsmodell das neue Material.
00:03:00Manchmal können diese Modelle etwas ungenau sein, Objekte könnten morphen oder ihre Form verlieren.
00:03:05Um das zu beheben, bietet VOID einen optionalen zweiten Durchgang an.
00:03:08Dabei wird sogenanntes „Flow Warp Noise“ verwendet, um diese Formen zu fixieren. So wird sichergestellt,
00:03:14dass zwar die Physik angepasst wird, die verbleibenden Objekte aber solide und konsistent bleiben.
00:03:19Aber man fragt sich vielleicht: Wie bringt man einer KI bei, was nicht passiert ist?
00:03:23Das Team von Netflix und Insight konnte nicht einfach einen Autounfall filmen und ihn dann im
00:03:28echten Leben ungeschehen machen, um Trainingsdaten zu erhalten.
00:03:30Stattdessen nutzten sie synthetische Umgebungen wie Kubrick.
00:03:34Sie ließen Tausende von Physiksimulationen laufen, von denen sie eine Vorher- und eine Nachher-Version hatten.
00:03:40Eine Version mit einer Kollision und eine Version, in der das Objekt nie da war.
00:03:44Indem sie der KI beide Versionen zeigten, lernte sie den Zusammenhang zwischen der Anwesenheit
00:03:49eines Objekts und dessen Auswirkungen auf die Umgebung.
00:03:51Das klingt alles super faszinierend, aber testen wir das Tool nun mal selbst.
00:03:57Der beste Weg, es auszuführen, wäre die Nutzung einer Cloud-GPU, wie ein RunPod-Modul auf
00:04:02einer H100-GPU oder etwas Vergleichbarem.
00:04:05Aber ich sage es gleich vorweg: Die Einrichtung ist absolut nicht unkompliziert.
00:04:10Die GitHub-Dokumentation weist viele Lücken und irreführende Informationen auf.
00:04:14Damit es korrekt funktioniert, muss man auf einige Dinge achten.
00:04:18Zum Beispiel wird dieser Befehl wahrscheinlich fehlschlagen, weil nicht angegeben wurde, dass man
00:04:23das SAM3-Modell für diesen Vorgang benötigt.
00:04:25Und dieser Befehl könnte scheitern, weil nicht erwähnt wurde, dass Quad-Masken zwingend
00:04:30quad_mask_0.mp4 benannt werden müssen, um richtig zu funktionieren.
00:04:35Es gibt also viele dieser kleinen Probleme, die hier nicht dokumentiert sind.
00:04:38Ihre Gradio-Demo ist zwar nett, wenn man bereits eine mit SAM2 segmentierte Maske hat, aber sie
00:04:44bieten keine grafische Benutzeroberfläche an, um diese Maske tatsächlich zu erstellen.
00:04:48Ich habe daher eine benutzerdefinierte Web-App gebaut, die all diese Probleme behebt und eine
00:04:54fertige UI bietet. Sie deckt den Segmentierungsschritt, die Inferenz und sogar
00:05:00das Zwei-Stufen-System ab.
00:05:02Man kann einfach sein Video hochladen, die Maske segmentieren und das Endergebnis rendern.
00:05:07Und genau das werden wir jetzt tun.
00:05:09Zuerst muss man eine RunPod-Instanz mit einer leistungsstarken GPU starten.
00:05:14Ich werde für diesen Test eine H100 verwenden.
00:05:17Achtet im Vorlagenbereich darauf, die Containergröße auf 100 Gigabyte zu erhöhen.
00:05:22Und im Port-Bereich fügt den Port 8998 hinzu, da wir dort unsere Web-App
00:05:27bereitstellen werden.
00:05:29Dann muss man sich nur noch per SSH in den Pod einloggen, mein Repo klonen, hineinwechseln und
00:05:36den Befehl run.sh ausführen.
00:05:38Man wird auch nach einem Hugging-Face-Token gefragt, um die Modelle herunterladen zu können. Stellt
00:05:42zudem sicher, dass ihr Zugriff auf das SAM3-Repository habt, da dies ein zugangsbeschränktes
00:05:48Modell ist und man erst eine Erlaubnis anfordern muss.
00:05:51Normalerweise geht das aber recht schnell und man wird innerhalb weniger Minuten freigeschaltet.
00:05:55Außerdem benötigt ihr einen Gemini-API-Key, denn beim Segmentierungsschritt nutzt das Modell
00:06:00Gemini für die Pose-Estimation, um eine präzise Quad-Maske zu generieren.
00:06:06Alles klar.
00:06:07Wenn ihr beide Zugangsdaten habt, lasst den run.sh-Befehl alles installieren.
00:06:13Sobald das fertig ist, können wir die Web-App mit dem hier beschriebenen Befehl
00:06:18starten.
00:06:19Auf der RunPod-Seite müsst ihr nun auf diesen Port klicken, und das wird unsere Web-App
00:06:24öffnen.
00:06:25Jetzt können wir endlich anfangen, das Modell zu testen.
00:06:28Für meinen ersten Test nehme ich diese berühmte Szene aus Matrix und versuche,
00:06:32Neo aus der Szene zu entfernen, um zu sehen, was passiert.
00:06:35Als allererstes muss man den Prompt für die Entfernungsanweisung angeben.
00:06:41In diesem Fall schreiben wir etwas wie: "Entferne den Kämpfer im weißen Kimono aus
00:06:45der Szene."
00:06:46Danach kommen wir zum Bereich, in dem man einfach ein paar Punkte um das Objekt oder die
00:06:51Person markiert, damit das SAM2-Modell weiß, auf welche Form es sich konzentrieren soll.
00:06:57Dann gibt man den Ausgabeordner an, in dem die Ergebnisdateien gespeichert werden.
00:07:02Man muss sich den Namen dieses Ordners merken, da er die eindeutige Kennung ist,
00:07:06die wir in anderen Tabs nutzen, um das Video zu identifizieren, an dem wir gerade arbeiten.
00:07:11Danach gehen wir zum zweiten Tab, der den Segmentierungsschritt ausführt und den
00:07:16Prozess startet.
00:07:17Sobald das erledigt ist, wechseln wir zu Tab 3 für die Inferenz. Hier wird das Modell
00:07:22tatsächlich versuchen, das gewünschte Objekt oder die Person zu entfernen.
00:07:26Hier müssen wir wieder den Ordnernamen eingeben.
00:07:29Zusätzlich brauchen wir einen Prompt, der beschreibt, wie das Video ohne das entfernte
00:07:34Objekt oder die Person aussehen soll.
00:07:37In unserem Fall wäre das etwa: "Ein Kämpfer in einem dunklen Kimono, der in einem
00:07:42Dojo steht."
00:07:43Es wird zudem empfohlen, das entfernte Objekt nicht zu erwähnen, sondern sich nur auf das
00:07:48zu konzentrieren, was im Video sein soll. Dann starten wir die Inferenz.
00:07:52Wenn das fertig ist, können wir zum Ergebnis-Tab gehen und uns das finale Video ansehen.
00:07:58Auch hier müssen wir wieder den Videoordner angeben.
00:08:01Und da haben wir es.
00:08:03Schaut euch das an.
00:08:04Ja, es sieht so aus, als würde Morpheus gegen einen Geist kämpfen.
00:08:07Man sieht einige Inkonsistenzen beim Entfernen der Hände und anderer Dinge.
00:08:12Es ist also nicht perfekt, aber wir können noch etwas versuchen, um es zu verbessern.
00:08:18Wir lassen es nun durch den Filter des zweiten Durchgangs in Tab 4 laufen, um bessere Ergebnisse zu erzielen.
00:08:24Nach diesem zweiten Durchgang erhalten wir nun dieses zusätzliche Fenster, in dem wir das
00:08:29Ergebnis des zweiten Schritts sehen.
00:08:32Aber auch hier sieht es immer noch etwas merkwürdig aus.
00:08:34Es wirkt immer noch so, als würde Morpheus gegen einen Geist kämpfen oder tanzen.
00:08:39Wie man sieht, funktioniert es nicht bei jeder Szene.
00:08:42Manche Szenen wirken einfach sehr seltsam, aber es macht einen guten Job dabei, Neo komplett
00:08:48aus der Szene zu entfernen.
00:08:49Nichtsdestotrotz, probieren wir noch zwei weitere lustige Beispiele aus.
00:08:53Hier ist die berühmte Tanzszene aus La La Land.
00:08:56Ich werde nun versuchen, Emma Stone aus der Szene zu entfernen und schauen, was passiert.
00:09:01Wow, seht euch das an.
00:09:03Das sieht fast makellos aus.
00:09:05Man könnte glatt glauben, dass Ryan Gosling hier einfach alleine tanzt.
00:09:09Und achtet auf den Moment, in dem Emma Stone vor Ryan Gosling vorbeigeht.
00:09:13Dieser Übergang ist fast nahtlos.
00:09:15Es gibt ein paar kleine Artefakte, aber größtenteils ist das ein beeindruckendes Ergebnis.
00:09:21Von allen getesteten Ergebnissen war dieses das beste.
00:09:24Aus irgendeinem Grund dachte ich, dies wäre das schwierigste Beispiel.
00:09:28Aber überraschenderweise lieferte genau dieser Test die besten Resultate.
00:09:33Alles klar.
00:09:34Ich möchte noch ein letztes Beispiel ausprobieren.
00:09:35Diesmal versuche ich, Leonardo DiCaprio aus der berühmten Titanic-Szene zu entfernen, um
00:09:41zu sehen, was passiert.
00:09:42Oh wow, das sieht irgendwie traurig aus.
00:09:48Die arme Kate Winslet.
00:09:49Oh mein Gott.
00:09:50Sie steht da ganz allein, ohne Jack.
00:09:53Das sieht interessant aus.
00:09:55Man sieht, dass das Modell Leo sehr gut aus der Szene entfernt hat.
00:09:59Obwohl man noch einige Artefakte an Kate Winslets Arm erkennen kann.
00:10:03Und oh mein Gott, das ist so gruselig.
00:10:06Da ist immer noch eine gruselige Geisterhand, die Kates Arm auf der anderen Seite hält.
00:10:10Oh nein.
00:10:11Das kriege ich jetzt nicht mehr aus dem Kopf.
00:10:14Ehrlich gesagt war das mein Fehler, da ich diese spezifischen Punkte beim Segmentierungs-Schritt
00:10:19nicht zur Entfernung markiert habe.
00:10:21Das geht also auf meine Kappe.
00:10:23Wir sehen auch, dass Kate Winslets Gesicht ein wenig morpht.
00:10:26Da ist definitiv ein bisschen "Uncanny Valley" im Spiel.
00:10:30Insgesamt denke ich, dass das Tool hält, was es verspricht.
00:10:33Es kommt einfach auf das spezifische Video und dessen Beschaffenheit an.
00:10:37Offensichtlich können wir Morpheus in dieser Szene nicht zwingen, stillzustehen.
00:10:41Aber wenn man sich andere Beispiele auf der Projektseite ansieht, sind diese absolut unglaublich.
00:10:46Ich glaube, dieses Modell hat solide Fähigkeiten und mit mehr Training
00:10:51könnte es noch besser werden.
00:10:52Da habt ihr es, Leute.
00:10:53Das ist das VOID-Modell in aller Kürze.
00:10:55Ehrlich gesagt hat es mir Riesenspaß gemacht, das zu testen.
00:10:58Da es von Netflix entwickelt wurde, bin ich sehr gespannt, wofür sie es einsetzen werden.
00:11:03Könnte man damit Video-Handlungen basierend auf Nutzerpräferenzen oder Entscheidungen ändern?
00:11:04So ähnlich wie das interaktive "Choose your own adventure"-Erlebnis bei
00:11:09Black Mirror: Bandersnatch?
00:11:15Erinnert ihr euch daran?
00:11:17Wer weiß?
00:11:18In jedem Fall wird es sehr interessant sein zu sehen, wie sich dieses Tool weiterentwickelt.
00:11:19Was haltet ihr von diesem Framework?
00:11:23Für welche Anwendungsfälle wäre dieses Tool nützlich?
00:11:24Schreibt uns eure Gedanken unten in die Kommentare.
00:11:27Und Leute, wenn euch diese Art von technischen Analysen gefällt, lasst es mich wissen,
00:11:30indem ihr den Like-Button unter dem Video drückt.
00:11:33Und vergesst nicht, unseren Kanal zu abonnieren.
00:11:37Das war Andres von Better Stack, wir sehen uns in den nächsten Videos.
00:11:39Bis bald!
00:11:42[Musik]