OmniAvatar 是一个开源项目,由浙江大学和阿里巴巴联合开发,专注于通过音频输入生成全身虚拟人物视频。项目基于深度学习技术,利用音频和文本提示生成自然流畅的虚拟人物动画,特别在唇部同步和全身动作协调上表现出色。OmniAvatar 支持多种场景下的视频生成,比如播客、互动对话和动态表演。它通过像素级多层次音频嵌入和 LoRA 训练方法提升了唇部同步的精准度和动作的自然度。项目代码和模型权重已公开,用户可通过 GitHub 获取并在本地运行。OmniAvatar 适用于影视、游戏和社交媒体内容创作,生成高质量的虚拟人物动画。
功能列表
- 音频驱动视频生成:根据输入的音频生成虚拟人物的全身动画,唇部动作与音频高度同步。
- 文本提示控制:支持通过文本指令控制虚拟人物的情绪、动作和背景环境。
- 多语言唇部同步:支持包括中文、英文、日文在内的31种语言的唇部同步。
- 全身动作协调:生成自然的肩部运动、手势节奏等全身动画。
- 场景交互支持:虚拟人物可与场景中的物体互动,适合产品展示等场景。
- 多种分辨率输出:支持480p视频生成,适合不同设备需求。
- 开源模型支持:提供1.3B和14B参数模型,适配不同硬件配置。
使用帮助
安装流程
要使用 OmniAvatar,需要在本地配置运行环境并下载预训练模型。以下是详细的安装和使用步骤:
- 克隆项目代码
在终端运行以下命令克隆 OmniAvatar 代码仓库:git clone https://github.com/Omni-Avatar/OmniAvatar.git
克隆完成后,进入项目目录:
cd OmniAvatar
- 安装依赖
项目需要 Python 环境和特定依赖库。运行以下命令安装 PyTorch 和其他依赖:pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu124 pip install -r requirements.txt
如果有高性能 GPU,可以选择安装
flash_attn
加速注意力计算:pip install flash_attn
- 下载预训练模型
OmniAvatar 依赖多个预训练模型,包括 Wan2.1-T2V-14B、wav2vec2-base-960h 和 OmniAvatar-14B。使用huggingface-cli
下载:mkdir pretrained_models pip install "huggingface_hub[cli]" huggingface-cli download Wan-AI/Wan2.1-T2V-14B --local-dir ./pretrained_models/Wan2.1-T2V-14B huggingface-cli download facebook/wav2vec2-base-960h --local-dir ./pretrained_models/wav2vec2-base-960h huggingface-cli download OmniAvatar/OmniAvatar-14B --local-dir ./pretrained_models/OmniAvatar-14B
如果硬件资源有限,可选择 1.3B 参数模型,下载方式类似。
- 准备输入文件
创建输入文件(如infer_samples.txt
),包含音频文件路径和文本提示。例如:audio_path: examples/audio/sample.wav prompt: "A happy person speaking in a bright room"
确保音频文件格式为 WAV,文本提示明确描述人物情绪、动作或背景。
- 运行推理脚本
使用torchrun
运行推理脚本生成视频。针对 14B 模型:torchrun --standalone --nproc_per_node=1 scripts/inference.py --config configs/inference.yaml --input_file examples/infer_samples.txt
针对 1.3B 模型:
torchrun --standalone --nproc_per_node=1 scripts/inference.py --config configs/inference_1.3B.yaml --input_file examples/infer_samples.txt
输出视频将保存在指定文件夹(如
results
)中。
主要功能操作
- 生成音频驱动视频
用户需准备一张参考图像和一段音频。参考图像用于定义虚拟人物的外观,音频驱动唇部和全身动作。运行推理脚本后,系统会根据音频生成同步的视频,唇部动作与语音节奏高度匹配。例如,用户输入一段演讲音频,OmniAvatar 将生成人物说话时的自然手势和表情。 - 文本提示控制
通过文本提示,用户可控制虚拟人物的情绪(如“开心”或“愤怒”)、动作(如“挥手”)或背景(如“海滩”)。提示需清晰具体,例如:“A surprised person dancing in a forest”。系统会根据提示调整动画细节。 - 多语言支持
OmniAvatar 使用 Wav2Vec2 提取音频特征,支持31种语言的唇部同步。用户可输入任意支持语言的音频,系统会自动生成相应的唇部动作,无需额外配置。 - 场景交互
在文本提示中加入物体交互描述(如“holding a cup”),虚拟人物可与场景物体互动,适合电商展示或剧情动画。
注意事项
- 硬件要求:14B 模型需要高性能 GPU(如 A6000),1.3B 模型适合 8GB VRAM 的消费级硬件。
- 生成速度:单 GPU 上 14B 模型每帧约需30秒,1.3B 模型较快,适合低配设备。
- 输出检查:生成视频后,检查输出文件夹中的 MP4 文件,确保唇部同步和动作自然。
应用场景
- 播客视频制作
用户可将播客音频转化为虚拟人物视频,增加视觉吸引力。OmniAvatar 确保唇部动作与音频同步,适合快速制作高质量播客内容。 - 虚拟主播生成
社交媒体创作者可使用 OmniAvatar 生成虚拟主播表演视频,支持实时文本控制情绪和背景,适合直播或短视频平台。 - 影视与游戏动画
影视和游戏开发者可利用 OmniAvatar 快速生成角色动画,减少传统动画制作成本,特别适合需要大量对话场景的项目。 - 电商产品展示
通过场景交互功能,虚拟人物可展示产品(如服装或电子设备),提升营销内容的真实感。
QA
- OmniAvatar 支持哪些语言的音频输入?
支持31种语言,包括中文、英文、日文等,唇部同步由 Wav2Vec2 模型保证。 - 需要多高的硬件配置才能运行?
1.3B 模型需至少 8GB VRAM,14B 模型建议数据中心级 GPU(如 A6000)。 - 生成的视频分辨率是多少?
当前支持 480p 分辨率,未来可能扩展更高分辨率。 - 如何提升生成速度?
可尝试 1.3B 模型或安装flash_attn
加速注意力计算。