GeneFace++ Digital Human Demo
GeneFace++: Eine universelle und stabile audiogesteuerte 3D-Technik zur Generierung sprechender Gesichter in Echtzeit
Dieses Tutorial hat die entsprechende Umgebung für Sie erstellt. Sie müssen nur die Schritte befolgen, um einen personalisierten digitalen Menschen zu generieren.
1. Projektvorstellung

GeneFace kann 3D-Gesichtssynthese und Lippenlesen sowie Sprachvideos über Audio steuern. Es handelt sich um eine allgemeine und hochpräzise NeRF-basierte Methode zur Generierung sprechender Gesichter, die natürliche Ergebnisse entsprechend verschiedener Audiodaten außerhalb des Bereichs erzeugen kann. Konkret lernt GeneFace einen Variational Motion Generator anhand eines großen Korpus von Lippensynchronisationen und führt ein domänenadaptives Nachbearbeitungsnetzwerk ein, um die Ergebnisse zu kalibrieren. Umfangreiche Experimente zeigen, dass der Ansatz von GeneFace im Vergleich zu früheren Methoden eine allgemeinere und originalgetreuere Generierung sprechender Gesichter ermöglicht.
2. Demo-Laufmethode
Referenz zum Video-Tutorial:[Null-Grundlagen + Nanny-Level] GeneFace++ enthüllt den gesamten Prozess der Erstellung geklonter digitaler Personen und wird mit einem Klick ohne Hardwareanforderungen aktiviert. Ein digitales Avatar-Tutorial, das jeder lernen kann
1. Rufen Sie die Website auf
Klicken Sie nach dem Starten des Containers auf die API-Adresse, um zur Weboberfläche zu gelangen

