OmniAvatar/OmniAvatar-14B

OmniAvatar
Texto a video

OmniAvatar-14B es un modelo de generación de video de avatares impulsado por audio. A partir de una imagen inicial, una pista de audio y un prompt textual, genera videos de avatar a 480p con sincronización labial y animación corporal adaptativa. Está basado en Wan2.1-T2V-14B y publica pesos LoRA junto con pesos de condicionamiento de audio; usa Wav2Vec como codificador de audio.

Como usar

Instalación:

git clone [email protected]:Omni-Avatar/OmniAvatar.git
cd OmniAvatar
pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt
# Optional to install flash_attn to accelerate attention computation
pip install flash_attn

Descarga de modelos:

mkdir pretrained_models
pip install "huggingface_hub[cli]"
huggingface-cli download Wan-AI/Wan2.1-T2V-14B --local-dir ./pretrained_models/Wan2.1-T2V-14B
huggingface-cli download facebook/wav2vec2-base-960h --local-dir ./pretrained_models/wav2vec2-base-960h
huggingface-cli download OmniAvatar/OmniAvatar-14B --local-dir ./pretrained_models/OmniAvatar-14B

Inferencia básica, actualmente solo 480p:

torchrun --standalone --nproc_per_node=1 scripts/inference.py --config configs/inference.yaml --input_file examples/infer_samples.txt

El archivo de entrada usa el formato [prompt]@@[img_path]@@[audio_path]. El rango recomendado para prompt CFG y audio CFG es 4-6. Más audio cfg mejora la consistencia de sincronización labial. Para acelerar, se recomienda num_steps entre 20 y 50; más pasos suelen mejorar calidad.

Ejemplo multi-GPU con FSDP y TeaCache:

torchrun --standalone --nproc_per_node=8 scripts/inference.py --config configs/inference.yaml --input_file examples/infer_samples.txt --hp=sp_size=8,max_tokens=30000,guidance_scale=4.5,overlap_frame=13,num_steps=25,use_fsdp=True,tea_cache_l1_thresh=0.14,num_persistent_param_in_dit=7000000000

Funcionalidades

Generación de video de avatar guiada por audio y texto.
Sincronización labial controlable aumentando el audio CFG.
Control separado de la guía del prompt y de la guía de audio mediante parámetros como `guidance_scale` y `audio_scale`.
Soporte de inferencia multi-GPU configurando `sp_size` según el número de GPUs.
Opciones para reducir memoria de GPU con `use_fsdp=True` y `num_persistent_param_in_dit`.
Aceleración opcional con `flash_attn` y TeaCache.
Entrenado para videos 480p con hasta 30000 tokens, con posibilidad de probar más tokens en inferencia.
Licencia Apache 2.0.

Casos de uso

Crear videos de avatares parlantes a partir de una imagen y una voz.
Generar personajes animados con comportamiento controlado por prompt textual.
Prototipar clips de comunicación, asistentes visuales o presentadores virtuales sincronizados con audio.
Investigar generación de video audio-condicionada con animación corporal y sincronización labial.