Aprendizagem pessoal com IA
e orientação prática
豆包Marscode1

AniPortrait: imagem ou movimento de vídeo orientado por áudio para gerar vídeo digital realista de fala humana

Introdução geral

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.

AniPortrait:音频驱动生成逼真的数字人说话视频-1

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


 

AniPortrait:音频驱动图片或视频动作生成逼真的数字人讲话视频-1

 

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:

  1. Faça o download dos pesos treinados, incluindo as seguintes partes:denoising_unet.pthereference_unet.pthepose_guider.pthemotion_module.pthetc.
  2. 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
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " AniPortrait: imagem ou movimento de vídeo orientado por áudio para gerar vídeo digital realista de fala humana
pt_BRPortuguês do Brasil