2. Schließen Sie die Website
Geben Sie das Terminal ein, auf dem die Website ausgeführt wird Ctrl + C
Dadurch wird der Betrieb der Website beendet. Wenn die Terminalseite geschlossen ist, wählen Sie den zweiten Eintrag auf der linken Registerkarte des Arbeitsbereichs aus, wo Sie die geschlossene Terminalseite abrufen können.
ß
Wenn auf einem Terminal ein Programm ausgeführt wird, können keine anderen Befehle ausgeführt werden. Sie können das aktuelle Programm beenden oder ein neues Terminal öffnen, um andere Befehle auszuführen.
3. Training einer personalisierten Modellbetriebsmethode
Das Folgende ist ein Markdown-Dokument, das so organisiert wurde, dass der Inhalt übersichtlich und leicht verständlich ist, während die Bild- und Linkpositionen unverändert bleiben.
1. Vorbereitung
Bereiten Sie Ihr eigenes digitales Menschenvideo vor. Es wird empfohlen, die Videobreite und -höhe quadratisch zu wählen, da das trainierte Video automatisch zugeschnitten wird auf 512 * 512
Größe. Wenn das Video andere Größen hat, können nach dem Zuschneiden schwarze Ränder auftreten. Sind die schwarzen Ränder zu groß, wird der Trainingseffekt beeinträchtigt. Das Videoformat muss mp4
, ziehen Sie das Video in den Upload-Bereich in der unteren linken Ecke der Webseite, um es hochzuladen.
Notiz:
- Der Videotitel sollte keine chinesischen Schriftzeichen enthalten.
- Der Videohintergrund sollte sauber und frei von unnötigen Elementen sein, vorzugsweise ein einfarbiger Hintergrund. Wenn zu viele oder unübersichtliche Hintergrundelemente vorhanden sind, kann die Hintergrundextraktion fehlschlagen.
- Das Gesicht muss im Video deutlich zu erkennen sein und sollte den Hauptteil des Bildes einnehmen. Es empfiehlt sich, Nahaufnahmen oberhalb der Schultern statt Halbkörpervideos zu verwenden, da sonst das Gesicht unscharf wird.
Der Beispielbildschirm sieht wie folgt aus ⬇️
Empfehlungen für Trainingsparameter
Wählen Sie eine angemessene Anzahl an Trainingsschritten, empfohlen werden mehr als 50.000 Schritte. Als Referenzzeiten gelten:
- Vom Projekt bereitgestellte Beispielvideos (Mai):
Das Video ist etwa 4 Minuten lang und die Erstellung des Datensatzes dauert etwa 1 Stunde. Das Training eines einzelnen Modells für 50.000 Schritte dauert etwa 1 Stunde.
Die gesamte Schulung erfordert die Erstellung von zwei Modellen, was insgesamt etwa 2–3 Stunden dauert. - Empfehlungen zur Videolänge:
Videos sollten 3–5 Minuten lang sein. Wenn das Video zu kurz ist, wird es schwierig sein, gute Ergebnisse zu erzielen, selbst wenn Sie lange trainieren. Wenn das Video zu lang ist, verlängert sich die Trainingszeit.
Trainingsfortschritt
Um den Trainingsfortschritt anzuzeigen, können Sie im Terminal den folgenden Befehl ausführen bash tail -f app.log
Wenn angezeigt wird: Dieses Video hat trainiert! Training abgeschlossen!
Ergebnisse des Modelltrainings
Nach Abschluss der Schulung können Sie torso model ckpt path or directory
Suchen Sie die beiden Ordner, die sich auf das Video beziehen (befindet sich in motion2video_nerf
Verzeichnis). wählen videoid_torso
Die Modelle im Ordner sind einsatzbereit.
Notiz:
- Die ersten beiden Modelle rechts müssen ausgewählt werden, sonst wird das Standardmodell verwendet.
- Das erste Modell ist ein Modell zur Konvertierung von Ton in Gesten.
audio2motion_vae
Das Modell in .- Wenn beim Torso das Kopfmodell ausgewählt ist, kann ein Fehler gemeldet werden:
Inference ERROR: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!!
Verwenden des trainierten Modells
Wenn Sie bereits über ein trainiertes Modell verfügen, können Sie es in einer ähnlichen Ordnerstruktur ablegen und direkt verwenden.
2. Umschulung
Der gesamte Prozess des Modelltrainings kann wie folgt zusammengefasst werden: Generieren eines Datensatzes, Trainieren des Kopfmodells und Trainieren des Schultermodells. Um zu vermeiden, dass Teile des Prozesses wiederholt werden oder aufgrund unerwarteter Unterbrechungen von vorne begonnen werden muss, zeichnet der Code die abgeschlossenen Schritte auf, sobald sie abgeschlossen sind. Bei Videos mit gleichem Namen werden die bereits ausgeführten Schritte übersprungen und die noch nicht ausgeführten Schritte vom letzten Mal direkt ausgeführt.
Wenn Sie das Modell mit einer neuen Anzahl von Schritten neu trainieren möchten, löschen Sie einfach die beiden trainierten Ordner. Sie können den folgenden Befehl ausführen, um den Modellordner zu löschen. Wenn Sie nur das Schultermodell neu trainieren möchten, löschen Sie einfach den Torso-Ordner.
rm -r /openbayes/home/geneface_out/checkpoints/motion2video_nerf/把这里换成你的视频名称_head
rm -r /openbayes/home/geneface_out/checkpoints/motion2video_nerf/把这里换成你的视频名称_torso
4. Daten bereinigen
Wenn Sie kein erneutes Training planen, können Sie den Datensatz bereinigen. Durch Ausführen des folgenden Skripts können alle Daten im Datensatz bereinigt werden, um Speicherplatz zu sparen. Da das Erstellen eines Datensatzes viel Zeit in Anspruch nimmt, sollten Sie das Löschen sorgfältig überdenken. Geben Sie den Videonamen nicht mit einem Suffix ein mp4
.
/output/clear_video_data.sh 你的视频名称
Wenn Sie alle Daten eines Videos vollständig löschen möchten, können Sie das folgende Skript ausführen:
/output/clear_video_data.sh/output/clear_all_data.sh 你的视频名称
5. Einführung in die Ordnerstruktur
Wenn Sie ein neues Video trainieren, werden die folgenden Dateien und Ordner unter geneface_out generiert, wobei VIDEO_ID der Name Ihres Videos ist.
- geneface_out
-- binary
--- videos
---- {VIDEO_ID}
----- trainval_dataset.npy # 制作好的数据集,推理和训练的时候都用它
--processed #生成数据集过程中存放数据的文件夹
--- videos
---- {VIDEO_ID} # 从视频中提取的所有数据都在这,制作好数据集(即上面的 trainval_dataset.npy)后就没用了
-- raw
--- videos
---- {VIDEO_ID}.mp4 # 存放着你上传的视频的 512*512 版本,制作好数据集后就不需要了
-- view_check # 用于访问 checkpoints 的软链接
-- checkpoints
--- motion2video_nerf # 存放训练好的模型数据
---- {VIDEO_ID}_head
---- {VIDEO_ID}_torso