Francis-Rings/StableAvatar

[NeurIPS2026] We present StableAvatar, the first end-to-end video diffusion transformer, which synthesizes infinite-length high-quality audio-driven avatar videos without any post-processing, conditioned on a reference image and audio.

StableAvatar – 无限长度音频驱动虚拟人物视频生成

这是什么

  • 一个研究级的视频扩散模型,可从单张参考图片和音频轨道生成说话头像/虚拟人物视频。
  • 与先前的音频驱动生成器不同,StableAvatar 可以生成无限制的视频长度,同时保持主体的身份和唇形同步准确,无需任何后处理(无需换脸或修复步骤)。

关键技术理念

组件 用途
时间步感知音频适配器 在每个扩散时间步调制音频嵌入,以阻止通常会破坏长片段生成的潜在漂移。
音频原生引导 使用模型自身不断演变的音频潜在预测作为动态引导,在推理期间加强唇形同步。
动态加权滑动窗口 重叠连续的生成窗口并混合潜在变量,从而在任意长的视频中实现平滑过渡。
视频扩散转换器(DiT)骨干 一个 1.3B 参数的转换器(Wan2.1),在混合分辨率的说话脸部数据集(512×512、480×832、832×480)上训练。

你可以用它做什么

  • 从任何肖像图片和语音/音频文件生成三种分辨率(512×512、480×832、832×480)的无限虚拟人物片段。
  • 微调模型或训练 LoRA 适配器以实现自定义身份或风格(提供了训练脚本和 LoRA 代码)。
  • 在单个 GPU 上运行推理(使用 CPU 卸载约 3GB 内存),或使用提供的 multiple_gpu_inference.sh 脚本扩展到多 GPU 设置。
  • 将模型集成到 Gradio、ComfyUI 或 Hugging Face Spaces 中,用于交互式演示。

快速入门摘要

  1. 安装 确切的 PyTorch 2.6(或 Blackwell GPU 的 2.7)以及 requirements.txt 中的其他依赖项。
  2. 下载 来自 Hugging Face 仓库(FrancisRing/StableAvatar)的检查点。
  3. 准备 一个音频文件(可选使用 audio-separator[gpu] 进行人声分离)。
  4. 运行 bash inference.sh(或 python app.py 以启动 Gradio UI)。调整 --width、--height、--sample_steps、--overlap_window_length 和引导比例以权衡质量与速度。
  5. 合并 如果需要带声音的 MP4,请使用 ffmpeg 将无声输出视频与原始音频结合。

训练数据布局

  • 仓库期望一个 talking_face_data/ 文件夹,其中包含三个分辨率分支(square、vec、rec)。
  • 每个分支包含 speech、singing 和 dancing 的子文件夹;内部是每个片段的目录,包含 sub_clip.mp4、audio.wav、images/、face_masks/ 和 lip_masks/。
  • 提供了脚本来提取帧、人声轨道、脸部掩码(通过配套的 StableAnimator 仓库)和唇部掩码(mediapipe)。

硬件注意事项

  • 基本推理使用 sequential_cpu_offload 约需 3GB GPU 内存。
  • 为了更快的生成,可以安装 flash_attn。
  • 多 GPU 推理使用 --ulysses_degree × --ring_degree 方案;可以使用 --fsdp_dit 启用 FSDP。

资源

  • 项目页面、论文(arXiv 2508.08248)、Hugging Face 模型中心、演示 Space、YouTube/Bilibili 视频。
  • 代码根据仓库的许可证开源(请参阅 LICENSE)。

谁可能使用它

  • 探索长格式音频驱动视频合成的研究人员。
  • 需要高保真说话头像虚拟人物用于虚拟主持人、游戏或教育的创作者。
  • 开发需要即插即用虚拟人物生成器的 UI 工具(Gradio、ComfyUI)的开发者。

相关

  • 项目
  • 项目
  • 项目
  • 项目