Navigation dans le dépôt

Version de recherche Portraits humains + animaliers

LivePortrait : animation de portraits avec contrôle du reciblage

Animez un portrait à partir d’une seule image.

Un seul portrait source Mouvement expressif Processus rapide
Essayer LivePortrait

Essayer le processus

Décrivez le mouvement du portrait souhaité.

Prêt à commencer

Essayez le workflow · aucune installation ici · prompt inclus

Commencer par un exemple

Un appui

LivePortrait

Donnez vie aux portraits.

Public

Navigation des fichiers du dépôt

Implémentation de recherche de LivePortrait

animation efficace assemblage contrôle du reciblage workflow ouvert

Kuaishou Technology · animation de portraits · workflows d’images et de vidéos

Trois cadres de portrait expressifs montrant un portrait classique, un sujet peint et une femme souriante dans une composition évoquant un musée

Donnez vie aux portraits à partir d’une image source et d’une direction de mouvement choisie.

🔥 Mises à jour

  • 2025/06/01: 🌍 Au cours de l’année écoulée, LivePortrait est devenu une solution efficace d’animation de portraits pour les humains, les chats et les chiens, utilisée sur les plateformes vidéo, dans les outils créatifs et les workflows de recherche.
  • 2025/01/01: 🐶 Nous avons mis à jour le modèle Animals avec des données d’entraînement supplémentaires et actualisé les ressources d’exemple. Les détails sont disponibles ici.
  • 2024/10/18: ❗ Les versions des dépendances ont été mises à jour afin d’améliorer la sécurité et la cohérence de l’installation. Consultez les notes de modification.
  • 2024/08/29: 📦 Le package Windows a été actualisé avec un parcours d’installation simplifié et la prise en charge des mises à jour.
  • 2024/08/19: 🖼️ Le mode piloté par image et le contrôle régional sont désormais pris en charge pour orienter les portraits avec davantage de précision.
  • 2024/08/06: 🎨 La retouche précise des portraits a été ajoutée à l’interface pour un contrôle plus détaillé des expressions.
  • 2024/08/05: 📦 Les utilisateurs de Windows peuvent accéder au package en un clic pour les modes Humans et Animals.
  • 2024/08/02: 😸 Un nouveau modèle Animals est arrivé avec plusieurs améliorations supplémentaires.
  • 2024/07/25: 📦 Le package téléchargeable inclut désormais un parcours d’exécution direct pour les utilisateurs de Windows.
  • 2024/07/24: 🎨 La modification de la pose des portraits sources a été ajoutée, avec un seuil de détection par défaut plus bas.
  • 2024/07/19: ✨ La modification de vidéos de portraits, également appelée v2v, est prise en charge pour les workflows compatibles.
  • 2024/07/17: 🍎 La prise en charge d’Apple Silicon a été ajoutée au workflow Humans.
  • 2024/07/10: 💪 La concaténation audio et vidéo, le recadrage automatique des vidéos pilotes et la création de modèles de mouvement sont pris en charge.
  • 2024/07/09: 🤗 Une démo en ligne a été publiée pour tester le workflow sans configuration locale.
  • 2024/07/04: 😊 Le code et les modèles d’inférence initiaux ont été publiés à des fins de recherche et d’expérimentation.
  • 2024/07/04: 🔥 La page d’accueil du projet et le rapport technique ont été publiés avec la première implémentation publique.

Introduction 📖

Ce dépôt, nommé LivePortrait, contient une implémentation officielle sous PyTorch pour l’animation efficace de portraits avec contrôle de l’assemblage et du reciblage. Le flux de travail transforme un portrait source en mouvement expressif tout en conservant l’identité d’origine et la cohérence de la structure visuelle.

LivePortrait est activement amélioré pour la recherche, l’exploration créative et les expériences pratiques de conversion d’image en vidéo. Si vous rencontrez un problème ou avez une suggestion, utilisez le flux de travail du projet pour le partager.

