Repository-Navigation

Forschungsveröffentlichung Porträts von Menschen und Tieren

LivePortrait: Porträtanimation mit Retargeting-Steuerung

Animieren Sie ein Porträt anhand eines einzigen Bildes.

Ein Quellporträt Ausdrucksstarke Bewegung Schneller Workflow
LivePortrait ausprobieren

Workflow ausprobieren

Beschreiben Sie die gewünschte Bewegung des Porträts.

Bereit zum Start

Workflow ausprobieren · keine Installation hier · Prompt enthalten

Mit einem Beispiel beginnen

Ein Fingertipp

LivePortrait

Porträts zum Leben erwecken.

Öffentlich

Navigation durch Repository-Dateien

LivePortrait-Forschungsimplementierung

effiziente Animation Zusammenfügen Steuerung der Bewegungsübertragung offener Workflow

Kuaishou Technology · Porträtanimation · Bild- und Video-Workflows

Drei ausdrucksstarke Porträtbilder mit einem klassischen Porträt, einer gemalten Person und einer lächelnden Frau in einer museumsähnlichen Komposition

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.

Dreiteiliges Beispiel einer Porträtanimation mit einem steuernden Gesicht, einem Quellporträt und einem lächelnden generierten 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.

Zweiteiliges Porträt einer flauschigen Katze mit einer neutralen Vorlage und einem lebhaften animierten Gesichtsausdruck

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

RepoBeschreibungAutor / Links
AVTR-1Echtzeitmodell 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-talkingheadEchtzeit-Audio-gesteuerter sprechender Kopf.ArXiv, Startseite
FasterLivePortraitSchnellere Echtzeitversion mit TensorRT.@warmshao
AdvancedLivePortrait-WebUIEigenständige, Gradio-basierte WebUI, entstanden aus einem erweiterten LivePortrait-Node-Workflow.@jhj0517
FacePokeEine Echtzeit-App zur Transformation von Köpfen, die mit dem Cursor gesteuert wird.@jbilcke-hf
FaceFusionFaceFusion integriert LivePortrait für die Wiederherstellung von Gesichtsausdrücken und die Gesichtsbearbeitung.@henryruhs
sd-webui-live-portraitWebUI-Erweiterung, die einem bestehenden Stable-Diffusion-Workflow LivePortrait-Funktionen hinzufügt.@dimitribarbot
ComfyUI-LivePortraitKJEin ComfyUI-Node, der MediaPipe als Alternative zu InsightFace verwendet.@kijai
ComfyUI-AdvancedLivePortraitEin schnellerer ComfyUI-Node mit Echtzeitvorschau, der viele Community-Tools inspiriert hat.@PowerHouseMan
comfyui-liveportraitEin ComfyUI-Node mit Unterstützung für mehrere Gesichter und die Interpolation von Gesichtsausdrücken.@shadowcz007

Playgrounds, 🤗 HuggingFace Spaces und andere

Videotutorials

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

Generiertes Verlaufsdiagramm mit blauen und grünen Sternen für das LivePortrait-Projekt

Jetzt erstellen
Jetzt erstellen