Einführung
Google Colab-Version (kostenloses Cloud Computing im Browser)
Lokale Installation
Unterstützung
Best Practices
Einfache Einrichtung und Ausführung – lokal und über Colab.
Sie müssen sich nicht mit dem manuellen Herunterladen und Installieren der Voraussetzungen herumschlagen
Google Colab muss nur zwei Zellen ausführen
Windows-Benutzer benötigen zum Installieren, Aktualisieren und Ausführen nur eine Datei.
Gut dokumentierte Optionen unten.
Sie müssen sich nicht mehr fragen, was irgendetwas bewirkt!
Für meinen 9-Sekunden-Testclip mit 720p und 60 Bildern pro Sekunde über Colab T4:
Original Wav2Lip | Easy-Wav2Lip |
---|---|
Ausführungszeit: 6 Minuten und 53 Sekunden | Ausführungszeit: 56s |
Das ist kein Tippfehler! Mein Clip dauert von fast 7 Minuten auf unter 1 Minute!
Die Tracking-Daten werden zwischen Generationen desselben Videos gespeichert, was noch mehr Zeit spart:
Easy-Wav2Lip noch einmal im selben Video |
---|
Ausführungszeit: 25s |
Easy-Wav2Lip behebt visuelle Fehler auf den Lippen:
3 Optionen für Qualität:
Schnell: Wav2Lip
Verbessert: Wav2Lip mit einer gefiederten Maske um den Mund, um die ursprüngliche Auflösung für den Rest des Gesichts wiederherzustellen
Verbessert: Wav2Lip + Maske + GFPGAN-Upscaling im Gesicht
https://colab.research.google.com/github/anothermartz/Easy-Wav2Lip/blob/v8.3/Easy_Wav2Lip_v8.3.ipynb
Anforderungen: Nvidia-Karte, die Cuda 12.2 unterstützt, oder MacOS-Gerät, das MPS über Apple-Silizium oder AMD-GPU unterstützt
Laden Sie Easy-Wav2Lip.bat herunter
Legen Sie es in einem Ordner auf Ihrem PC ab (z. B. in „Dokumente“).
Führen Sie es aus und befolgen Sie die Anweisungen. Es wird ein Ordner namens Easy-Wav2Lip in dem Ordner erstellt, in dem Sie es ausführen.
Führen Sie diese Datei aus, wann immer Sie Easy-Wav2Lip verwenden möchten
Dies sollte die Installation aller erforderlichen Komponenten übernehmen.
Stellen Sie sicher, dass Folgendes installiert ist und über Ihr Terminal darauf zugegriffen werden kann:
Python 3.10 (Ich habe nur 3.10.11 getestet – andere Versionen funktionieren möglicherweise nicht!)
Git
Windows und Linux: Cuda (Alleine die neuesten Nvidia-Treiber reichen aus, ich habe nur 12.2 getestet)
Führen Sie Folgendes in Ihrem Terminal aus, sobald Sie zu dem Ordner navigiert sind, in dem Sie Easy-Wav2Lip installieren möchten:
Richtet ein venv ein, installiert ffmpeg darauf und installiert dann Easy-Wav2Lip:
Öffnen Sie cmd und navigieren Sie mit cd EG zu dem Ordner, in dem Sie EasyWav2Lip installieren möchten: cd Documents
Kopieren Sie den folgenden Code und fügen Sie ihn in Ihr cmd-Fenster ein: Hinweis: An diesem Speicherort werden zwei Ordner erstellt: Easy-Wav2Lip und Easy-Wav2Lip-venv (eine isolierte Python-Installation).
py -3.10 -m venv Easy-Wav2Lip-venv Easy-Wav2Lip-venvScriptsactivate python -m pip install --upgrade pip python -m pip install requests set url=https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl.zip python -c "import requests; r = requests.get('%url%', stream=True); open('ffmpeg.zip', 'wb').write(r.content)" powershell -Command "Expand-Archive -Path .\ffmpeg.zip -DestinationPath .\" xcopy /e /i /y "ffmpeg-master-latest-win64-gplbin*" .Easy-Wav2Lip-venvScripts del ffmpeg.zip rmdir /s /q ffmpeg-master-latest-win64-gpl git clone https://github.com/anothermartz/Easy-Wav2Lip.git cd Easy-Wav2Lip pip install -r requirements.txt python install.py
Führen Sie nun Easy-Wav2Lip aus:
3. Schließen Sie cmd, öffnen Sie es erneut und wechseln Sie dann mit cd in dasselbe Verzeichnis wie in Schritt 1.
4. Fügen Sie den folgenden Code ein:
Easy-Wav2Lip-venvScriptsactivate cd Easy-Wav2Lip call run_loop.bat
Weitere Anweisungen finden Sie unter Verwendung.
Richtet ein venv ein, installiert ffmpeg darauf und installiert dann Easy-Wav2Lip:
Öffnen Sie Terminal und navigieren Sie mit cd EG zu dem Ordner, in dem Sie Easy0Wav2Kip installieren möchten: cd ~/Documents
Kopieren Sie den folgenden Code und fügen Sie ihn in Ihr Terminalfenster ein: Hinweis: An diesem Speicherort werden zwei Ordner erstellt: Easy-Wav2Lip und Easy-Wav2Lip-venv (eine isolierte Python-Installation).
python3.10 -m venv Easy-Wav2Lip-venv source EW2Lvenv/bin/activate python -m pip install --upgrade pip python -m pip install requests for file in ffmpeg ffprobe ffplay; do curl -O "https://evermeet.cx/ffmpeg/${file}-6.1.1.zip" unzip "${file}-6.1.1.zip" done mv -f ffmpeg ffprobe ffplay /Easy-Wav2Lip-venv/bin/ rm -f ffmpeg-6.1.1.zip ffprobe-6.1.1.zip ffplay-6.1.1.zip source EW2Lvenv/bin/activate git clone https://github.com/anothermartz/Easy-Wav2Lip.git cd Easy-Wav2Lip pip install -r requirements.txt python install.py
Führen Sie nun Easy-Wav2Lip aus:
3. Schließen Sie das Terminal, öffnen Sie es erneut und wechseln Sie dann in dasselbe Verzeichnis wie in Schritt 1.
4. Fügen Sie den folgenden Code ein:
source Easy-Wav2Lip-venv/bin/activate cd Easy-Wav2Lip ./run_loop.sh
Sobald alles installiert ist, sollte eine Datei namens config.ini erscheinen.
Fügen Sie hier die Pfade zu Ihren Video- und Audiodateien hinzu und konfigurieren Sie die Einstellungen nach Ihren Wünschen.
Profi-Tipp:
Halten Sie unter Windows die Umschalttaste gedrückt, während Sie mit der rechten Maustaste auf die Datei klicken, die Sie verwenden möchten, und drücken Sie dann „a“ oder klicken Sie auf „Als Pfad kopieren“. Dadurch erhalten Sie den Pfad, den Sie als Videodatei oder Gesangsdatei einfügen können.
MacOS: Klicken Sie mit der rechten Maustaste auf die Datei, halten Sie die Wahltaste (Alt) gedrückt und wählen Sie „[Dateiname] als Pfadnamen kopieren“ aus dem Kontextmenü.
Speichern Sie config.ini und schließen Sie es. Dadurch wird der Wav2Lip-Prozess gestartet und Ihre Datei wird im selben Verzeichnis wie Ihre video_path-Datei gespeichert.
config.ini wird erneut geöffnet und Sie können Eingaben und Einstellungen ändern.
Tipps für den Einstieg finden Sie weiter unten in den Best Practices.
Eine Erläuterung der Einstellungen, die in config.ini noch nicht erläutert wurden, finden Sie weiter unten im Abschnitt „Erweiterte Optimierung“.
Natürlich das Original Wav2Lip.
Die enorme Geschwindigkeitssteigerung und verbesserte Basisqualität kommt von cog-Wav2Lip.
Code zur Hochskalierung mit GFPGAN stammte hauptsächlich von wav2lip-hq-updated-ESRGAN.
Ohne KI-Unterstützung hätte ich das nicht geschafft; Bevor ich das gemacht habe, hatte ich nur sehr wenig Python-Erfahrung! LLM Ihrer Wahl: Bing Chat (jetzt „Copilot“ genannt).
Vielen Dank an JustinJohn für die Erstellung der Wav2Lip_simplified-Colabs, die mich dazu inspiriert haben, meine eigene, noch einfachere Version zu erstellen.
Wenn bei der Ausführung Probleme auftreten, schauen Sie bitte auf der Registerkarte „Probleme“ nach, ob jemand darüber geschrieben hat. Wenn nicht, erstellen Sie einen neuen Thread, aber stellen Sie sicher, dass Sie Folgendes einschließen:
Wenn Colab:
Easy-Wav2Lip Colab-Versionsnummer
Infos zu den verwendeten Dateien.
Bei lokaler Installation:
EasyWav2Lip.bat oder manuelle Installation
Betriebssystem (Windows 11, Linux etc.)
GPU-Modell
GPU-Treiberversion
Python-Version
Informationen zu den verwendeten Dateien und ob andere Dateien funktionieren
Ohne diese Informationen frage ich trotzdem einfach danach und daher wird eine Antwort zum Problem selbst länger dauern.
Wenn eine davon von den Anforderungen abweicht, ist die Wahrscheinlichkeit groß, dass dies der Grund dafür ist, dass es nicht funktioniert, und Sie müssen möglicherweise einfach die Colab-Version verwenden, falls dies nicht bereits geschehen ist.
Für allgemeine Gespräche über dieses und andere Lipsync-Gespräche bin ich in diesem Discord:
Einladungslink: https://discord.gg/FNZR9ETwKY
Wav2Lip-Kanal: https://discord.com/channels/667279414681272320/1076077584330280991
Die besten Ergebnisse erzielen Sie, wenn Sie die Rede an die Handlungen und Ausdrücke des Sprechers anpassen, bevor Sie sie über wav2lip senden!
Videodateien:
In allen Frames muss ein Gesicht vorhanden sein, sonst schlägt Wav2Lip fehl
Beschneiden oder maskieren Sie Gesichter, die Sie nicht lippensynchronisieren möchten, da die Auswahl sonst zufällig erfolgt.
Verwenden Sie h264 .mp4 – andere Dateitypen werden möglicherweise unterstützt, die Ausgabe erfolgt jedoch so
Bilder sind derzeit ungetestet.
Verwenden Sie in jeder Hinsicht eine kleine Datei (versuchen Sie es mit <720p, <30 Sekunden, 30fps usw. – Größere Dateien funktionieren möglicherweise, sind aber normalerweise der Grund dafür, dass es fehlschlägt).
Verwenden Sie für Ihren ersten Versuch einen wirklich kleinen Clip, um sich an den Vorgang zu gewöhnen. Erst wenn Sie damit vertraut sind, sollten Sie größere Dateien ausprobieren, um zu sehen, ob sie funktionieren.
Audiodateien:
Speichern Sie es als .wav und in der gleichen Länge wie Ihr Eingabevideo.
HINWEIS: Mir ist aufgefallen, dass etwa 80 ms vom verarbeiteten Video/Audio abgeschnitten werden, und ich bin mir nicht sicher, wie ich das beheben kann. Stellen Sie also sicher, dass Sie etwas mehr haben, als Sie tatsächlich benötigen!
Sie können es einfach in Ihre Videodatei kodieren und „vocal_path“ leer lassen. Dadurch verlängert sich jedoch die Verarbeitungszeit um einige Sekunden, da der Ton vom Video getrennt wird
ODER
Wählen Sie Ihre Audiodatei separat aus
Ich bin nicht sicher, welche Dateitypen unterstützt werden, zumindest funktionieren .wav und .mp3.
Option | Vorteile | Nachteile |
---|---|---|
Wav2Lip | + Genauere Lippensynchronisation + Versucht, den Mund geschlossen zu halten, wenn kein Ton zu hören ist | - Manchmal fehlen Zähne (selten) |
Wav2Lip_GAN | + Sieht schöner aus + Behält den ursprünglichen Ausdruck des Sprechers besser bei | - Nicht so gut darin, die ursprünglichen Lippenbewegungen zu maskieren, insbesondere wenn kein Ton zu hören ist |
Ich empfehle, zuerst Wav2Lip auszuprobieren und zur GAN-Version zu wechseln, wenn Sie einen Effekt bemerken, bei dem es aussieht, als hätte der Sprecher große Lücken in den Zähnen.
Wenn diese Option aktiviert ist, schneidet wav2lip das Gesicht in jedem Frame unabhängig zu.
Gut für schnelle Bewegungen oder Schnitte im Video.
Kann zu Zuckungen führen, wenn das Gesicht in einem seltsamen Winkel steht.
Wenn die Funktion deaktiviert ist, blendet wav2lip die erkannte Position des Gesichts zwischen 5 Bildern ein.
Gut für langsame Bewegungen, insbesondere für Gesichter aus einem ungewöhnlichen Winkel.
Der Mund kann versetzt sein, wenn sich das Gesicht schnell innerhalb des Bildes bewegt, und sieht zwischen den Schnitten schrecklich aus.
Diese Option steuert, wie viele Pixel in jede Richtung zum Gesichtsausschnitt hinzugefügt oder daraus entfernt werden.
Wert | Beispiel | Wirkung |
---|---|---|
U | U = -5 | Entfernt 5 Pixel vom oberen Rand des Gesichts |
D | D = 10 | Fügt am unteren Rand des Gesichts 10 Pixel hinzu |
L | L = 0 | Keine Veränderung auf der linken Gesichtsseite |
R | R = 15 | Fügt 15 Pixel rechts vom Gesicht hinzu |
Eine Polsterung kann helfen, harte Linien am Kinn oder an anderen Gesichtsrändern zu entfernen, aber zu viel oder zu wenig Polsterung kann die Größe oder Position des Mundes verändern. Es ist üblich, unten 10 Pixel hinzuzufügen, Sie sollten jedoch mit verschiedenen Werten experimentieren, um die beste Balance für Ihren Clip zu finden.
Diese Option steuert, wie die verarbeitete Fläche mit der Originalfläche vermischt wird. Dies hat keine Auswirkung auf die Qualitätsoption „Schnell“.
Mit der Option „Größe“ wird der von der Maske abgedeckte Bereich vergrößert.
Die Ausfransung bestimmt den Grad der Überblendung zwischen der Mitte der Maske und den Rändern.
„mouth_tracking“ aktualisiert die Position der Maske in jedem Frame auf die Position, an der sich der Mund befindet (langsamer).
Hinweis: Die Mundposition ist bereits gut angenähert, da der Rahmen auf das Gesicht zugeschnitten ist. Aktivieren Sie diese Option nur, wenn Sie ein Video finden, bei dem die Maske nicht dem Mund zu folgen scheint.
debug_mask stellt den Hintergrund in Graustufen und die Maske in Farbe dar, sodass Sie leicht erkennen können, wo sich die Maske im Rahmen befindet.
Mit dieser Option können Sie mehrere Video- und/oder Audiodateien automatisch verarbeiten.
Benennen Sie Ihre Dateien mit einer Nummer am Ende, z. B. Video1.mp4, Video2.mp4 usw. und legen Sie sie alle im selben Ordner ab.
Die Dateien werden in numerischer Reihenfolge verarbeitet, beginnend mit der von Ihnen ausgewählten. Wenn Sie beispielsweise Video3.mp4 auswählen, werden Video3.mp4, Video4.mp4 usw. verarbeitet.
Wenn Sie nummerierte Videodateien und eine nicht nummerierte Audiodatei auswählen, wird jedes Video mit derselben Audiodatei verarbeitet. Nützlich, um verschiedene Bilder/Videos mit derselben Zeile zu versehen.
Wenn Sie eine nicht nummerierte Videodatei und nummerierte Audiodateien auswählen, wird für jede Audiodatei dasselbe Video verwendet. Nützlich, um dasselbe Bild/Video unterschiedliche Dinge sagen zu lassen.
Dadurch wird Ihren Ausgabedateien ein Suffix hinzugefügt, damit diese Ihre Originale nicht überschreiben.
Fügt hinzu, welche Einstellungen verwendet wurden – gut zum Vergleich verschiedener Einstellungen, da Sie wissen, was Sie für jedes Rendering verwendet haben. Wird hinzugefügt: Qualty_resolution_nosmooth_pads-UDLR EG: _Enhanced_720_nosmooth1_pads-U15D10L-15R30. Pads_UDLR werden nicht einbezogen, wenn sie auf 0 gesetzt sind. Die Auflösung wird nicht einbezogen, wenn die Ausgabehöhe auf die volle Auflösung eingestellt ist
Zeigt das eingegebene Video/Audio vor der Verarbeitung an, damit Sie überprüfen können, ob Sie die richtige(n) Datei(en) ausgewählt haben. Es funktioniert möglicherweise nur mit .mp4, ich weiß nur, dass es mit einem .avi, das ich versucht habe, nicht funktioniert hat. Wenn Sie dies deaktivieren, werden für jedes Video einige Sekunden Verarbeitungszeit eingespart.
Dadurch wird nur ein Frame Ihres Videos gerendert und in voller Größe angezeigt. Auf diese Weise können Sie die Einstellungen anpassen, ohne jedes Mal das gesamte Video rendern zu müssen. „frame_to_preview“ dient zum Auswählen eines bestimmten Frames, den Sie ansehen möchten – es entspricht möglicherweise nicht ganz dem tatsächlichen Frame.