Bien démarrer 🏁

1. Cloner le code et préparer l’environnement 🛠️

Remarque

Assurez-vous que votre système dispose de git, conda, ainsi que de FFmpeg installés avant d’exécuter le flux de travail local.

git clone https://github.com/KlingTeam/LivePortrait
cd LivePortrait

# create env using conda
conda create -n LivePortrait python=3.10
conda activate LivePortrait

Pour les utilisateurs de Linux 🐧 ou Windows 🪟

La dépendance X-Pose est requise par le mode Animals. La vérification de la version de CUDA est facultative si vous souhaitez uniquement exécuter le mode Humans.

Vérifier vos versions de CUDA

Commencez par vérifier la version de CUDA installée :

nvcc -V  # example versions: 11.1, 11.8, 12.1, etc.

Installez ensuite la version correspondante de torch. Voici des exemples de commandes :

# 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

Enfin, installez les dépendances restantes :

pip install -r requirements.txt

Pour les utilisateurs de macOS  avec Apple Silicon

La dépendance X-Pose ne prend pas en charge macOS et peut donc être ignorée. Le mode Humans fonctionne normalement, tandis que le mode Animals n’est pas pris en charge sur cette plateforme.

# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt

2. Télécharger les poids préentraînés 📥

La manière la plus simple de télécharger les poids préentraînés consiste à utiliser le client en ligne de commande de Hugging Face :

# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KlingTeam/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"

Si le miroir principal n’est pas disponible, utilisez le point de terminaison alternatif :

# !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"

Vous pouvez également télécharger le paquet complet de poids depuis les ressources du projet liées et placer les fichiers décompressés dans ./pretrained_weights.

Assurez-vous que la structure des répertoires correspond à la disposition attendue avant de commencer l’inférence.

3. Inférence 🚀

Prise en main rapide (humains) 👤

# For Linux and Windows users
python inference.py

# For macOS users with Apple Silicon
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py

Une exécution réussie produit une vidéo de sortie nommée animations/s6--d0_concat.mp4. Elle combine la vidéo d’animation, l’image ou la vidéo source et le résultat généré.

Exemple d’animation de portrait en trois panneaux avec un visage conducteur, un portrait source et un résultat généré souriant

Vous pouvez modifier l’entrée en spécifiant les arguments source et driving :

# 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

Prise en main rapide (animaux) 🐱🐶

Le mode animaux est testé sous Linux et Windows avec un GPU NVIDIA.

Construisez d’abord l’opération MultiScaleDeformableAttention , puis exécutez le script d’inférence pour les animaux :

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

Une exécution réussie produit animations/s39--wink_concat.mp4.

Portrait de chat duveteux en deux panneaux montrant une source neutre et une expression animée pleine de vie

Recadrage automatique de la vidéo d’animation 📢📢📢

Important

Pour votre propre vidéo d’animation, nous recommandons de :

  • Recadrer selon un format d’image de 1:1 ou activer --flag_crop_driving_video.
  • Garder la zone de la tête bien visible et minimiser les mouvements des épaules.
  • Utiliser un visage de face avec une expression neutre dans la première image.

Voici un exemple de recadrage automatique :

python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video

Ajustez --scale_crop_driving_video et --vy_ratio_crop_driving_video lorsque le recadrage automatique doit être affiné.

Création de modèles de mouvement

Les modèles de mouvement générés automatiquement et se terminant par .pkl peuvent accélérer l’inférence et contribuer à protéger la confidentialité de la vidéo source :

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. Interface Gradio 🤗

Le projet inclut une interface Gradio pour un flux de travail plus accessible :

# For Linux and Windows users
python app.py

# For macOS with Apple Silicon
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py

Le mode Animaux dispose d’une interface distincte et est testé sous Linux avec un GPU NVIDIA :

python app_animals.py

Vous pouvez spécifier --server_port, --share, ainsi que --server_name selon vos besoins.

