Pour plus de résultats, visitez notre page d'accueil
2024/10/18
: ❗ Nous avons mis à jour les versions des transformers
et des bibliothèques gradio
pour éviter les failles de sécurité. Détails ici.2024/08/29
: ? Nous mettons à jour le programme d'installation en un clic de Windows et prenons en charge les mises à jour automatiques, voir le journal des modifications.2024/08/19
: ?️ Nous prenons en charge le mode basé sur l'image et le contrôle régional . Pour plus de détails, voir ici .2024/08/06
: ? Nous prenons en charge l'édition précise de portraits dans l'interface Gradio, inspirée de ComfyUI-AdvancedLivePortrait. Voir ici .2024/08/05
: ? Les utilisateurs de Windows peuvent désormais télécharger le programme d'installation en un clic pour les modes Humains et Animaux ! Pour plus de détails, voir ici .2024/08/02
: ? Nous avons publié une version du modèle Animals , ainsi que plusieurs autres mises à jour et améliorations. Découvrez les détails ici !2024/07/25
: ? Les utilisateurs Windows peuvent désormais télécharger le package depuis HuggingFace. Décompressez simplement et double-cliquez sur run_windows.bat
pour en profiter !2024/07/24
: ? Nous prenons en charge l'édition de pose pour les portraits sources dans l'interface Gradio. Nous avons également abaissé le seuil de détection par défaut pour augmenter le rappel. Amusez-vous!2024/07/19
: Nous prenons en charge le montage vidéo portrait (alias v2v) ! Plus à voir ici.2024/07/17
: ? Nous prenons en charge macOS avec Apple Silicon, modifié à partir du PR #143 de Jeethu.2024/07/10
: ? Nous prenons en charge la concaténation audio et vidéo, le recadrage automatique des vidéos et la création de modèles pour protéger la confidentialité. Plus à voir ici.2024/07/09
: ? Nous avons sorti l'Espace HuggingFace, grâce à l'équipe HF et Gradio !2024/07/04
: ? Nous avons publié la version initiale du code et des modèles d'inférence. Mises à jour continues, restez à l'écoute !2024/07/04
: Nous avons publié la page d'accueil et le rapport technique sur arXiv. Ce référentiel, nommé LivePortrait , contient l'implémentation officielle PyTorch de notre article LivePortrait : animation de portrait efficace avec contrôle d'assemblage et de reciblage. Nous mettons activement à jour et améliorons ce référentiel. Si vous trouvez des bugs ou avez des suggestions, n'hésitez pas à soulever des problèmes ou à soumettre des demandes d'extraction (PR) ?.
Note
Assurez-vous que git
, conda
et FFmpeg
sont installés sur votre système. Pour plus de détails sur l'installation de FFmpeg, consultez comment installer FFmpeg .
git clone https://github.com/KwaiVGI/LivePortrait
cd LivePortrait
# create env using conda
conda create -n LivePortrait python=3.10
conda activate LivePortrait
X-Pose nécessite que votre version torch
soit compatible avec la version CUDA.
Tout d’abord, vérifiez votre version actuelle de CUDA en :
nvcc -V # example versions: 11.1, 11.8, 12.1, etc.
Ensuite, installez la version de la torche correspondante. Voici des exemples pour différentes versions de CUDA. Visitez le site Web officiel de PyTorch pour les commandes d'installation si votre version CUDA n'est pas répertoriée :
# 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
# ...
Remarque : Sur les systèmes Windows, certaines versions supérieures de CUDA (telles que 12.4, 12.6, etc.) peuvent entraîner des problèmes inconnus. Vous pouvez envisager de rétrograder CUDA vers la version 11.8 pour plus de stabilité. Voir le guide de rétrogradation de @dimitribarbot.
Enfin, installez les dépendances restantes :
pip install -r requirements.txt
La dépendance X-Pose ne prend pas en charge macOS, vous pouvez donc ignorer son installation. Bien que le mode Humains fonctionne comme d'habitude, le mode Animaux n'est pas pris en charge. Utilisez le fichier d'exigences fourni pour macOS avec Apple Silicon :
# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt
Le moyen le plus simple de télécharger les poids pré-entraînés est de HuggingFace :
# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude " *.git* " " README.md " " docs "
Si vous ne pouvez pas accéder à Huggingface, vous pouvez utiliser hf-mirror pour télécharger :
# !pip install -U "huggingface_hub[cli]"
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude " *.git* " " README.md " " docs "
Vous pouvez également télécharger tous les poids pré-entraînés depuis Google Drive ou Baidu Yun. Décompressez-les et placez-les dans ./pretrained_weights
.
Assurez-vous que la structure du répertoire est telle ou contient ceci .
# For Linux and Windows users
python inference.py
# For macOS users with Apple Silicon (Intel is not tested). NOTE: this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py
Si le script s'exécute avec succès, vous obtiendrez un fichier de sortie mp4 nommé animations/s6--d0_concat.mp4
. Ce fichier comprend les résultats suivants : vidéo de conduite, image ou vidéo d'entrée et résultat généré.
Vous pouvez également modifier l'entrée en spécifiant les arguments -s
et -d
:
# 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 to see
python inference.py -h
Le mode Animaux est testé UNIQUEMENT sous Linux et Windows avec le GPU NVIDIA.
Vous devez d'abord créer un OP nommé MultiScaleDeformableAttention
, qui est utilisé par X-Pose, un framework général de détection de points clés.
cd src/utils/dependencies/XPose/models/UniPose/ops
python setup.py build install
cd - # equal to cd ../../../../../../../
Alors
python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
Si le script s'exécute avec succès, vous obtiendrez un fichier de sortie mp4 nommé animations/s39--wink_concat.mp4
.
Important
Pour utiliser votre propre vidéo de conduite, nous vous recommandons :
--flag_crop_driving_video
. Vous trouverez ci-dessous un cas de recadrage automatique réalisé par --flag_crop_driving_video
:
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video
Si vous trouvez que les résultats du recadrage automatique ne sont pas bons, vous pouvez modifier les options --scale_crop_driving_video
, --vy_ratio_crop_driving_video
pour ajuster l'échelle et le décalage, ou le faire manuellement.
Vous pouvez également utiliser les fichiers de modèles de mouvement générés automatiquement se terminant par .pkl
pour accélérer l'inférence et protéger la confidentialité , par exemple :
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
Nous fournissons également une interface Gradio pour une meilleure expérience, simplement gérée par :
# For Linux and Windows users (and macOS with Intel??)
python app.py # humans mode
# For macOS with Apple Silicon users, Intel not supported, this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py # humans mode
Nous fournissons également une interface Gradio de mode animaux, qui est testée uniquement sous Linux avec GPU NVIDIA :
python app_animals.py # animals mode ??
Vous pouvez spécifier les arguments --server_port
, --share
, --server_name
pour satisfaire vos besoins !
Nous fournissons également une option d'accélération --flag_do_torch_compile
. La première inférence déclenche un processus d'optimisation (environ une minute), rendant les inférences ultérieures 20 à 30 % plus rapides. Les gains de performances peuvent varier selon les différentes versions de CUDA.
# enable torch.compile for faster inference
python app.py --flag_do_torch_compile
Remarque : Cette méthode n'est pas prise en charge sous Windows et macOS.
Ou essayez-le sans effort sur HuggingFace ?
Nous avons également fourni un script pour évaluer la vitesse d'inférence de chaque module :
# For NVIDIA GPU
python speed.py
Les résultats sont ici .
Découvrez les ressources inestimables apportées par notre communauté pour améliorer votre expérience LivePortrait.
Repo (trié par horodatage créé) | Description | Auteur |
---|---|---|
AdvancedLivePortrait-WebUI | WebUI dédié basé sur Gradio démarré à partir de ComfyUI-AdvancedLivePortrait | @jhj0517 |
VisagePoke | Une application de transformation de tête en temps réel, contrôlée par votre souris ! | @jbilcke-hf |
FaceFusion | FaceFusion 3.0 intègre LivePortrait en tant que processeurs expression_restorer et face_editor . | @henryruhs |
sd-webui-live-portrait | Extension WebUI de LivePortrait, ajoutant atab au WebUI de diffusion stable d'origine pour bénéficier des fonctionnalités de LivePortrait. | @dimitribarbot |
ComfyUI-LivePortraitKJ | Un nœud ComfyUI pour utiliser LivePortrait, avec MediaPipe comme alternative à Insightface. | @kijai |
ComfyUI-AdvancedLivePortrait | Un nœud ComfyUI plus rapide avec aperçu en temps réel qui a inspiré de nombreux autres outils et projets développés par la communauté. | @PowerHouseMan |
confortableui-liveportrait | Un nœud ComfyUI pour utiliser LivePortrait, prenant en charge les multi-faces, l'interpolation d'expressions, etc., avec un tutoriel. | @shadowcz007 |
Et tant de contributions incroyables de notre communauté, trop nombreuses pour toutes les énumérer ?
Nous tenons à remercier les contributeurs des référentiels FOMM, Open Facevid2vid, SPADE, InsightFace et X-Pose, pour leurs recherches ouvertes et leurs contributions.
Les technologies d’animation de portraits comportent des risques sociaux, en particulier le potentiel d’utilisation abusive dans la création de deepfakes. Pour atténuer ces risques, il est essentiel de suivre des directives éthiques et d'adopter des pratiques d'utilisation responsables. À l’heure actuelle, les résultats synthétisés contiennent des artefacts visuels qui peuvent aider à détecter les deepfakes. Veuillez noter que nous n'assumons aucune responsabilité légale quant à l'utilisation des résultats générés par ce projet.
Si vous trouvez LivePortrait utile pour vos recherches, bienvenue sur ? ce dépôt et citez notre travail en utilisant le BibTeX suivant :
@article { guo2024liveportrait ,
title = { LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control } ,
author = { Guo, Jianzhu and Zhang, Dingyun and Liu, Xiaoqiang and Zhong, Zhizhou and Zhang, Yuan and Wan, Pengfei and Zhang, Di } ,
journal = { arXiv preprint arXiv:2407.03168 } ,
year = { 2024 }
}
Jianzhu Guo (郭建珠) ; [email protected]