Tailored news hub
homeVideo

Come NAVA genera video e audio sincronizzati da un singolo prompt

Scopri Align-then-Fuse MMDiT di Baidu, un generatore audio-video da 6.3B parametri per contenuti multimodali di alta qualità.

Come NAVA genera video e audio sincronizzati da un singolo prompt
#Generazione Contenuti#Open Source#TTS

NAVA è un generatore audio-video con 6.3B parametri che sintetizza video e audio sincronizzati da un singolo prompt, inclusi discorsi multilingue con controllo del timbro di riferimento. Utilizza un'architettura Align-then-Fuse MMDiT per una corrispondenza audio-video nativa.

TL;DR

NAVA è un generatore audio-video congiunto da 6,3 B parametri che sintetizza video e audio sincronizzati a partire da un singolo prompt. Gestisce parlato multi-parlante con controllo del timbro di riferimento e continuazioni condizionate da immagini, il tutto in un unico modello.

Invece di architetture a doppia torre allineate a posteriori o stack tri-modali completamente unificati, NAVA utilizza un'architettura Align-then-Fuse MMDiT. Uno spazio di allineamento dedicato stabilisce prima la corrispondenza audio-video, quindi il contesto viene fuso tramite cross-attention.

Punti salienti:

  • Generazione rapida 720p in 1 minuto — audio-video sincronizzati a 720p in circa 1 minuto utilizzando il parallelismo di sequenza Ulysses su 8 GPU.
  • Audio a doppio canale — audio stereo (scena + parlato) denoised congiuntamente al video, senza allineamento post-hoc del vocoder.
  • Controllo multi-timbrico preciso — WAV di riferimento associati a span di parlato ~~... per l'identità vocale di ciascun parlante.
  • Controllo della telecamera descritto a linguaggio — composizione dell'inquadratura, movimento e ritmo direttamente dal prompt.
  • Multi-risoluzione — rapporti d'aspetto orizzontale/verticale/quadrato dallo stesso checkpoint.

Architettura

NAVA concretizza l'Allineamento Nativo Audio-Visivo come uno stack Align-then-Fuse MMDiT costruito sulla backbone Wan2.2.

Layer di Allineamento Gerarchico — 10 blocchi double-stream. Video e audio mantengono proiezioni QKV e FFN separate ma condividono l'auto-attenzione congiunta su [video_tokens; audio_tokens] concatenati, più una cross-attention dedicata al testo. Questo costruisce uno spazio di allineamento in cui la corrispondenza AV viene appresa senza interferenze del contesto semantico.

Layer di Fusione Unificata — 20 blocchi single-stream. Video e audio condividono QKV/FFN; un'attenzione congiunta unificata tratta tutti i token come un unico flusso, con un unico percorso di cross-attention al testo. Qui avviene il denoising condizionato dal contesto.

Iperparametri chiave: dim=3072, ffn_dim=14336, 24 teste di attenzione, 30 layer. 3D RoPE gestisce il video (temporale + altezza + larghezza), mentre 1D RoPE gestisce l'audio, applicati congiuntamente nel percorso di attenzione congiunta.

Timbre-in-Context e CFG Cross-Modale

Per scene multi-parlante, il Timbre-in-Context Conditioning inietta gli embedding del parlante da WAV di riferimento (ReDimNet, 192-d) attraverso il percorso di contesto. Questi embedding sono associati a span di parlato ~~..., consentendo il controllo del timbro per ciascun parlante.

In fase di inferenza, il CFG cross-modale 3D applica scale di guida classifier-free indipendenti per video, audio e la direzione di allineamento cross-modale (video_align_guidance_scale, audio_align_guidance_scale). Questo mantiene stretta la sincronizzazione AV senza sacrificare la qualità della generazione.

Cosa distingue NAVA dai modelli AV open-source esistenti:

Asse di progettazioneBaseline tipicheNAVA
Layout del flussoDoppia torre (allineamento post-hoc) o tri-modale completamente unificatoAlign-then-Fuse — prima spazio di allineamento, poi contesto fuso
Controllo del parlatoSolo didascalia, nessun timbro per parlanteTimbre-in-Context tramite WAV di riferimento
Budget parametri10 B – 32 B6.3 B

Valutazione — VerseBench e Qualità del Parlato

NAVA ottiene la migliore sincronizzazione AV, qualità video e WER audio su VerseBench, con il budget di parametri più ridotto tra i modelli AV congiunti.

ModelParamsSync-C ↑Sync-D ↓Video Quality ↑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

Su Seed-TTS-eval, NAVA offre una qualità del parlato vicina ai sistemi dedicati solo audio, con 5.81 WER e 62.4 di similarità del parlante — molto avanti rispetto ad altri modelli AV congiunti come DreamID-Omni.

Fatti Rapidi e Componenti

ArchitectureAlign-then-Fuse MMDiT (backbone Wan2.2)
Parameters6.3 B
Resolution1280×704 (consigliato) · 960×960 supportato
Frames / FPS37 frame @ 24 fps ≈ 6 s · 55–61 frame ≈ 9–10 s
Audio25 token latenti/sec, ≤ 10 s
SamplingFlow matching · UniPC scheduler · 50 passi predefiniti
Precisionbf16
ParallelismGPU singola o parallelismo di sequenza Ulysses (fino a 8 GPU)

Componenti forniti: backbone WanAVModel (6,3 B), Wan2.2 Video VAE (ConvNet 3D causale, compressione 16×16×4), LTX Audio VAE + Vocoder (128 canali latenti, decoder di forma d'onda integrato), umt5-xxl Text Encoder e ReDimNet speaker embedder.

Come Usare — Avvio Rapido

Dopo la configurazione, esegui uno degli script forniti:

bash scripts/inference.sh          # T2AV Generale
bash scripts/inference_timbre.sh   # I2AV + controllo timbro

I risultati si trovano in eval_results/.

Configurazione iniziale:

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 .

Batch Personalizzati e Riscrittura dei Prompt

Scrivi un file JSONL con un prompt per riga:

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

Avvia con torchrun (8 GPU 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 è addestrato su didascalie dense in cinese. I prompt brevi o in inglese beneficiano di una riscrittura prima dell'inferenza. Sono forniti tre percorsi: un server batch vLLM (< 2 s/prompt), uno script transformers locale e un pulsante "Rewrite" in Gradio — tutti utilizzano Qwen3-4B-Thinking-2507, con gli intervalli ~~... preservati testualmente.

Articoli Correlati