FantasyTalking : un outil open source pour générer des portraits parlants réalistes

Introduction générale

FantasyTalking est un projet open source développé par l'équipe Fantasy-AMAP, qui se concentre sur la génération audio de vidéos de portraits parlants réalistes. Le projet est basé sur le modèle de diffusion vidéo avancé Wan2.1, combiné à l'encodeur audio Wav2Vec et à des poids de modèle propriétaires, utilisant des techniques d'intelligence artificielle pour obtenir une synchronisation labiale et des expressions faciales très réalistes. Il prend en charge plusieurs styles de génération de portraits, y compris des personnes réelles et des images de dessins animés, pour un large éventail de points de vue tels que le panorama, le buste ou le gros plan. Les utilisateurs peuvent rapidement générer des vidéos parlantes de haute qualité en entrant des images et de l'audio par le biais de simples opérations de ligne de commande.

FantasyTalking:生成真实感说话肖像的开源工具

 

Liste des fonctions

  • Générer des vidéos de portraits parlants réalistes avec des mouvements de lèvres hautement synchronisés avec l'audio.
  • Plusieurs points de vue sont pris en charge pour la génération, y compris les portraits en gros plan, à mi-corps et à corps entier.
  • Compatible avec les portraits réels et les dessins animés pour répondre à divers besoins.
  • La fonction de contrôle des mots de repère permet d'ajuster l'expression et les mouvements corporels du personnage.
  • Prend en charge la sortie haute résolution jusqu'à 720P.
  • Module intégré d'attention croisée centrée sur le visage pour assurer la cohérence des traits du visage.
  • Comprend un module de modulation de l'intensité de l'exercice pour contrôler l'expression et l'amplitude des mouvements.
  • Modèles et code en libre accès pour soutenir le développement et l'optimisation de la communauté secondaire.

 

Utiliser l'aide

Processus d'installation

