Tailored news hub
homeVideo

NAVA: Generación Audio-Video Sincronizada y Nativa con Alineación MMDiT

Descubre NAVA, el generador de audio-video de 6.3B parámetros que sintetiza contenido sincronizado de 720p en minutos, con audio de doble canal y control preciso de timbre multi-locutor.

NAVA: Generación Audio-Video Sincronizada y Nativa con Alineación MMDiT
#Código Abierto#Generación de Contenido#TTS

NAVA es un generador conjunto de audio-video de 6.3B parámetros que sintetiza video y audio sincronizados a partir de un único prompt. Utiliza un MMDiT de "Alinear-y-Fusionar" para establecer correspondencia audio-video, permitiendo generación rápida de 720p, audio estéreo de doble canal y control preciso de timbre multi-locutor.

Resumen

NAVA es un generador conjunto de audio y video de 6.3 B de parámetros que sintetiza video y audio sincronizados a partir de un único prompt. Maneja voz de múltiples hablantes con control de timbre de referencia y continuaciones condicionadas por imagen, todo dentro de un único modelo.

En lugar de torres duales alineadas post-hoc o pilas trimodales completamente unificadas, NAVA utiliza una arquitectura Align-then-Fuse MMDiT. Un espacio de alineación dedicado establece primero la correspondencia audio-video, luego el contexto se fusiona mediante cross-attention.

Aspectos destacados:

  • Generación rápida de 720p en 1 min — audio-video sincronizado a 720p en ~1 minuto usando paralelismo de secuencia Ulysses con 8 GPUs.
  • Audio de doble canal — audio estéreo (escena + voz) denoised conjuntamente con video, sin alineación de vocoder post-hoc.
  • Control preciso de múltiples timbres — WAVs de referencia vinculados a tramos de habla ~~... para identidad de voz por hablante.
  • Control de cámara descrito mediante lenguaje — composición de plano, movimiento y ritmo directamente desde el prompt.
  • Multiresolución — relaciones de aspecto horizontal/vertical/cuadrada desde el mismo checkpoint.

Arquitectura

NAVA materializa la Alineación Nativa Audio-Visual como una pila Align-then-Fuse MMDiT construida sobre la columna vertebral Wan2.2.

Capas de alineación jerárquica — 10 bloques double-stream. Video y audio mantienen proyecciones QKV y FFN separadas, pero comparten self-attention conjunta sobre [video_tokens; audio_tokens] concatenados, además de cross-attention dedicada al texto. Esto construye un espacio de alineación donde la correspondencia AV se aprende sin interferencia del contexto semántico.

Capas de fusión unificada — 20 bloques single-stream. Video y audio comparten QKV/FFN; una atención conjunta unificada trata todos los tokens como un solo flujo, con una única ruta de cross-attention al texto. Aquí es donde ocurre el denoising condicionado por contexto.

Hiperparámetros clave: dim=3072, ffn_dim=14336, 24 cabezas de atención, 30 capas. 3D RoPE maneja video (temporal + altura + anchura), mientras que 1D RoPE maneja audio, aplicados conjuntamente dentro de la ruta de joint-attention.

Timbre-in-Context y CFG intermodal

Para escenas con múltiples hablantes, el Acondicionamiento Timbre-in-Context inyecta embeddings de hablante de referencia WAV (ReDimNet, 192‑d) a través de la vía de contexto. Estos embeddings se vinculan a tramos de habla ~~..., permitiendo control de timbre por hablante.

En inferencia, CFG intermodal 3D aplica escalas independientes de classifier-free guidance para video, audio y la dirección de alineación intermodal (video_align_guidance_scale, audio_align_guidance_scale). Esto mantiene la sincronización AV ajustada sin sacrificar la calidad de generación.

Lo que diferencia a NAVA de los modelos AV de código abierto existentes:

