OmniAvatar-14B

12ahmad
Texto a video

Modelo de 14.000 millones de parámetros para generar vídeos de avatares a partir de una imagen, una pista de audio y una descripción textual. Utiliza Wan2.1-T2V-14B como modelo base, Wav2Vec2 como codificador de audio y pesos LoRA para producir sincronización labial y animaciones corporales adaptadas al habla. Actualmente genera vídeo a 480p.

Como usar

Instala el repositorio y sus dependencias:

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
# Opcional: acelera el cálculo de atención
pip install flash_attn

Descarga el modelo base, el codificador de audio y los pesos de OmniAvatar:

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

Ejecuta una inferencia a 480p:

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

Cada entrada de examples/infer_samples.txt debe seguir el formato [prompt]@@[img_path]@@[audio_path]. Se recomienda usar valores de CFG entre 4 y 6 y entre 20 y 50 pasos. Ejemplo optimizado para ocho GPU:

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 vídeo de avatar guiada por audio, imagen y texto.
Sincronización labial cuya consistencia puede ajustarse mediante la escala de audio.
Control del comportamiento del personaje y del fondo mediante instrucciones textuales.
Animación corporal adaptativa coordinada con el audio.
Inferencia con una o varias GPU mediante paralelismo de secuencia.
Compatibilidad con TeaCache para acelerar la generación.
Uso opcional de FSDP y persistencia parcial de parámetros para reducir la memoria de GPU.
Funciona con aproximadamente 8 GB de VRAM en su configuración de menor memoria; la configuración sin restricciones requiere alrededor de 36 GB.

Casos de uso

Crear avatares parlantes a partir de retratos y grabaciones de voz.
Producir presentadores virtuales para vídeos educativos o explicativos.
Generar personajes digitales para narraciones y contenido audiovisual.
Animar retratos con gestos corporales y sincronización labial controlados por texto.
Prototipar asistentes, anfitriones o portavoces virtuales.