JoyVASA

GitHub
861 85 较难 1 次阅读 3天前MIT音频图像视频
AI 解读 由 AI 自动生成,仅供参考

JoyVASA 是一款基于扩散模型的开源工具,专为生成高质量的真人及动物面部动画而设计。只需提供一张静态参考图片和一段音频,它就能让画面中的人物或动物随着声音自然说话,展现出逼真的表情变化和头部动作。

针对现有音频驱动动画技术存在的训练效率低、推理速度慢以及长视频生成时画面不连贯等痛点,JoyVASA 提出了一种创新的“解耦”方案。它将静态的面部特征与动态的表情动作分离处理:先通过扩散模型根据音频生成独立的运动序列,再将其融合到任意静态形象上。这种架构不仅显著提升了视频的流畅度和时长上限,还打破了身份限制,使其能无缝应用于动物面孔的动画生成。此外,该模型在混合了中英文数据的数据集上训练,天然支持多语言场景。

JoyVASA 非常适合 AI 研究人员、开发者以及数字内容创作者使用。研究人员可借鉴其独特的解耦表征框架和身份无关的运动生成机制;开发者和设计师则能利用它快速制作多语言虚拟人视频或赋予动物角色生命力。目前项目已开放代码、模型权重及技术论文,便于社区进一步探索与实时化优化。

使用场景

某在线教育团队正致力于将静态的绘本插图转化为生动的双语教学视频,以增强儿童的沉浸式学习体验。

没有 JoyVASA 时

  • 角色受限严重:传统音频驱动动画工具仅支持人类面部,无法直接让绘本中的狐狸、小熊等动物角色开口说话,需额外寻找替代方案或放弃动画化。
  • 长视频连贯性差:生成超过几秒的视频时,画面容易出现闪烁、表情僵硬或口型不同步,导致教学内容断裂,后期修复耗时耗力。
  • 多语言适配困难:模型多在单一语言数据集上训练,处理中英混合的教学音频时,唇形同步率大幅下降,影响发音示范的准确性。
  • 制作流程繁琐:为了解决上述问题,团队往往需要结合多个工具分步处理(如先做人脸绑定再迁移),极大地拉长了内容生产周期。

使用 JoyVASA 后

  • 跨物种无缝动画:利用其解耦的面部表示框架,团队可直接上传动物插画,JoyVASA 能精准生成与人类无异的面部动态,让动物角色自然演绎课程。
  • 长片段稳定生成:得益于扩散 Transformer 生成的独立运动序列,JoyVASA 能输出长时间且帧间连续流畅的视频,彻底消除了画面闪烁和动作卡顿。
  • 原生多语言支持:基于中英文混合数据训练的特性,JoyVASA 在处理双语教学音频时,唇形同步依然精准,完美匹配复杂的发音口型。
  • 端到端高效产出:只需一张参考图和一段音频,JoyVASA 即可一键生成高质量动画,将原本数小时的制作流程压缩至分钟级,大幅提升课件迭代速度。

JoyVASA 通过解耦身份与动作的创新架构,打破了角色类型与视频长度的限制,让静态插图到多语言生动视频的转化变得简单而高效。

运行环境要求

操作系统
  • Linux
  • Windows
GPU
  • 必需 NVIDIA GPU
  • Linux 测试环境:A100
  • Windows 测试环境:RTX 4060 Laptop (8GB VRAM)
  • 需支持 CUDA 12.1
内存

未说明

依赖
notes1. 必须安装 ffmpeg。2. 若需运行动物图像动画,需额外编译安装 MultiScaleDeformableAttention 组件。3. 首次运行前需下载多个模型权重(包括 JoyVASA、LivePortrait、音频编码器及 InsightFace 模型),建议使用 git-lfs 和 huggingface-cli 下载至 pretrained_weights 目录。4. Windows 下下载的中文字音模型文件夹需重命名为 'chinese-hubert-base'。5. 推理时需注意动画模式(human/animal)与参考图片类型匹配。
python3.10
torch
transformers
diffusers
insightface
onnxruntime
ffmpeg
gradio
wav2vec2
hubert
JoyVASA hero image