Pour utiliser FantasyTalking, vous devez d'abord installer les dépendances et les modèles nécessaires. Vous trouverez ci-dessous les étapes détaillées de l'installation :

  1. Clonage du code du projet
    Exécutez la commande suivante dans le terminal pour cloner le projet localement :

    git clone https://github.com/Fantasy-AMAP/fantasy-talking.git
    cd fantasy-talking
  1. Installation des dépendances
    Le projet dépend de l'environnement Python et de PyTorch (version >= 2.0.0). Exécutez la commande suivante pour installer les bibliothèques nécessaires :

    pip install -r requirements.txt
    

    Montage en option flash_attn pour accélérer le calcul de l'attention :

    pip install flash_attn
    
  2. Télécharger les modèles
    FantasyTalking nécessite trois modèles : Wan2.1-I2V-14B-720P (modèle de base), Wav2Vec (encodeur audio) et les poids du modèle FantasyTalking. Ils peuvent être téléchargés via Hugging Face ou ModelScope :

    • Utilisez l'interface de dialogue en ligne (CLI) de Hugging Face :
      pip install "huggingface_hub[cli]"
      huggingface-cli download Wan-AI/Wan2.1-I2V-14B-720P --local-dir ./models/Wan2.1-I2V-14B-720P
      huggingface-cli download facebook/wav2vec2-base-960h --local-dir ./models/wav2vec2-base-960h
      huggingface-cli download acvlab/FantasyTalking fantasytalking_model.ckpt --local-dir ./models
      
    • Ou utilisez l'interface de programmation ModelScope :
      pip install modelscope
      modelscope download Wan-AI/Wan2.1-I2V-14B-720P --local_dir ./models/Wan2.1-I2V-14B-720P
      modelscope download AI-ModelScope/wav2vec2-base-960h --local_dir ./models/wav2vec2-base-960h
      modelscope download amap_cvlab/FantasyTalking fantasytalking_model.ckpt --local_dir ./models
      
  3. Environnement de vérification
    Assurez-vous que le GPU est disponible (RTX 3090 ou supérieur recommandé, VRAM d'au moins 24 Go). Si vous rencontrez des problèmes de mémoire, essayez de réduire la résolution ou d'activer l'optimisation de la VRAM.

Utilisation

Une fois l'installation terminée, les utilisateurs peuvent exécuter le script de raisonnement pour générer des vidéos à partir de la ligne de commande. Les commandes de base sont les suivantes :

python infer.py --image_path ./assets/images/woman.png --audio_path ./assets/audios/woman.wav
  • --image_path: Saisissez le chemin d'accès à l'image du portrait (format PNG/JPG pris en charge).
  • --audio_pathChemin d'accès au fichier audio d'entrée (format WAV pris en charge).
  • --promptLes mots d'incitation facultatifs permettent de contrôler le comportement du rôle, par exemple :
    --prompt "The person is speaking enthusiastically, with their hands continuously waving."
    
  • --audio_cfg_scale répondre en chantant --prompt_cfg_scaleContrôle le niveau d'influence des mots audio et des mots repères, avec une plage recommandée de 3 à 7. L'augmentation du CFG audio améliore la synchronisation des lèvres.

Fonction en vedette Fonctionnement

  1. Synchronisation des lèvres
    La fonction principale de FantasyTalking est de générer des mouvements précis des lèvres sur la base d'un fichier audio. L'utilisateur doit préparer un fichier audio clair (format WAV, taux d'échantillonnage optimal de 16 kHz). Une fois le script d'inférence exécuté, le modèle analyse automatiquement l'audio et génère les mouvements des lèvres correspondants. Veillez à ce que l'audio ne contienne pas de bruit important pour obtenir les meilleurs résultats.
  2. Contrôle des mots repères
    faire passer (un projet de loi, une inspection, etc.) --prompt l'utilisateur peut définir les expressions et les actions du personnage. Par exemple, entrez --prompt "The person is speaking calmly with slight head movements." Des vidéos de conversations calmes peuvent être générées. Les mots-clés doivent être concis et clairs, en évitant les descriptions vagues.
  3. Support multi-styles
    Le projet prend en charge la génération de portraits dans des styles réels et de dessins animés. Les utilisateurs peuvent fournir des images d'entrée de différents styles, et le modèle ajustera le style de sortie en fonction des caractéristiques de l'image. Le style "dessin animé" convient aux scènes d'animation, et le style "réel" aux applications telles que les ancres virtuelles.
  4. Modulation de l'intensité de l'exercice
    Le module de modulation de l'intensité des mouvements de FantasyTalking permet à l'utilisateur de contrôler l'amplitude des expressions et des mouvements. Par exemple, en augmentant l'intensité de --audio_weight Ce paramètre améliore les mouvements des membres et convient aux scènes dynamiques. Les paramètres par défaut sont optimisés et il est recommandé de conserver les valeurs par défaut lors de la première utilisation.

mise en garde

  • exigences en matière de matérielLa RTX 5090 avec 32 Go de VRAM peut encore rencontrer des problèmes de mémoire faible et il est recommandé de réduire la quantité de mémoire nécessaire pour générer des vidéos haute résolution. --image_size peut-être --max_num_frames.
  • Modèle à téléchargerLes fichiers du modèle sont volumineux (plusieurs dizaines de gigaoctets), assurez-vous donc de disposer d'un réseau stable et d'un espace disque suffisant.
  • Optimisation des mots clésLe mot indicateur a un impact important sur le résultat et plusieurs expériences sont recommandées pour trouver la meilleure description.

 

scénario d'application

  1. Création de contenu pour les ancres virtuelles
    Les utilisateurs peuvent utiliser FantasyTalking pour générer des vidéos parlantes réalistes pour des présentateurs virtuels. Saisissez le portrait du présentateur et la voix off pour générer des vidéos synchronisées sur les lèvres pour la diffusion en direct, les vidéos courtes ou la production de contenu éducatif.
  2. Animation Doublage de personnages
    Les animateurs peuvent générer des vidéos de voix off pour des personnages de dessins animés. En fournissant l'image et le son du dessin animé, le modèle peut générer des mouvements et des expressions labiales adaptés, ce qui simplifie le processus de production de l'animation.
  3. Production de vidéos éducatives
    Les enseignants ou les organismes de formation peuvent générer des vidéos d'instructeurs virtuels. Saisissez le portrait de l'instructeur et l'audio du cours pour générer rapidement des vidéos pédagogiques qui renforcent l'attrait du contenu.
  4. Création de divertissements et de fascinations
    Les utilisateurs peuvent créer des portraits parlants hilarants pour des fanfictions ou des vidéos de divertissement. En ajustant les mots-clés, créez des vidéos avec des expressions ou des actions exagérées, adaptées au partage sur les réseaux sociaux.

 

QA

  1. Quels sont les formats d'entrée pris en charge par FantasyTalking ?
    Les images sont prises en charge aux formats PNG et JPG et le son est pris en charge au format WAV avec un taux d'échantillonnage recommandé de 16 kHz pour une synchronisation labiale optimale.
  2. Comment résoudre le problème de l'insuffisance de la mémoire vidéo ?
    Si le GPU n'a pas assez de mémoire (par exemple, 32GB VRAM sur la RTX 5090), diminuez le paramètre --image_size(par exemple, 512x512) ou réduite --max_num_frames(par exemple 30 fps). Il est également possible d'activer l'option d'optimisation de la VRAM ou d'utiliser un GPU plus configurable.
  3. Comment améliorer la qualité de la vidéo générée ?
    Utilisez une image d'entrée à haute résolution (au moins 512x512) pour vous assurer que l'audio est clair et sans bruit. Ajustement --audio_cfg_scale(par exemple, 5-7) améliore la synchronisation des lèvres, et l'optimisation des mots repères améliore le naturel des expressions.
  4. Prend-il en charge la génération en temps réel ?
    La version actuelle ne prend en charge que l'inférence hors ligne, la génération en temps réel nécessitant une optimisation plus poussée du modèle et un support matériel.
© déclaration de droits d'auteur
AiPPT

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...