AniPortrait: movimiento de imagen o vídeo basado en audio para generar vídeo digital realista de habla humana

Introducción general

AniPortrait es un marco innovador para generar animaciones realistas de retratos a partir de audio. Desarrollado por Huawei, Zechun Yang y Zhisheng Wang de Tencent Game Know Yourself Lab, AniPortrait es capaz de generar animaciones de alta calidad a partir de audio e imágenes de retrato de referencia, e incluso puede serProporcionar vídeo para la recreación facial. Mediante el uso de técnicas avanzadas de representación intermedia en 3D y animación facial en 2D, el marco es capaz de generar efectos de animación naturales y suaves para diversos escenarios de aplicación, como la producción de cine y televisión, los presentadores virtuales y las personas digitales.

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

Dirección de demostración: https://huggingface.co/spaces/ZJYang/AniPortrait_official

 

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

 

Lista de funciones

  • Animación basada en audio: Genera la animación de retrato correspondiente a partir de la entrada de audio.
  • Animación por vídeo: proporciona vídeo para la reproducción facial, generando animaciones faciales realistas.
  • Generación de animación de alta calidad: utilice técnicas de representación intermedia 3D y animación facial 2D para generar efectos de animación de alta calidad.
  • Demostración Web UI: Proporcione una demostración en línea a través de Gradio Web UI para una experiencia fácil de usar.
  • Entrenamiento e inferencia de modelos: para apoyar el entrenamiento y la inferencia de modelos, los usuarios pueden personalizar los datos para el entrenamiento y la generación.

 

Utilizar la ayuda

montaje

medio ambiente edificio

Se recomienda una versión de Python >= 3.10 y una versión de CUDA = 11.7. Siga los pasos que se indican a continuación para crear el entorno:

pip install -r requirements.txt

descargar ponderación

Todos los archivos de pesos deben colocarse en la carpeta./pretrained_weightsdirectorio. Descargue manualmente el archivo de pesos de la siguiente manera:

  1. Descarga los pesos entrenados, incluyendo las siguientes partes:denoising_unet.pthyreference_unet.pthypose_guider.pthymotion_module.pthetc.
  2. Descargue los pesos preentrenados para el modelo base y otros componentes:
    • StableDiffusion V1.5
    • sd-vae-ft-mse
    • codificador_de_imágenes
    • wav2vec2-base-960h

La estructura del archivo de pesos está organizada de la siguiente manera:

./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

Pruebe nuestra web demo con el siguiente comando. También proporcionamos elDemostración en línea.

python -m scripts.app

inferencia

Tenga en cuenta que es posible configurar el comando-Lpara el número deseado de fotogramas generados, por ejemplo-L 300.

Métodos de aceleraciónSi tarda demasiado en generarse el vídeo, puede descargar el archivofilm_net_fp16.pty se coloca en./pretrained_weightsCatálogo.

Los siguientes son los comandos CLI para ejecutar el script de razonamiento:

autoconducido

python -m scripts.pose2vid --config ./configs/prompts/animation.yaml -W 512 -H 512 -acc

referenciableanimation.yamlpara añadir su propia imagen de referencia o vídeo de pose. Para convertir el vídeo original en un vídeo de pose (secuencia de puntos clave), puede ejecutar el siguiente comando:

python -m scripts.vid2pose --video_path pose_video_path.mp4

reaparición facial

python -m scripts.vid2vid --config ./configs/prompts/animation_facereenac.yaml -W 512 -H 512 -acc

existeanimation_facereenac.yamlAñade el vídeo de la cara de origen y la imagen de referencia al

Controlador de audio

python -m scripts.audio2vid --config ./configs/prompts/animation_audio.yaml -W 512 -H 512 -acc

existeanimation_audio.yamlAñadir audio e imágenes de referencia Borraranimation_audio.yamlha dado en el clavopose_tempPuede activar el modelo audio2pose. También puede utilizar este comando para generar el control de pose de la cabeza para el 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

tren

Preparación de datos

descargandoVFHQresponder cantandoCelebV-HQ. Extrae los puntos clave del vídeo original y escribe el archivo json de entrenamiento (aquí tienes un ejemplo de procesamiento de VFHQ):

python -m scripts.preprocess_dataset --input_dir VFHQ_PATH --output_dir SAVE_PATH --training_json JSON_PATH

Actualizar filas en el perfil de formación:

data:
json_path: JSON_PATH

Fase 1

Ejecutar comando:

accelerate launch train_stage_1.py --config ./configs/train/stage1.yaml

Fase 2

Ponderación de los módulos de movimiento preentrenadosmm_sd_v15_v2.ckpt(enlace de descarga) colocado en./pretrained_weightsdirectorio. En el directoriostage2.yamlEl archivo de configuración especifica los pesos de entrenamiento para la etapa 1, por ejemplo:

stage1_ckpt_dir: './exp_output/stage1'
stage1_ckpt_step: 30000

Ejecutar comando:

accelerate launch train_stage_2.py --config ./configs/train/stage2.yaml
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...