快速开始

JoyVASA:基于扩散模型的音频驱动面部动态与头部运动生成,实现人像与动物图像动画

Xuyang Cao1*  Guoxin Wang12*Sheng Shi1*Jun Zhao1  Yang Yao1
Jintao Fei1  Minyu Gao1
1JD Health International Inc.  2浙江大学


📖 引言

基于扩散模型的音频驱动人像动画近年来取得了显著进展,视频质量和口型同步精度大幅提升。然而,随着模型复杂度的增加,训练与推理效率降低,同时视频长度和帧间连续性也受到限制。本文提出了一种名为JoyVASA的扩散模型方法,用于在音频驱动的人脸动画中生成面部动态与头部运动。具体而言,在第一阶段,我们引入了一个解耦的面部表征框架,将动态面部表情与静态3D面部表征分离。这种解耦使得系统能够通过任意静态3D面部表征与动态运动序列的组合来生成更长的视频。随后,在第二阶段,我们训练了一个扩散Transformer模型,使其能够直接从音频线索中生成与角色身份无关的运动序列。最后,第一阶段训练好的生成器会以3D面部表征和生成的运动序列作为输入,渲染出高质量的动画。借助解耦的面部表征和与身份无关的运动生成过程,JoyVASA不仅适用于人类肖像,还能无缝地为动物面部生成动画。该模型使用混合数据集进行训练,包含私有的中文数据和公开的英文数据,从而支持多语言。实验结果验证了我们方法的有效性。未来的工作将集中在提升实时性能和优化表情控制上,进一步拓展该框架在人像动画领域的应用。

🧳 框架

推理流程

所提出的JoyVASA的推理流程。 给定一张参考图像,我们首先使用LivePortrait中的外观编码器提取3D面部外观特征,并利用运动编码器提取一系列学习到的3D关键点。对于输入语音,先使用wav2vec2编码器提取音频特征。然后,通过第二阶段训练的扩散模型,以滑动窗口的方式采样得到音频驱动的运动序列。结合参考图像的3D关键点和采样的目标运动序列,计算出目标关键点。最后,根据源关键点和目标关键点对3D面部外观特征进行变形,并由生成器渲染出最终的输出视频。

⚙️ 安装

系统要求:

Ubuntu:

  • 已在Ubuntu 20.04、CUDA 12.1上测试通过
  • 测试GPU:A100

Windows:

  • 已在Windows 11、CUDA 12.1上测试通过
  • 测试GPU:RTX 4060笔记本电脑,8GB显存

创建环境:

# 1. 创建基础环境
conda create -n joyvasa python=3.10 -y
conda activate joyvasa 

# 2. 安装依赖
pip install -r requirements.txt

# 3. 安装ffmpeg
sudo apt-get update  
sudo apt-get install ffmpeg -y

# 4. 可选:安装MultiScaleDeformableAttention以支持动物图像动画
cd src/utils/dependencies/XPose/models/UniPose/ops
python setup.py build install
cd - # 等同于cd ../../../../../../../

🎒 准备模型检查点

请确保已安装git-lfs,并将以下所有检查点下载至pretrained_weights目录:

1. 下载JoyVASA运动生成器检查点

git lfs install
git clone https://huggingface.co/jdh-algo/JoyVASA

2. 下载音频编码器检查点

我们支持两种类型的音频编码器,包括wav2vec2-basehubert-chinese。运行以下命令下载hubert-chinese预训练权重:

git lfs install
git clone https://huggingface.co/TencentGameMate/chinese-hubert-base

要获取wav2vec2-base的预训练权重,请运行以下命令:

git lfs install
git clone https://huggingface.co/facebook/wav2vec2-base-960h

[!NOTE] 基于wav2vec2编码器的运动生成模型将在后续支持。

3. 下载LivePortraits检查点

# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"

更多下载方式可参考Liveportrait

4. pretrained_weights 目录内容

最终的 pretrained_weights 目录应如下所示:

./pretrained_weights/
├── insightface                                                                                                                                                 
│   └── models                                                                                                                                                  
│       └── buffalo_l                                                                                                                                           
│           ├── 2d106det.onnx                                                                                                                                   
│           └── det_10g.onnx   
├── JoyVASA
│   ├── motion_generator
│   │   └── iter_0020000.pt
│   └── motion_template
│       └── motion_template.pkl
├── liveportrait
│   ├── base_models
│   │   ├── appearance_feature_extractor.pth
│   │   ├── motion_extractor.pth
│   │   ├── spade_generator.pth
│   │   └── warping_module.pth
│   ├── landmark.onnx
│   └── retargeting_models
│       └── stitching_retargeting_module.pth
├── liveportrait_animals
│   ├── base_models
│   │   ├── appearance_feature_extractor.pth
│   │   ├── motion_extractor.pth
│   │   ├── spade_generator.pth
│   │   └── warping_module.pth
│   ├── retargeting_models
│   │   └── stitching_retargeting_module.pth
│   └── xpose.pth
├── TencentGameMate:chinese-hubert-base
│   ├── chinese-hubert-base-fairseq-ckpt.pt
│   ├── config.json
│   ├── gitattributes
│   ├── preprocessor_config.json
│   ├── pytorch_model.bin
│   └── README.md
└── wav2vec2-base-960h               
    ├── config.json                  
    ├── feature_extractor_config.json
    ├── model.safetensors
    ├── preprocessor_config.json
    ├── pytorch_model.bin
    ├── README.md
    ├── special_tokens_map.json
    ├── tf_model.h5
    ├── tokenizer_config.json
    └── vocab.json

[!NOTE] Windows 系统中,文件夹 TencentGameMate:chinese-hubert-base 应重命名为 chinese-hubert-base

🚀 推理

1. 命令行推理

动物:

python inference.py -r assets/examples/imgs/joyvasa_001.png -a assets/examples/audios/joyvasa_001.wav --animation_mode animal --cfg_scale 2.0

人类:

python inference.py -r assets/examples/imgs/joyvasa_003.png -a assets/examples/audios/joyvasa_003.wav --animation_mode human --cfg_scale 2.0

您可以调整 cfg_scale 参数以获得不同表情和姿态的结果。

[!NOTE] 动画模式与参考图像不匹配可能导致结果错误。

2. Web 演示推理

使用以下命令启动 Web 演示:

python app.py

演示将在 http://127.0.0.1:7862 打开。

⚓️ 使用您自己的数据训练运动生成器

运动生成器应使用人类说话的面部视频进行训练。

1. 准备训练和验证数据

01_extract_motions.py 中的 root_dir 替换为您自己的数据集路径,然后运行以下命令以生成训练和验证数据:

cd src/prepare_data
python 01_extract_motions.py
python 05_extract_audio.py
python 02_gen_labels.py
pyhton 03_merge_motions.py
python 04_gen_template.py

mv motion_templete.pkl motions.pkl train.json test.json ../../data
cd ../..

2. 训练

python train.py

实验结果位于 experiments/ 目录中。

📝 引用

如果您觉得我们的工作有所帮助,请考虑引用我们:

@misc{cao2024joyvasaportraitanimalimage,
      title={JoyVASA:基于扩散模型的音频驱动面部动态与头部运动生成的肖像及动物图像动画}, 
      author={Xuyang Cao 和 Guoxin Wang 和 Sheng Shi 和 Jun Zhao 和 Yang Yao 和 Jintao Fei 和 Minyu Gao},
      year={2024},
      eprint={2411.09209},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2411.09209}, 
}

🤝 致谢

我们衷心感谢以下开源项目及其贡献者:LivePortraitOpen Facevid2vidInsightFaceX-PoseDiffPoseTalkHallowav2vec 2.0Chinese Speech PretrainQ-AlignSyncnet以及 VBench,感谢他们开放的研究成果和卓越的工作。

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|6天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|2天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|3天前
插件Agent图像

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|6天前
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|6天前
开发框架图像Agent