AniPortrait : image ou mouvement vidéo piloté par l'audio pour générer des vidéos numériques réalistes de la parole humaine
Introduction générale
AniPortrait est un cadre innovant permettant de générer des animations de portraits réalistes à partir de données audio. Développé par Huawei, Zechun Yang et Zhisheng Wang du Tencent Game Know Yourself Lab, AniPortrait est capable de générer des animations de haute qualité à partir de données audio et d'images de référence.Fournir une vidéo pour la reconstitution faciale. En utilisant des techniques avancées de représentation intermédiaire en 3D et d'animation faciale en 2D, le cadre est capable de générer des effets d'animation naturels et fluides pour une variété de scénarios d'application tels que la production cinématographique et télévisuelle, les présentateurs virtuels et les personnes numériques.

Adresse de démonstration : https://huggingface.co/spaces/ZJYang/AniPortrait_official

Liste des fonctions
- Animation pilotée par l'audio : génère une animation de portrait correspondante à partir d'une entrée audio.
- Animation pilotée par vidéo : fournit de la vidéo pour la reproduction faciale, générant des animations faciales réalistes.
- Génération d'animations de haute qualité : utilisez des techniques de représentation intermédiaire en 3D et d'animation faciale en 2D pour générer des effets d'animation de haute qualité.
- Démonstration de l'interface Web : fournir une démonstration en ligne via l'interface Web de Gradio pour une expérience conviviale.
- Formation et inférence de modèles : pour soutenir la formation et l'inférence de modèles, les utilisateurs peuvent personnaliser les données pour la formation et la génération.
Utiliser l'aide
montage
construction de l'environnement
La version recommandée de Python est >= 3.10 et la version de CUDA = 11.7. Suivez les étapes ci-dessous pour créer l'environnement :
pip install -r requirements.txt
télécharger la pondération
Tous les fichiers de poids doivent être placés dans le répertoire./pretrained_weights
. Téléchargez manuellement le fichier de poids comme suit :
- Téléchargez les poids entraînés, y compris les parties suivantes :
denoising_unet.pth
,reference_unet.pth
,pose_guider.pth
,motion_module.pth
etc. - Télécharger les poids pré-entraînés pour le modèle de base et les autres composants :
- StableDiffusion V1.5
- sd-vae-ft-mse
- image_encoder
- wav2vec2-base-960h
La structure du fichier des poids est organisée comme suit :
./pretrained_weights/
|-- image_encoder
| |-- config.json
| `-- pytorch_model.bin
|-- sd-vae-ft-mse
| |-- config.json
| |-- diffusion_pytorch_model.bin
| `-- diffusion_pytorch_model.safetensors
|-- stable-diffusion-v1-5
| |-- feature_extractor
| | `-- preprocessor_config.json
| |-- model_index.json
| |-- unet
| | |-- config.json
| | `-- diffusion_pytorch_model.bin
| `-- v1-inference.yaml
|-- wav2vec2-base-960h
| |-- config.json
| |-- feature_extractor_config.json
| |-- preprocessor_config.json
| |-- pytorch_model.bin
| |-- README.md
| |-- special_tokens_map.json
| |-- tokenizer_config.json
| `-- vocab.json
|-- audio2mesh.pt
|-- audio2pose.pt
|-- denoising_unet.pth
|-- film_net_fp16.pt
|-- motion_module.pth
|-- pose_guider.pth
`-- reference_unet.pth
Gradio Web UI
Essayez notre démo web avec la commande suivante. Nous fournissons également leDémonstration en ligne.
python -m scripts.app
déduction
Notez qu'il est possible de définir la commande-L
pour le nombre souhaité de trames générées, par exemple-L 300
.
Méthodes d'accélérationSi la génération de la vidéo prend trop de temps, vous pouvez télécharger le fichier de la vidéo.film_net_fp16.ptet placé sur./pretrained_weights
Catalogue.
Les commandes CLI suivantes permettent d'exécuter le script de raisonnement :
autodéterminé
python -m scripts.pose2vid --config ./configs/prompts/animation.yaml -W 512 -H 512 -acc
référençableanimation.yaml
pour ajouter votre propre image de référence ou vidéo de pose. Pour convertir la vidéo originale en vidéo de pose (séquence de points clés), vous pouvez exécuter la commande suivante :
python -m scripts.vid2pose --video_path pose_video_path.mp4
réapparition du visage
python -m scripts.vid2vid --config ./configs/prompts/animation_facereenac.yaml -W 512 -H 512 -acc
existentanimation_facereenac.yaml
Ajoutez la vidéo du visage source et l'image de référence au fichier
Pilote audio
python -m scripts.audio2vid --config ./configs/prompts/animation_audio.yaml -W 512 -H 512 -acc
existentanimation_audio.yaml
Ajouter des fichiers audio et des images de référence à la page d'accueil Supprimeranimation_audio.yaml
a fait mouchepose_temp
Vous pouvez activer le modèle audio2pose. Vous pouvez également utiliser cette commande pour générer le contrôle de la pose de la tête pour le modèle audio2pose.pose_temp.npy
: :
python -m scripts.generate_ref_pose --ref_video ./configs/inference/head_pose_temp/pose_ref_video.mp4 --save_path ./configs/inference/head_pose_temp/pose.npy
train
Préparation des données
téléchargementVFHQrépondre en chantantCelebV-HQ. Extraire les points clés de la vidéo originale et écrire le fichier json d'entraînement (voici un exemple de traitement de VFHQ) :
python -m scripts.preprocess_dataset --input_dir VFHQ_PATH --output_dir SAVE_PATH --training_json JSON_PATH
Mettre à jour les lignes du profil de formation :
data:
json_path: JSON_PATH
Première étape
Exécuter la commande :
accelerate launch train_stage_1.py --config ./configs/train/stage1.yaml
Étape 2
Pondération des modules de mouvement pré-entraînésmm_sd_v15_v2.ckpt
(lien de téléchargement) placé sur./pretrained_weights
répertoire. Dans le répertoirestage2.yaml
Le fichier de configuration spécifie les poids d'apprentissage pour l'étape 1, par exemple :
stage1_ckpt_dir: './exp_output/stage1'
stage1_ckpt_step: 30000
Exécuter la commande :
accelerate launch train_stage_2.py --config ./configs/train/stage2.yaml
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...