Allgemeine Einführung
AniPortrait ist ein innovatives Framework zur Erzeugung realistischer Porträtanimationen auf der Grundlage von Audio. AniPortrait wurde von Huawei, Yang Zejun und Wang Zhisheng vom Tencent Game Know Yourself Lab entwickelt und ist in der Lage, hochwertige Animationen aus Audio- und Referenzporträtbildern zu erzeugen und sogarVideo für die Nachstellung von Gesichtern bereitstellen. Durch den Einsatz fortschrittlicher 3D-Zwischendarstellungen und 2D-Gesichtsanimationstechniken ist das Framework in der Lage, natürliche und sanfte Animationseffekte für eine Vielzahl von Anwendungsszenarien wie Film- und Fernsehproduktionen, virtuelle Moderatoren und digitale Menschen zu erzeugen.
Funktionsliste
- Audio-gesteuerte Animation: Erzeugen Sie eine entsprechende Porträtanimation aus dem Audio-Input.
- Video-gesteuerte Animation: Bietet Video für die Wiedergabe von Gesichtern und erzeugt realistische Gesichtsanimationen.
- Hochwertige Animationserstellung: Verwenden Sie 3D-Zwischendarstellungen und 2D-Gesichtsanimationstechniken, um hochwertige Animationseffekte zu erzeugen.
- Web UI Demo: Bieten Sie eine Online-Demo über Gradio Web UI an, um die Benutzerfreundlichkeit zu erhöhen.
- Modellschulung und -inferenz: Zur Unterstützung der Modellschulung und -inferenz können die Benutzer die Daten für die Schulung und Generierung anpassen.
Hilfe verwenden
Montage
Umweltgebäude
Empfohlene Python-Version >= 3.10 und CUDA-Version = 11.7. Folgen Sie den nachstehenden Schritten, um die Umgebung zu erstellen:
pip install -r anforderungen.txt
Download-Gewichtung
Alle Gewichtsdateien sollten im Verzeichnis. /vortrainierte_gewichte
Verzeichnis. Laden Sie die Datei mit den Gewichten manuell wie folgt herunter:
- Laden Sie die trainierten Gewichte herunter, einschließlich der folgenden Teile:
entrauschen_unet.pth
, undreferenz_unet.pth
, undpose_guider.pth
, undmotion_module.pth
usw. - Laden Sie bereits trainierte Gewichte für das Basismodell und andere Komponenten herunter:
- StableDiffusion V1.5
- sd-vae-ft-mse
- image_encoder
- wav2vec2-base-960h
Die Struktur der Gewichte-Datei ist wie folgt aufgebaut:
. /pretrained_weights/
|-- image_encoder
||-- config.json
|-- pytorch_model.bin
|-- sd-vae-ft-mse
|-- config.json
|-- diffusion_pytorch_model.bin
|-- diffusion_pytorch_model.safetensors |-- diffusion_pytorch_model.safetensors
|-- stable-diffusion-v1-5
|-- feature_extractor
|-- preprocessor_config.json
|- model_index.json
|-- unet
|| |-- config.json
| `-- diffusion_pytorch_model.bin
|-- v1-inference.yaml
|-- wav2vec2-base-960h
||- config.json
|-- feature_extractor_config.json
|-- preprocessor_config.json
|- pytorch_model.bin
||- README.md
|- spezielle_tokens_karte.json
|-- tokeniser_config.json
|-- vocab.json
|-- audio2mesh.pt
|-- audio2pose.pt
|-- denoising_unet.pth
|-- film_net_fp16.pt
|-- motion_module.pth
|-- pose_guider.pth
|-- reference_unet.pth
Gradio Web UI
Probieren Sie unsere Web-Demo mit dem folgenden Befehl aus. Wir bieten auch dieOnline-Demo.
python -m skripte.app
Inferenz
Beachten Sie, dass es möglich ist, den Befehl-L
für die gewünschte Anzahl der erzeugten Frames, z. B.-L 300
.
Methoden der BeschleunigungWenn es zu lange dauert, das Video zu generieren, können Sie diefilm_net_fp16.ptund platziert auf. /vortrainierte_gewichte
Katalog.
Nachfolgend finden Sie die CLI-Befehle, mit denen Sie das Argumentationsskript ausführen können:
selbstgesteuert
python -m scripts.pose2vid --config . /configs/prompts/animation.yaml -W 512 -H 512 -acc
verweisbaranimation.yaml
Format, um Ihr eigenes Referenzbild oder Pose-Video hinzuzufügen. Um das Originalvideo in ein Pose-Video (Keypoint-Sequenz) zu konvertieren, können Sie den folgenden Befehl ausführen:
python -m scripts.vid2pose --video_pfad pose_video_pfad.mp4
Wiedererscheinen im Gesicht
python -m scripts.vid2vid --config . /configs/prompts/animation_facereenac.yaml -W 512 -H 512 -acc
existierenanimation_facereenac.yaml
Fügen Sie das Quellgesichtsvideo und das Referenzbild zu den
Audio-Treiber
python -m scripts.audio2vid --config . /configs/prompts/animation_audio.yaml -W 512 -H 512 -acc
existierenanimation_audio.yaml
Hinzufügen von Audio- und Referenzbildern zu den Löschenanimation_audio.yaml
den Nagel auf den Kopf treffenpose_temp
Sie können das audio2pose-Modell aktivieren. Sie können diesen Befehl auch verwenden, um die Kopfposensteuerung für diepose_temp.npy
::
python -m scripts.generate_ref_pose --ref_video . /configs/inference/head_pose_temp/pose_ref_video.mp4 --save_path . /configs/inference/head_pose_temp/pose.npy
Zug
Vorbereitung der Daten
Herunterladen vonVFHQim Gesang antwortenCelebV-HQ. Extrahieren Sie die Keypoints aus dem Originalvideo und schreiben Sie die Trainings-Json-Datei (hier ist ein Beispiel für die Verarbeitung von VFHQ):
python -m scripts.preprocess_dataset --input_dir VFHQ_PATH --output_dir SAVE_PATH --training_json JSON_PATH
Aktualisieren Sie die Zeilen im Trainingsprofil:
Daten.
json_path: JSON_PATH
Stufe 1
Befehl ausführen:
accelerate launch train_stage_1.py --config . /configs/train/stage1.yaml
Stufe 2
Gewichtung der vortrainierten Bewegungsmodulemm_sd_v15_v2.ckpt
(Download-Link), die auf. /vortrainierte_gewichte
Verzeichnis. Im Verzeichnisstage2.yaml
In der Konfigurationsdatei werden z. B. die Trainingsgewichte für Stufe 1 festgelegt:
stage1_ckpt_dir: '. /exp_output/stage1'
stage1_ckpt_step: 30000
Befehl ausführen:
accelerate launch train_stage_2.py --config . /configs/train/stage2.yaml