Instructions to use jongking/NAVA with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Wan2.2
How to use jongking/NAVA with Wan2.2:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
NAVA — 原生音视频对齐生成框架
仅用 6.3B 参数即达到最先进的音视频同步效果。
ERNIE 团队 · 百度公司 · arXiv 2026
⭐ 如果本模型对你有帮助,欢迎给我们的 GitHub 仓库 点个 Star! ⭐
TL;DR
NAVA 是一个 6.3B 参数的联合音视频生成模型,可以从一段提示词出发,端到端合成同步的视频与音频——包括带参考音色控制的多说话人语音,以及基于首帧图像的延续生成。
不同于事后对齐的双塔结构、或完全统一的三模态大栈,NAVA 采用 Align-then-Fuse MMDiT:先在专用对齐空间中建立音视频对应关系,再通过 cross-attention 融入上下文(文本、说话人嵌入)。在 Verse-Bench 上,NAVA 在 Sync-C / Sync-D / 视频质量 / 音频 WER 等指标上均刷新 SOTA,同时参数量比开源基线少 2× 到 5×。
亮点
- 720p 1 分钟快速生成 —— 8 卡 Ulysses 序列并行下,约 1 分钟生成 720p 同步音视频。
- 双声道音频 —— 立体声音频(环境音 + 语音)与视频联合去噪,无需事后声码器对齐。
- 精准多音色控制 —— 参考 WAV 绑定到
<S>...<E>语音片段,实现按说话人控制音色身份。- 语言描述的镜头控制 —— 镜头构图、运动、节奏可直接由提示词驱动。
- 多分辨率 —— 同一权重支持横屏 / 竖屏 / 方形比例。
模型详情
关键参数速览
| 架构 | Align-then-Fuse MMDiT(Wan2.2 主干) |
| 参数量 | 6.3B(主干,联合 AV) |
| 模态 | 联合音频 + 视频,文本条件 |
| 分辨率 | 1280×704(推荐)· 同时支持 960×960 |
| 帧数 / 帧率 | 37 帧 @ 24 fps ≈ 6 秒 · 55–61 帧 ≈ 9–10 秒 |
| 音频 | 25 个 latent token / 秒,≤ 10 秒 |
| 采样 | Flow matching · UniPC scheduler · 默认 50 步 |
| 精度 | bf16 |
| 并行 | 单卡 或 Ulysses 序列并行(最多 8 卡) |
| 基础模型 | Wan-AI/Wan2.2-TI2V-5B |
架构
NAVA 把原生音视频对齐实例化为 Align-then-Fuse MMDiT 堆栈:
- 层级对齐层 —— 10 个 double-stream 块。 视频与音频保留各自独立的 QKV 投影与 FFN,但共享一个对
[video_tokens; audio_tokens]拼接序列的联合 self-attention,并各自有专用的 cross-attention 接入文本。这样构建出一个对齐空间,让 AV 对应关系在不被语义上下文干扰的前提下被学到。 - 统一融合层 —— 20 个 single-stream 块。 视频与音频共享 QKV/FFN;统一的联合注意力把所有 token 视作一条序列,仅有一条文本 cross-attention 通路。上下文条件下的去噪在这里发生。
- 主干超参。
dim=3072,ffn_dim=14336,24 个注意力头,30 层(10 double + 20 single),text_len=512,patch 大小(1, 2, 2)。QK 上使用 RMSNorm;带 cross-attention 归一化;ε = 1e-6。 - 位置编码。 视频用 3D RoPE(时间 + 高 + 宽),音频用 1D RoPE,二者在联合注意力路径中联合应用。
- Timbre-in-Context 条件机制。 参考 WAV 的说话人嵌入(ReDimNet,192 维)通过上下文通路注入,并绑定到
<S>...<E>语音片段,使多说话人场景下的逐说话人音色控制成为可能。 - 3D 跨模态 CFG。 视频、音频以及跨模态对齐方向各自拥有独立的无分类器引导尺度(
video_align_guidance_scale、audio_align_guidance_scale),在推理阶段把 AV 同步性卡得很紧。
与现有开源 AV 模型的差异
| 设计维度 | 典型基线 | NAVA |
|---|---|---|
| 数据流布局 | 双塔(事后对齐)或 完全统一三模态 | Align-then-Fuse —— 先对齐空间,再融合上下文 |
| 语音控制 | 仅 caption,无逐说话人音色 | 通过参考 WAV 实现 Timbre-in-Context |
| 参数预算 | 10B – 32B | 6.3B |
与主干一同发布的组件
| 组件 | 说明 | 大小 |
|---|---|---|
| WanAVModel(主干) | MMDiT,联合 AV 注意力 | 6.3B |
| Wan2.2 Video VAE | 因果 3D ConvNet · 16×16×4 时空压缩 · 48 latent 通道 | 2.7 GB |
| LTX Audio VAE + Vocoder | 128 latent 通道 · 25 token/秒 · 内置波形解码器 | 348 MB |
| umt5-xxl 文本编码器 | T5 · 4096 维嵌入 | 11 GB |
| ReDimNet | 说话人嵌入 · 192 维 | ~50 MB |
评测
表 1 —— VerseBench(综合 AV 能力)
NAVA 在 AV 同步(Sync-C / Sync-D)、视频质量与音频 WER 上均取得最佳,同时参数量最小。
| 模型 | 参数量 | 分辨率 | Sync-C ↑ | Sync-D ↓ | IB ↑ | 视频质量 ↑ | WER ↓ | PQ ↑ | FD ↓ |
|---|---|---|---|---|---|---|---|---|---|
| Ovi 1.1 | 10B | 720p | 7.4839 | 7.9791 | 0.199 | 0.636 | 0.102 | 5.8432 | 0.9418 |
| MOVA | A18B (32B) | 720p | 7.2888 | 7.808 | 0.269 | 0.603 | 0.126 | 7.2331 | 0.9222 |
| Davinci | 15B | 540p | 7.1487 | 7.8158 | 0.269 | 0.600 | 0.151 | 5.9559 | 0.9307 |
| LTX 2.3 | 19B | 512p | 7.2476 | 7.6902 | 0.337 | 0.576 | 0.106 | 6.9459 | 0.8287 |
| NAVA(本工作) | 6.3B | 720p | 7.7914 | 7.5655 | 0.313 | 0.659 | 0.099 | 6.8609 | 0.8328 |
↑ 越高越好 · ↓ 越低越好 · 加粗 = 最佳 · 下划线 = 次佳。
表 2 —— Seed-TTS-eval(语音质量)
在联合 AV 模型中,NAVA 的语音质量已接近专用纯音频系统。纯音频行仅作参考,不可直接比较。
| 类别 | 模型 | WER ↓ | 说话人相似度 ↑ |
|---|---|---|---|
| 纯音频(参考) | CosyVoice | 4.29 | 60.9 |
| 纯音频(参考) | Qwen2.5-Omni | 2.72 | 63.2 |
| 联合音视频 | DreamID-Omni | 33.44 | 34.1 |
| 联合音视频 | NAVA(本工作) | 5.81 | 62.4 |
使用方法
一行命令。 完成第 §1 步环境准备后:
bash scripts/inference.sh # 通用 T2AV bash scripts/inference_timbre.sh # I2AV + 音色控制输出落到
eval_results/下。
1 · 环境准备(一次性)
git clone https://github.com/ernie-research/NAVA && cd NAVA
# Python 依赖
pip install torch torchvision torchaudio
pip install diffusers transformers accelerate safetensors einops scipy PyYAML tqdm sentencepiece
pip install flash-attn --no-build-isolation
# 一次性下载所有权重 —— 主 checkpoint + Wan2.2 VAE + T5 + LTX 音频 VAE
huggingface-cli download <NAVA-repo-id> --local-dir .
预期目录结构
NAVA/
├── NAVA.ckpt # 主 checkpoint(24 GB)
├── Wan2.2-TI2V-5B/
│ ├── Wan2.2_VAE.pth # 2.7 GB
│ ├── models_t5_umt5-xxl-enc-bf16.pth # 11 GB
│ └── google/umt5-xxl/{spiece.model, tokenizer.json}
├── params/
│ └── LTX2/
│ ├── ltx-2.3-22b-dev_audio_vae.safetensors # 348 MB
│ └── LICENSE # LTX-2 社区许可证
└── configs/ # 推理 YAML
LTX 音频 VAE 的 Python 代码已 vendor 到 nava_src/vendor/ltx_core/(见其 NOTICE.md),无需再单独 clone LTX-Video 仓库。ReDimNet 在首次运行时通过 torch.hub 下载。
2 · 一键推理(推荐,8 卡 SP)
仓库提供了两个端到端脚本,会内联构造 JSONL 并启动 SP=8 推理:
# 通用 T2AV(纯文本)
bash scripts/inference.sh
# I2AV + 音色控制(首帧图 + 参考音频)
bash scripts/inference_timbre.sh
通过环境变量覆盖默认值:
CKPT=/path/to/NAVA.ckpt OUT_DIR=eval_results/run1 bash scripts/inference.sh
TIMBRE_SCALE=3.0 SPK_WAV=/path/to/spk.wav bash scripts/inference_timbre.sh
3 · 自定义批次 —— 写自己的 JSONL
每行一条提示词:
{"prompt": "一位男子在海边奔跑,镜头跟随。背景是海浪声和风声。"}
{"prompt": "两人对话<S>Hello<E><S>Hi there<E>", "spk_wavs": ["spk1.wav", "spk2.wav"]}
{"prompt": "镜头跟随主体...", "image_path": "/abs/path/first_frame.png"}
| 字段 | 必填 | 说明 |
|---|---|---|
prompt |
是 | 文本 caption(也兼容旧字段名 text) |
image_path |
否 | 首帧图绝对路径 —— 自动为该样本启用 I2V |
spk_wavs |
否 | 说话人参考 WAV 的绝对路径列表(最多 2 条) |
然后启动:
SETUPTOOLS_USE_DISTUTILS=stdlib torchrun \
--nnodes=1 --nproc_per_node=8 \
--master_addr=127.0.0.1 --master_port=29507 \
inference_nava.py \
--config configs/baseline_t2av_demo_mmdit_no_split_ltx_control_unipc.yaml \
--ckpt NAVA.ckpt \
--out_dir ./outputs \
--data_format json --data_file my_prompts.jsonl \
--width 1280 --height 704 --frames 37 --fps 24 \
--steps 50 --save_sample --gen_turn 1 --use_sp
输出落到 outputs/{save_path}-{gen_turn}_av.mp4。对带音色控制的样本,还需加上 --timbre_cfg --timbre_align_guidance_scale 3.0。
模式速查
| 目标 | JSONL 字段 | 额外 flag |
|---|---|---|
| 文本 → AV | prompt |
— |
| 图像 → AV | prompt + image_path |
(自动检测) |
| 音色控制语音 | prompt + spk_wavs |
--timbre_cfg --timbre_align_guidance_scale 3.0 |
| 9 秒视频 | 任意 | --frames 55 |
| 单卡(更慢) | 任意 | 去掉 --use_sp |
4 · 提示词改写(短输入 / 英文输入推荐)
NAVA 在中文密集 caption 上训练,短提示或英文提示在推理前先改写一遍会显著受益。我们提供三种通路,共用同一套 system prompt 与采样 profile(保证输出风格一致),且 <S>...<E> 语音片段会被原样保留。
| 通路 | 后端 | 速度 | 适用场景 |
|---|---|---|---|
vLLM 批量服务(pe_src/) |
Qwen3-4B-Thinking-2507 由 vLLM 提供,异步 HTTP | < 2 秒 / 条 | 离线批量 |
本地 transformers,单条(gradio_demo/rewrite_single.py) |
同模型,进程内 | 40–80 秒 / 条 | 单次 CLI |
| Gradio "Rewrite" 按钮 | 同上,托管在 Gradio 中 | 40–80 秒 / 条 | 交互式 UI |
# 批量路径:先起 vLLM 服务,再改写一个 prompt 列表
bash pe_src/start_server.sh --gpu 0 --low-footprint
python pe_src/rewrite.py -i prompts.txt -o prompts_rewritten.txt
5 · Gradio 网页 UI
交互式 demo,支持点击改写(Qwen3-4B)、首帧图上传、参考 WAV 上传:
bash gradio_demo/start_gradio.sh \
--config configs/baseline_t2av_demo_mmdit_no_split_ltx_control_unipc.yaml \
--ckpt NAVA.ckpt \
--rewrite_model pe_src/Qwen3-4B-Thinking-2507 \
--port 8000 --nproc 8
Debug 模式(不加载模型,仅 UI)
python gradio_demo/gradio_server.py --debug --port 8000
偏见、安全与滥用
NAVA 可基于参考图(image_path)和参考音频(spk_wavs)合成视频与语音。未经本人同意用其再现真实人物的相貌或声音,是被许可证禁止的,并且在你所在司法辖区内可能也违法。我们建议:
- 仅使用已获得授权的参考素材。
- 将生成内容明确标注为合成。
- 在再分发前应用溯源 / 水印机制。
引用
@article{nava2026,
title = {NAVA: Native Audio-Visual Alignment for Joint Audio-Video Generation},
author = {ERNIE Team},
journal = {arXiv preprint},
year = {2026},
}
致谢
NAVA 站在优秀的上游工作之上:Wan2.2-TI2V-5B(视频主干与 VAE)、LTX 2.3(音频 VAE + 内置声码器)、umt5-xxl(文本编码器)、ReDimNet(说话人嵌入)。同时感谢开源 AV 生成社区 —— Ovi、MOVA、Davinci、LTX —— 公开了强力基线,让公平 benchmark 成为可能。
许可证与联系方式
以 Apache-2.0 协议发布。研究 / 商业合作请联系百度公司 ERNIE 团队。