Eje de diseñoLíneas base típicasNAVA
Disposición de flujoTorre dual (alineación post-hoc) o completamente unificado trimodalAlign-then-Fuse — primero espacio de alineación, contexto fusionado después
Control de vozSolo subtítulos, sin timbre por hablanteTimbre-in-Context mediante WAVs de referencia
Presupuesto de parámetros10 B – 32 B6.3 B

Evaluación — VerseBench y calidad de voz

NAVA logra la mejor sincronización AV, calidad de video y WER de audio en VerseBench, con el menor presupuesto de parámetros entre los modelos AV conjuntos.

ModeloParámetrosSync-C ↑Sync-D ↓Calidad de video ↑WER ↓
Ovi 1.110 B7.48397.97910.6360.102
MOVA32 B7.28887.8080.6030.126
Davinci15 B7.14877.81580.6000.151
LTX 2.319 B7.24767.69020.5760.106
NAVA6.3 B7.79147.56550.6590.099

En Seed-TTS-eval, NAVA ofrece calidad de voz cercana a sistemas dedicados solo de audio, con 5.81 WER y 62.4 de similitud de hablante — muy por delante de otros modelos AV conjuntos como DreamID-Omni.

Datos rápidos y componentes

ArquitecturaAlign-then-Fuse MMDiT (columna vertebral Wan2.2)
Parámetros6.3 B
Resolución1280×704 (recomendado) · 960×960 compatible
Fotogramas / FPS37 fotogramas @ 24 fps ≈ 6 s · 55–61 fotogramas ≈ 9–10 s
Audio25 tokens latentes/s, ≤ 10 s
MuestreoFlow matching · UniPC scheduler · 50 pasos por defecto
Precisiónbf16
ParalelismoGPU única o paralelismo de secuencia Ulysses (hasta 8 GPUs)

Componentes incluidos: WanAVModel backbone (6.3 B), Wan2.2 Video VAE (causal 3D ConvNet, compresión 16×16×4), LTX Audio VAE + Vocoder (128 canales latentes, decodificador de forma de onda integrado), umt5-xxl Text Encoder, y ReDimNet speaker embedder.

Cómo usar — Inicio rápido

Después de la configuración, ejecuta uno de los scripts proporcionados:

bash scripts/inference.sh          # T2AV general
bash scripts/inference_timbre.sh   # I2AV + control de timbre

Los resultados se guardan en eval_results/.

Configuración inicial:

git clone https://github.com/ernie-research/NAVA && cd NAVA
pip install torch torchvision torchaudio
pip install diffusers transformers accelerate safetensors einops scipy PyYAML tqdm sentencepiece
pip install flash-attn --no-build-isolation
huggingface-cli download  --local-dir .

Lotes personalizados y reescritura de prompts

Escribe un archivo JSONL con un prompt por línea:

{"prompt": "一位男子在海边奔跑,镜头跟随。背景是海浪声和风声。"}
{"prompt": "两人对话~~Hello~~Hi there", "spk_wavs": ["spk1.wav", "spk2.wav"]}
{"prompt": "镜头跟随主体...", "image_path": "/abs/path/first_frame.png"}

Lanzar con torchrun (8 GPUs con Ulysses SP):

SETUPTOOLS_USE_DISTUTILS=stdlib torchrun \
--nnodes=1 --nproc_per_node=8 \
inference_nava.py \
--config configs/baseline_t2av_demo_mmdit_no_split_ltx_control_unipc.yaml \
--ckpt NAVA.ckpt --out_dir ./outputs \
--data_file my_prompts.jsonl \
--width 1280 --height 704 --frames 37 --fps 24 \
--steps 50 --save_sample --gen_turn 1 --use_sp

NAVA está entrenado con descripciones densas en chino. Los prompts cortos o en inglés se benefician de una reescritura antes de la inferencia. Se proporcionan tres vías: un servidor por lotes vLLM (< 2 s/prompt), un script local con transformers y un botón "Rewrite" en Gradio — todos usando Qwen3-4B-Thinking-2507, con los tramos ~~... conservados textualmente.

Artículos Relacionados