Le mode facultatif --flag_do_torch_compile peut accélérer les inférences ultérieures après son étape d’optimisation initiale :

# enable torch.compile for faster inference
python app.py --flag_do_torch_compile

Remarque: torch.compile n’est pas pris en charge sous Windows et macOS.

Ou essayez le flux de travail en ligne via LivePortrait 🤗

5. Évaluation de la vitesse d’inférence 🚀🚀🚀

Utilisez le script de mesure de la vitesse pour évaluer le temps d’inférence de chaque module :

# For NVIDIA GPU
python speed.py

Les notes de mesure sont disponibles dans les ressources du projet.

Ressources communautaires 🤗

Découvrez les outils et ressources d’apprentissage proposés par la communauté LivePortrait.

Projets développés par la communauté

DépôtDescriptionAuteur / Liens
AVTR-1Modèle de tête parlante conversationnelle en temps réel utilisant un conditionnement audio dyadique et un moteur de déformation de portrait de type LivePortrait.@avaturn-live
ditto-talkingheadTête parlante pilotée par l’audio en temps réel.ArXiv, Page d’accueil
FasterLivePortraitVersion en temps réel plus rapide utilisant TensorRT.@warmshao
AdvancedLivePortrait-WebUIWebUI dédié basé sur Gradio, créé à partir d’un workflow avancé de nœuds LivePortrait.@jhj0517
FacePokeApplication de transformation de la tête en temps réel contrôlée par le curseur.@jbilcke-hf
FaceFusionFaceFusion intègre LivePortrait comme processeur de restauration des expressions et de retouche faciale.@henryruhs
sd-webui-live-portraitExtension WebUI ajoutant les fonctionnalités de LivePortrait à un workflow Stable Diffusion existant.@dimitribarbot
ComfyUI-LivePortraitKJNœud ComfyUI utilisant MediaPipe comme alternative à InsightFace.@kijai
ComfyUI-AdvancedLivePortraitNœud ComfyUI plus rapide avec aperçu en temps réel, qui a inspiré de nombreux outils communautaires.@PowerHouseMan
comfyui-liveportraitNœud ComfyUI prenant en charge plusieurs visages et l’interpolation des expressions.@shadowcz007

Playgrounds, 🤗 Espaces HuggingFace et autres

Tutoriels vidéo

Et les nombreuses contributions de la communauté continuent d’enrichir l’écosystème LivePortrait 💖

Remerciements 💐

Nous remercions les contributeurs de FOMM, Open Facevid2vid, SPADE, InsightFace et X-Pose, ainsi que l’ensemble de la communauté de la recherche ouverte, pour leurs travaux et leurs contributions.

Considérations éthiques 🛡️

Les technologies d’animation de portraits présentent des risques sociaux, notamment celui d’être utilisées pour créer des contenus trompeurs. Utilisez ce flux de travail de manière responsable, obtenez l’autorisation d’utiliser les images sources et signalez clairement les résultats synthétiques ou retouchés lorsque cela est nécessaire. Les résultats générés actuellement peuvent présenter des artefacts visuels susceptibles de faciliter leur détection. Le projet décline toute responsabilité juridique concernant les résultats générés.

Citation 💖

Si LivePortrait vous est utile dans le cadre de votre projet ou de vos recherches, citez ces travaux à l’aide du BibTeX suivant :

@article{liveportrait2024,
  title   = {LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control},
  author  = {LivePortrait Research Team},
  journal = {arXiv preprint},
  year    = {2024}
}

Vive la recherche ouverte.

Contact 📧

Recherche LivePortrait; pour toute question ou proposition de collaboration, vous pouvez commencer par le flux de travail du projet.

Historique des étoiles 🌟

Cliquez pour voir le graphique des étoiles

Graphique généré de l’historique des étoiles, en bleu et vert, pour le projet LivePortrait

Commencer à créer
Commencer à créer