LivePortrait-Forschungsimplementierung
Kuaishou Technology · Porträtanimation · Bild- und Video-Workflows
Erwecken Sie Porträts mit einem Quellbild und einer gewählten Bewegungsrichtung zum Leben.
🔥 Neuigkeiten
2025/06/01: 🌍 Im vergangenen Jahr hat sich LivePortrait zu einer effizienten Lösung für die Porträtanimation von Menschen, Katzen und Hunden entwickelt und wird auf Videoplattformen sowie in Kreativtools und Forschungs-Workflows eingesetzt.2025/01/01: 🐶 Wir haben das Tiermodell mit zusätzlichen Trainingsdaten aktualisiert und die Beispieldateien erneuert. Einzelheiten finden Sie hier.2024/10/18: ❗ Die Versionen der Abhängigkeiten wurden aktualisiert, um die Sicherheit und Konsistenz der Installation zu verbessern. Siehe die Änderungshinweise.2024/08/29: 📦 Das Windows-Paket wurde mit einer einfacheren Einrichtung und Update-Unterstützung überarbeitet.2024/08/19: 🖼️ Der bildgesteuerte Modus und die regionale Steuerung werden jetzt unterstützt, um Porträts präziser auszurichten.2024/08/06: 🎨 Die Benutzeroberfläche bietet jetzt präzise Porträtbearbeitung für eine detailliertere Steuerung des Gesichtsausdrucks.2024/08/05: 📦 Windows-Nutzer können das Ein-Klick-Paket sowohl für den Menschen- als auch für den Tiermodus verwenden.2024/08/02: 😸 Ein neues Tiermodell mit mehreren weiteren Verbesserungen ist verfügbar.2024/07/25: 📦 Das herunterladbare Paket bietet Windows-Nutzern jetzt einen direkten Startweg.2024/07/24: 🎨 Die Bearbeitung der Pose in Quellporträts wurde ergänzt; der Standard-Schwellenwert für die Erkennung wurde gesenkt.2024/07/19: ✨ Die Bearbeitung von Porträtvideos, auch als v2v bekannt, wird für kompatible Workflows unterstützt.2024/07/17: 🍎 Apple Silicon wird jetzt für den Menschen-Workflow unterstützt.2024/07/10: 💪 Das Zusammenfügen von Audio und Video, das automatische Zuschneiden von Steuervideos und das Erstellen von Bewegungsvorlagen werden unterstützt.2024/07/09: 🤗 Eine Online-Demo wurde veröffentlicht, mit der sich der Workflow ohne lokale Einrichtung ausprobieren lässt.2024/07/04: 😊 Der anfängliche Inferenzcode und die Modelle wurden für Forschung und Experimente veröffentlicht.2024/07/04: 🔥 Die Projekt-Homepage und der technische Bericht wurden zusammen mit der ersten öffentlichen Implementierung veröffentlicht.
Einführung 📖
Dieses Repository mit dem Namen LivePortrait, enthält eine offizielle PyTorch-Implementierung für effiziente Porträtanimation mit Steuerung von Stitching und Retargeting. Der Workflow verwandelt ein Quellporträt in ausdrucksstarke Bewegungen und bewahrt dabei die ursprüngliche Identität und visuelle Struktur.
LivePortrait wird aktiv für Forschung, kreative Erkundung und praktische Bild-zu-Video-Experimente weiterentwickelt. Wenn du ein Problem findest oder einen Vorschlag hast, nutze den Projekt-Workflow, um ihn zu teilen.
Erste Schritte 🏁
1. Code klonen und Umgebung vorbereiten 🛠️
Hinweis
Stelle sicher, dass dein System über git, condaund FFmpeg verfügt, bevor du den lokalen Workflow ausführst.
git clone https://github.com/KlingTeam/LivePortrait
cd LivePortrait
# create env using conda
conda create -n LivePortrait python=3.10
conda activate LivePortrait
Für Linux 🐧- oder Windows 🪟-Benutzer
Die X-Pose-Abhängigkeit wird vom Animals-Modus benötigt. Die CUDA-Version zu überprüfen ist optional, wenn du nur den Humans-Modus ausführen möchtest.
CUDA-Versionen überprüfen
Überprüfe zunächst die installierte CUDA-Version:
nvcc -V # example versions: 11.1, 11.8, 12.1, etc.
Installiere anschließend die entsprechende Torch-Version. Dies sind Beispielbefehle:
# for CUDA 11.1
pip install torch==1.10.1+cu111 torchvision==0.11.2 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
# for CUDA 11.8
pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118
# for CUDA 12.1
pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu121
Installiere abschließend die übrigen Abhängigkeiten:
pip install -r requirements.txt
Für macOS mit Apple-Silicon
Die X-Pose-Abhängigkeit unterstützt macOS nicht und kann daher übersprungen werden. Der Humans-Modus funktioniert wie gewohnt, während der Animals-Modus auf dieser Plattform nicht unterstützt wird.
# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt
2. Vortrainierte Gewichte herunterladen 📥
Am einfachsten lassen sich vortrainierte Gewichte mit dem Befehlszeilen-Client von Hugging Face herunterladen:
# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KlingTeam/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
Falls der Haupt-Mirror nicht verfügbar ist, verwende den alternativen Endpunkt:
# !pip install -U "huggingface_hub[cli]"
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download KlingTeam/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
Alternativ kannst du das vollständige Gewichte-Paket aus den verknüpften Projektressourcen herunterladen und die entpackten Dateien unter ./pretrained_weights.
Stelle sicher, dass die Verzeichnisstruktur dem erwarteten Aufbau entspricht, bevor du die Inferenz startest.
3. Inferenz 🚀
Schneller Praxistest (Menschen) 👤
# For Linux and Windows users
python inference.py
# For macOS users with Apple Silicon
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py
Ein erfolgreicher Durchlauf erzeugt ein Ausgabevideo mit dem Namen animations/s6--d0_concat.mp4. Es kombiniert das Driving-Video, das Quellbild oder -video und das generierte Ergebnis.
Du kannst die Eingabe ändern, indem du die Argumente für Quelle und Driving angibst:
# source input is an image
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4
# source input is a video
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4
# more options
python inference.py -h
Schneller Praxistest (Tiere) 🐱🐶
Der Tiermodus wurde unter Linux und Windows mit einer NVIDIA-GPU getestet.
Erstelle zuerst die MultiScaleDeformableAttention -Operation und führe anschließend das Inferenzskript für Tiere aus:
cd src/utils/dependencies/XPose/models/UniPose/ops
python setup.py build install
cd -
python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
Ein erfolgreicher Durchlauf erzeugt animations/s39--wink_concat.mp4.
Automatisches Zuschneiden des Driving-Videos 📢📢📢
Wichtig
Für dein eigenes Driving-Video empfehlen wir:
- Auf ein Seitenverhältnis von 1:1 zuschneiden oder
--flag_crop_driving_video. - Aktiviere den Kopfbereich und minimiere Schulterbewegungen.
- Verwende im ersten Frame ein Frontalgesicht mit neutralem Gesichtsausdruck.
Unten findest du ein Beispiel für das automatische Zuschneiden:
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video
Passe --scale_crop_driving_video und --vy_ratio_crop_driving_video an, wenn das automatische Zuschneiden verfeinert werden muss.
Erstellen von Bewegungs-Templates
Automatisch generierte Bewegungs-Templates mit der Endung .pkl können die Inferenz beschleunigen und zum Schutz der Privatsphäre von Quellvideos beitragen:
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d5.pkl # portrait animation
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d5.pkl # portrait video editing
4. Gradio-Oberfläche 🤗
Das Projekt umfasst eine Gradio-Oberfläche für einen leichter zugänglichen Workflow:
# For Linux and Windows users
python app.py
# For macOS with Apple Silicon
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py
Der Tiermodus verfügt über eine separate Oberfläche und wurde unter Linux mit einer NVIDIA-GPU getestet:
python app_animals.py
Sie können --server_port, --share, und --server_name nach Bedarf angeben.
Der optionale --flag_do_torch_compile -Modus kann nach seinem ersten Optimierungsschritt spätere Inferenzvorgänge beschleunigen:
# enable torch.compile for faster inference
python app.py --flag_do_torch_compile
Hinweis: torch.compile wird unter Windows und macOS nicht unterstützt.
Oder probieren Sie den Online-Workflow über LivePortrait 🤗
5. Bewertung der Inferenzgeschwindigkeit 🚀🚀🚀
Verwenden Sie das Geschwindigkeitsskript, um die Inferenzzeit jedes Moduls zu bewerten:
# For NVIDIA GPU
python speed.py
Die Messhinweise sind in den Projektressourcen verfügbar.
Community-Ressourcen 🤗
Entdecken Sie von der LivePortrait-Community bereitgestellte Tools und Lernressourcen.
Von der Community entwickelte Projekte
| Repo | Beschreibung | Autor / Links |
|---|---|---|
| AVTR-1 | Echtzeitmodell für sprechende Köpfe in Gesprächen, das dyadische Audiokonditionierung und einen Renderer zur Porträtverformung im Stil von LivePortrait verwendet. | @avaturn-live |
| ditto-talkinghead | Echtzeit-Audio-gesteuerter sprechender Kopf. | ArXiv, Startseite |
| FasterLivePortrait | Schnellere Echtzeitversion mit TensorRT. | @warmshao |
| AdvancedLivePortrait-WebUI | Eigenständige, Gradio-basierte WebUI, entstanden aus einem erweiterten LivePortrait-Node-Workflow. | @jhj0517 |
| FacePoke | Eine Echtzeit-App zur Transformation von Köpfen, die mit dem Cursor gesteuert wird. | @jbilcke-hf |
| FaceFusion | FaceFusion integriert LivePortrait für die Wiederherstellung von Gesichtsausdrücken und die Gesichtsbearbeitung. | @henryruhs |
| sd-webui-live-portrait | WebUI-Erweiterung, die einem bestehenden Stable-Diffusion-Workflow LivePortrait-Funktionen hinzufügt. | @dimitribarbot |
| ComfyUI-LivePortraitKJ | Ein ComfyUI-Node, der MediaPipe als Alternative zu InsightFace verwendet. | @kijai |
| ComfyUI-AdvancedLivePortrait | Ein schnellerer ComfyUI-Node mit Echtzeitvorschau, der viele Community-Tools inspiriert hat. | @PowerHouseMan |
| comfyui-liveportrait | Ein ComfyUI-Node mit Unterstützung für mehrere Gesichter und die Interpolation von Gesichtsausdrücken. | @shadowcz007 |
Playgrounds, 🤗 HuggingFace Spaces und andere
- FacePoke Space
- Expression Editor Space
- Expression Editor Replicate
- Face Control Realtime Demo auf FAL
- Replicate Playground
- Nuke kann LivePortrait über einen Community-Node verwenden; Details sind verfügbar hier.
- LivePortrait ist auch verfügbar über Poe.
Videotutorials
- Workflow von LivePortrait: Video zu Video von @curiousrefuge
- Google-Colab-Tutorial von @Planet Ai
- Paper-Lektüre von @TwoMinutePapers
- ComfyUI Advanced LivePortrait von TutoView
- LivePortrait-Erkundung und Ein umfassender Einblick in LivePortrait von TheoreticallyMedia
- LivePortrait-Praxistutorial von @AI Search
- ComfyUI-Tutorial von @Sebastian Kamph
- Ein Tutorial auf BiliBili
Und so viele durchdachte Beiträge aus der Community tragen weiterhin dazu bei, das LivePortrait-Ökosystem zu erweitern 💖
Danksagungen 💐
Wir danken den Mitwirkenden an FOMM, Open Facevid2vid, SPADE, InsightFace, X-Pose und der weiteren Open-Research-Community für ihre Arbeit und Beiträge.
Ethische Überlegungen 🛡️
Technologien zur Porträtanimation bergen gesellschaftliche Risiken, einschließlich des möglichen Missbrauchs zur Erstellung täuschender Medien. Verwende den Workflow verantwortungsvoll, hole die Erlaubnis für Quellbilder ein und kennzeichne synthetische oder bearbeitete Ergebnisse, wo angemessen, eindeutig. Aktuelle synthetisierte Ergebnisse können visuelle Artefakte enthalten, die bei der Erkennung helfen können. Das Projekt übernimmt keine rechtliche Verantwortung für generierte Ausgaben.
Zitierung 💖
Wenn LivePortrait für dein Projekt oder deine Forschung nützlich ist, zitiere die Arbeit mit dem folgenden BibTeX:
@article{liveportrait2024,
title = {LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control},
author = {LivePortrait Research Team},
journal = {arXiv preprint},
year = {2024}
}
Es lebe die offene Forschung.
Kontakt 📧
LivePortrait Research; Fragen und Anfragen zur Zusammenarbeit können über den Projekt-Workflow.
Sternverlauf 🌟
Klicken, um das Sternendiagramm anzuzeigen