O AniPortrait é uma estrutura inovadora para a geração de animações de retratos realistas acionadas por áudio. Desenvolvido pela Huawei, Yang Zejun e Wang Zhisheng do Tencent Game Know Yourself Lab, o AniPortrait é capaz de gerar animações de alta qualidade a partir de áudio e imagens de retrato de referência, e até mesmoFornecer vídeo para reencenação facial. Usando técnicas avançadas de representação intermediária em 3D e animação facial em 2D, a estrutura é capaz de gerar efeitos de animação naturais e suaves para diversos cenários de aplicação, como produção de filmes e televisão, âncoras virtuais e pessoas digitais.

Endereço de demonstração: https://huggingface.co/spaces/ZJYang/AniPortrait_official

Lista de funções
- Animação orientada por áudio: gere a animação de retrato correspondente a partir da entrada de áudio.
- Animação orientada por vídeo: fornece vídeo para reprodução facial, gerando animações faciais realistas.
- Geração de animação de alta qualidade: use representação intermediária em 3D e técnicas de animação facial em 2D para gerar efeitos de animação de alta qualidade.
- Demonstração da interface do usuário na Web: forneça uma demonstração on-line por meio da interface do usuário na Web do Gradio para uma experiência amigável.
- Treinamento e inferência de modelos: suporte ao treinamento e à inferência de modelos, os usuários podem personalizar os dados para treinamento e geração.
Usando a Ajuda
montagem
construção de ambientes
Versão recomendada do Python >= 3.10 e versão do CUDA = 11.7. Siga as etapas abaixo para criar o ambiente:
pip install -r requirements.txt
download de peso
Todos os arquivos de peso devem ser colocados no diretório./pretrained_weightsdiretório. Faça o download manual do arquivo de pesos da seguinte forma:
- Faça o download dos pesos treinados, incluindo as seguintes partes:denoising_unet.pthereference_unet.pthepose_guider.pthemotion_module.pthetc.
- Faça o download de pesos pré-treinados para o modelo básico e outros componentes:
- StableDiffusion V1.5
- sd-vae-ft-mse
- codificador_de_imagem
- wav2vec2-base-960h
 
A estrutura do arquivo de pesos é organizada da seguinte forma:
./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
IU da Web do Gradio
Experimente nossa demonstração na Web com o seguinte comando. Também fornecemos oDemonstração on-line.
python -m scripts.app
inferência
Observe que é possível definir o comando-Lpara o número desejado de quadros gerados, por exemplo-L 300.
Métodos de aceleraçãoSe demorar muito para gerar o vídeo, você poderá fazer o download do arquivofilm_net_fp16.pte colocado em./pretrained_weightsCatálogo.
Veja a seguir os comandos da CLI para executar o script de raciocínio:
autodirigido
python -m scripts.pose2vid --config ./configs/prompts/animation.yaml -W 512 -H 512 -acc
referenciávelanimation.yamlpara adicionar sua própria imagem de referência ou vídeo de pose. Para converter o vídeo original em um vídeo de pose (sequência de pontos-chave), você pode executar o seguinte comando:
python -m scripts.vid2pose --video_path pose_video_path.mp4
reaparecimento facial
python -m scripts.vid2vid --config ./configs/prompts/animation_facereenac.yaml -W 512 -H 512 -acc
existiranimation_facereenac.yamlAdicione o vídeo da face de origem e a imagem de referência ao
Driver de áudio
python -m scripts.audio2vid --config ./configs/prompts/animation_audio.yaml -W 512 -H 512 -acc
existiranimation_audio.yamlAdicionar áudio e imagens de referência à seção Excluiranimation_audio.yamlacertou em cheiopose_tempVocê pode ativar o modelo audio2pose. Você também pode usar esse comando para gerar o controle de pose da cabeça para o modelopose_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
trem
Preparação de dados
downloadVFHQresponder cantandoCelebV-HQ. Extraia os pontos-chave do vídeo original e grave o arquivo json de treinamento (aqui está um exemplo de processamento do VFHQ):
python -m scripts.preprocess_dataset --input_dir VFHQ_PATH --output_dir SAVE_PATH --training_json JSON_PATH
Atualizar linhas no perfil de treinamento:
data:
json_path: JSON_PATH
Estágio 1
Executar comando:
accelerate launch train_stage_1.py --config ./configs/train/stage1.yaml
Estágio 2
Ponderação dos módulos de movimento pré-treinadosmm_sd_v15_v2.ckpt(link para download) colocado em./pretrained_weightsdiretório. No diretóriostage2.yamlO arquivo de configuração especifica os pesos de treinamento para o estágio 1, por exemplo:
stage1_ckpt_dir: './exp_output/stage1'
stage1_ckpt_step: 30000
Executar comando:
accelerate launch train_stage_2.py --config ./configs/train/stage2.yaml






























 Português do Brasil
Português do Brasil				 简体中文
简体中文					           English
English					           日本語
日本語					           Deutsch
Deutsch