Hallo3: 一个基于扩散变换网络的高动态真实肖像动画生成开源模型(Diffusion Transformer Networks)
5 min read
项目简介
Hallo3 (Highly Dynamic and Realistic Portrait Image Animation with Diffusion Transformer Networks) 是由复旦大学视觉生成实验室(Fudan Generative Vision Lab)开发的一个基于扩散变换网络的肖像图像动画生成模型。该项目能够将静态照片与音频结合,生成高动态性和真实感的人物说话视频,为数字人物创作提供了强大的技术支持。
在实际应用中,Hallo3可以广泛应用于多个场景:
- 数字人物创作:通过单张照片和音频输入,快速生成说话的数字人物,适用于虚拟主播、数字代言人等场景
- 教育培训:将静态教学材料转换为生动的视频讲解内容,提升在线教育的互动性和参与感
- 内容创作:帮助创作者快速制作人物讲解视频,大幅提高内容生产效率
- 营销展示:为品牌和产品提供个性化的数字人物展示方案,增强营销效果
主要特点
-
高动态性:模型能够生成高度动态和自然流畅的人物动作和表情变化。
-
真实感:生成的肖像动画具有极高的真实感和细节表现力。
-
开源可用:项目完全开源,研究者和开发者可以自由使用和研究。
技术实现
Hallo3 的实现基于以下关键技术:
- 基于扩散变换网络(Diffusion Transformer Networks)架构
- 采用先进的动画生成策略
- 支持高质量的肖像图像动画生成
系统要求
- 系统:Ubuntu 20.04/Ubuntu 22.04
- CUDA版本:12.1
- 测试GPU:H100
预训练模型下载
您可以通过以下方式获取所需的预训练模型:
- 使用 huggingface-cli 下载:
cd $ProjectRootDir
pip install huggingface-cli
huggingface-cli download fudan-generative-ai/hallo3 --local-dir ./pretrained_models
- 或者从以下来源手动下载:
- hallo3:项目的主要检查点
- Cogvidex:Cogvideox-5b-i2v 预训练模型,包含 transformer 和 3d vae
- t5-v1_1-xxl:文本编码器
- audio_separator:Kim Vocal_2 MDX-Net 声音分离模型
- wav2vec:Facebook 的音频向量模型
- insightface:2D 和 3D 人脸分析模型
- face landmarker:来自 mediapipe 的人脸检测和网格模型
安装步骤
- 克隆项目仓库:
git clone https://github.com/fudan-generative-vision/hallo3
cd hallo3
- 创建并激活conda环境:
conda create -n hallo python=3.10
conda activate hallo
- 安装依赖:
pip install -r requirements.txt
apt-get install ffmpeg
推理使用
bash scripts/inference_long_batch.sh ./examples/inference/input.txt ./output
动画结果将保存在./output
目录中。
训练准备
数据准备
将原始视频按以下目录结构组织:
dataset_name/
|-- videos/
| |-- 0001.mp4
| |-- 0002.mp4
| `-- 0003.mp4
|-- caption/
| |-- 0001.txt
| |-- 0002.txt
| `-- 0003.txt
数据预处理
使用以下命令处理视频:
bash scripts/data_preprocess.sh {dataset_name} {parallelism} {rank} {output_name}
模型训练
- 更新配置文件中的数据路径设置:
在 configs/sft_s1.yaml
和 configs/sft_s2.yaml
中更新:
#sft_s1.yaml
train_data: [
"./data/output_name.json"
]
#sft_s2.yaml
train_data: [
"./data/output_name.json"
]
- 开始训练:
# 第一阶段训练
bash scripts/finetune_multi_gpus_s1.sh
# 第二阶段训练
bash scripts/finetune_multi_gpus_s2.sh
推理使用
注意事项
输入数据需要满足以下条件:
- 参考图像必须是1:1或3:2的宽高比
- 驱动音频必须是WAV格式
- 音频必须是
英语
(因为训练数据集仅包含英语) - 确保音频人声清晰(可以包含背景音乐)
运行推理
执行以下命令进行推理:
bash scripts/inference_long_batch.sh ./examples/inference/input.txt ./output
生成的动画结果将保存在 ./output
目录中。
参考链接
更多文章
一文读懂 DeepSeek R1:强化学习如何重塑大语言模型推理能力?
Let's Encrypt 将在2025年推出6天有效期证书和IP地址证书支持
字节跳动开源基于 Golang 的大模型应用开发框架 Eino
主流开源AI Agent框架对比与选型(langgraph, AutoGen, MetaGPT, ChatDev, Swarm, uagents)
Microsoft TRELLIS 教程 - 开源文生3D、图生3D模型部署指南
VLC 自动字幕和翻译(基于本地离线开源AI模型)|CES 2025
STAR: 基于文本到视频模型的实际场景视频超分辨率技术
CES 2025 | 英伟达(NVIDIA) RTX 5090 震撼曝光 32GB GDDR7 显存开启显卡新纪元
CES 2024 回顾:重温2024科技盛典精彩时刻