Introdução geral
O JoyGen é uma estrutura inovadora de geração de vídeos de rostos falantes em dois estágios que se concentra em resolver o problema da geração de expressões faciais orientadas por áudio. Desenvolvido por uma equipe da Jingdong Technology, o projeto emprega técnicas avançadas de reconstrução 3D e métodos de extração de recursos de áudio para capturar com precisão os recursos de identidade e os coeficientes de expressão do locutor para sincronização labial e síntese visual de alta qualidade. Ao integrar recursos de áudio e mapas de profundidade facial, ele oferece supervisão abrangente para uma sincronização labial precisa. O projeto não só é compatível com drivers de áudio em chinês e inglês, mas também oferece um pipeline completo de treinamento e inferência, o que o torna uma poderosa ferramenta de código aberto.
Lista de funções
- Geração e edição de expressões faciais em 3D orientadas por áudio
- Tecnologia de áudio com sincronização labial precisa
- Suporta entrada de áudio em chinês e inglês
- Síntese visual para percepção de profundidade em 3D
- Função de retenção da identidade facial
- Recursos de geração e edição de vídeo de alta qualidade
- Treinamento completo e suporte à estrutura de raciocínio
- Modelos pré-treinados permitem uma rápida implementação
- Suporte para treinamento de conjuntos de dados personalizados
- Fornecer ferramentas detalhadas de pré-processamento de dados
Usando a Ajuda
1. configuração ambiental
1.1 Requisitos de infraestrutura
- GPUs compatíveis: V100, A800
- Versão do Python: 3.8.19
- Dependências do sistema: ffmpeg
1.2 Etapas de instalação
- Crie e ative o ambiente conda:
conda create -n joygen python=3.8.19 ffmpeg
conda activate joygen
pip install -r requirements.txt
- Instale a biblioteca Nvdiffrast:
git clone https://github.com/NVlabs/nvdiffrast
cd nvdiffrast
pip install .
- Download do modelo pré-treinado
A partir dos dados fornecidoslink para downloadObtenha o modelo pré-treinado e coloque-o de acordo com a estrutura de diretório especificada no. /pretrained_models/
Catálogo.
2. fluxo de uso
2.1 Processo de raciocínio
Executar o pipeline de inferência completo:
bash scripts/inference_pipeline.sh arquivos de áudio arquivos de vídeo diretório de resultados
Executar o processo de raciocínio em etapas:
- Extração de coeficientes de expressão facial do áudio:
python inference_audio2motion.py --a2m_ckpt . /pretrained_models/audio2motion/240210_real3dportrait_orig/audio2secc_vae --hubert_path . /pretrained_models/audio2motion/hubert --drv_aud . /demo/xinwen_5s.mp3 --seed 0 --result_dir . /results/a2m --exp_file xinwen_5s.npy
- Renderiza mapas de profundidade quadro a quadro usando novos coeficientes de expressão:
python -u inference_edit_expression.py --name face_recon_feat0.2_augment --epoch=20 --use_opengl False --checkpoints_dir . /pretrained_models ---bfm_folder . /pretrained_models/BFM --infer_video_path . /demo/example_5s.mp4 --infer_exp_coeff_path . /results/a2m/xinwen_5s.npy --infer_result_dir . /results/edit_expression
- Geração de animações faciais com base em recursos de áudio e mapas de profundidade facial:
CUDA_VISIBLE_DEIVCES=0 python -u inference_joygen.py --unet_model_path pretrained_models/joygen --vae_model_path pretrained_models/sd-vae --ft-mse --intermediate_dir . /results/edit_expression --audio_path demo/xinwen_5s.mp3 --video_path demo/example_5s.mp4 --enable_pose_driven --result_dir results/talk - --img_size 256 --gpu_id 0
2.2 Processo de treinamento
- Pré-processamento de dados:
python -u preprocess_dataset.py --checkpoints_dir . /pretrained_models --name face_recon_feat0.2_augment --epoch=20 --use_opengl False ---bfm_folder . /pretrained_models/BFM --video_dir . /demo --result_dir . /results/preprocessed_dataset
- Examinar dados pré-processados e gerar listas de treinamento:
python -u preprocess_dataset_extra.py data_dir
- Iniciar o treinamento:
Modifique o arquivo config.yaml e execute-o:
accelerate launch --main_process_port 29501 --config_file config/accelerate_config.yaml train_joygen.py