Animez N'importe Quel Portrait : Découvrez LivePortrait, Votre Animateur IA Open Source

LivePortrait

Description du projet

LivePortrait est une implémentation open-source en PyTorch pour une animation efficace de portraits. Il permet d'animer des portraits statiques (humains, chats et chiens) à l'aide d'une vidéo motrice ou d'un modèle de mouvement, en se concentrant sur le contrôle de l'assemblage et du ciblage pour les rendre vivants. Le projet est activement mis à jour et amélioré par les chercheurs de Kuaishou Technology, de l'Université des Sciences et Technologies de Chine et de l'Université Fudan.

Démonstration LivePortrait GIF

Instructions d'utilisation

Configuration de l'environnement

  1. Cloner le dépôt :
    git clone https://github.com/KwaiVGI/LivePortrait
    cd LivePortrait
    
  2. Créer et activer un environnement Conda :
    conda create -n LivePortrait python=3.10
    conda activate LivePortrait
    
  3. Installer PyTorch (compatible CUDA pour Linux/Windows) : D'abord, vérifiez votre version de CUDA : nvcc -V. Ensuite, installez la version de PyTorch correspondante.
    • Pour 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
      
    • Pour 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
      
    • Pour les autres versions de CUDA, consultez le site officiel de PyTorch.
    • Remarque pour les utilisateurs Windows : Rétrograder CUDA à la version 11.8 pourrait résoudre des problèmes avec des versions de CUDA plus récentes.
  4. Installer les dépendances restantes :
    pip install -r requirements.txt
    
    • Pour macOS avec Apple Silicon :
      pip install -r requirements_macOS.txt
      
      (La dépendance X-Pose est ignorée, le mode Animaux n'est pas pris en charge.)

Télécharger les poids pré-entrainés

  • Depuis HuggingFace (recommandé) :
    # !pip install -U "huggingface_hub[cli]"
    huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"
    
  • Utiliser hf-mirror (si HuggingFace est inaccessible) :
    # !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"
    
  • Alternativement, téléchargez depuis Google Drive ou Baidu Yun et placez les fichiers dans ./pretrained_weights.

Inférence

Mode Humains

  • Exécuter avec les entrées par défaut :
    python inference.py
    
    (Pour macOS avec Apple Silicon, utilisez PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py)
  • Spécifier les entrées source et motrice :
    # La source est une image
    python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4
    # La source est une vidéo
    python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4
    

Mode Animaux (Linux/Windows avec GPU NVIDIA uniquement)

  1. Construire l'OP MultiScaleDeformableAttention :
    cd src/utils/dependencies/XPose/models/UniPose/ops
    python setup.py build install
    cd -
    
  2. Exécuter l'inférence :
    python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching
    
    Exemple d'inférence Animaux

Recadrage automatique de la vidéo motrice

  • Activer le 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 ou --vy_ratio_crop_driving_video pour de meilleurs résultats.)

Création de modèles de mouvement

  • Utilisez les fichiers .pkl générés automatiquement pour une inférence plus rapide et une meilleure protection de la vie privée :
    python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d5.pkl # animation de portrait
    python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d5.pkl # édition de vidéo de portrait
    

Interface Gradio

  • Mode Humains :
    # Pour Linux et Windows
    python app.py
    # Pour macOS avec Apple Silicon
    PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py
    
  • Mode Animaux (Linux avec GPU NVIDIA uniquement) :
    python app_animals.py
    
  • Accélération : Utilisez --flag_do_torch_compile pour des inférences ultérieures 20-30% plus rapides (non pris en charge sur Windows/macOS).
    python app.py --flag_do_torch_compile
    
  • Un espace HuggingFace en ligne est également disponible.

Fonctionnalités clés

  • Animation efficace de portraits : Anime des images statiques d'humains, de chats et de chiens.
  • Contrôle de l'assemblage et du ciblage : Offre un contrôle précis sur le processus d'animation.
  • Diverses entrées motrices : Prend en charge le mouvement à partir de vidéos, d'images ou de modèles de mouvement pré-générés (fichiers .pkl).
  • Édition vidéo-à-vidéo (v2v) : Prend en charge l'édition de vidéos de portraits existantes.
  • Interface Gradio : Interface web conviviale pour une utilisation plus facile et une édition précise des portraits.
  • Contrôle régional et mode piloté par l'image : Offre un contrôle avancé et différentes options de pilotage.
  • Édition de pose : Permet d'éditer les poses du portrait source via l'interface Gradio.
  • Recadrage automatique : Recadre automatiquement les vidéos motrices en format 1:1 en se concentrant sur la tête.
  • Protection de la vie privée : Les modèles de mouvement peuvent être utilisés pour protéger la vie privée des sujets des vidéos motrices.
  • Support multiplateforme : Compatible avec Linux, Windows (avec GPU NVIDIA) et macOS avec Apple Silicon.
  • Performance optimisée : Inclut une option torch.compile pour accélérer l'inférence.

Utilisateurs cibles

  • Créateurs de contenu vidéo : Pour animer des portraits dans leurs vidéos.
  • Animateurs : Pour générer rapidement des animations faciales pour des personnages.
  • Chercheurs et développeurs : Comme base pour un développement ultérieur dans l'animation de portraits, la génération d'images/vidéos et l'animation faciale.
  • Enthousiastes en général : Personnes intéressées par l'animation de leurs photos ou l'expérimentation avec l'animation IA.
  • Grandes plateformes vidéo : Déjà adopté par des plateformes comme Kuaishou, Douyin, Jianying et WeChat Channels.

Liens du projet

Scénarios d'application

  • Contenu pour les réseaux sociaux : Création de photos de profil animées attrayantes ou de courtes vidéos à partir d'images statiques.
  • Marketing et publicité : Génération de personnages animés ou de porte-parole à partir d'images statiques.
  • Développement de films et de jeux : Prototypage rapide d'animations de personnages pour les expressions faciales.
  • Avatars virtuels et humains numériques : Animation d'avatars statiques pour les réunions virtuelles ou les simulations.
  • Usage personnel : Donnez vie à de vieilles photos de famille ou à des clichés d'animaux de compagnie adorés.

Partager cet article