模型简介
模型特点
模型能力
使用案例
🚀 混元视频(HunyuanVideo)
混元视频(HunyuanVideo)是一个用于大型视频生成模型训练的系统框架,可实现文本到视频、图像到视频的生成,在视频生成性能上表现出色,助力构建更具活力的视频生成生态。
🚀 快速开始
本仓库包含了用于探索混元视频(HunyuanVideo)的PyTorch模型定义、预训练权重以及推理/采样代码。你可以在我们的项目页面上查看更多可视化内容。
✨ 主要特性
统一的图像和视频生成架构
混元视频引入了Transformer设计,并采用全注意力机制进行统一的图像和视频生成。具体而言,在视频生成方面采用了“双流到单流”的混合模型设计。在双流阶段,视频和文本令牌通过多个Transformer块独立处理,使每个模态能够学习自己合适的调制机制而互不干扰。在单流阶段,将视频和文本令牌连接起来,并输入到后续的Transformer块中,以实现有效的多模态信息融合。这种设计捕捉了视觉和语义信息之间的复杂交互,提升了整体模型性能。
MLLM文本编码器
与一些先前的文本到视频模型通常使用预训练的CLIP和T5 - XXL作为文本编码器不同,我们使用具有仅解码器结构的预训练多模态大语言模型(MLLM)作为文本编码器,具有以下优势:
- 与T5相比,经过视觉指令微调的MLLM在特征空间中具有更好的图像 - 文本对齐,减轻了扩散模型中指令跟随的难度。
- 与CLIP相比,MLLM在图像细节描述和复杂推理方面表现出更出色的能力。
- MLLM可以通过遵循用户提示前的系统指令作为零样本学习器,帮助文本特征更加关注关键信息。此外,MLLM基于因果注意力,而T5 - XXL使用双向注意力,MLLM能为扩散模型提供更好的文本指导。因此,我们引入了一个额外的双向令牌精炼器来增强文本特征。
3D VAE
混元视频使用CausalConv3D训练了一个3D VAE,将像素空间的视频和图像压缩到一个紧凑的潜在空间中。我们分别将视频长度、空间和通道的压缩比设置为4、8和16。这可以显著减少后续扩散Transformer模型的令牌数量,使我们能够在原始分辨率和帧率下训练视频。
提示重写
为了解决用户提供提示的语言风格和长度的可变性问题,我们微调了[混元大模型](https://github.com/Tencent/Tencent - Hunyuan - Large)作为提示重写模型,以将原始用户提示调整为模型偏好的提示。
我们提供了两种重写模式:普通模式和专家模式,可以通过不同的提示调用。普通模式旨在增强视频生成模型对用户意图的理解,便于更准确地解释提供的指令。专家模式增强了对构图、照明和相机移动等方面的描述,更倾向于生成具有更高视觉质量的视频。然而,这种强调有时可能会导致一些语义细节的丢失。
提示重写模型可以使用[混元大模型的原始代码](https://github.com/Tencent/Tencent - Hunyuan - Large)直接部署和推理。我们在[此处](https://huggingface.co/Tencent/HunyuanVideo - PromptRewrite)发布了提示重写模型的权重。
📦 安装指南
克隆仓库
git clone https://github.com/tencent/HunyuanVideo
cd HunyuanVideo
Linux安装指南
我们提供了一个environment.yml
文件用于设置Conda环境。Conda的安装说明可在此处找到。
我们推荐使用CUDA版本11.8和12.0+。
# 1. 准备conda环境
conda env create -f environment.yml
# 2. 激活环境
conda activate HunyuanVideo
# 3. 安装pip依赖
python -m pip install -r requirements.txt
# 4. 安装flash attention v2以加速(需要CUDA 11.8或更高版本)
python -m pip install git+https://github.com/Dao - AILab/flash - attention.git@v2.5.9.post1
此外,混元视频还提供了一个预构建的Docker镜像:docker_hunyuanvideo。
# 1. 使用以下链接下载docker镜像tar文件(适用于CUDA 12)
wget https://aivideo.hunyuan.tencent.com/download/HunyuanVideo/hunyuan_video_cu12.tar
# 2. 导入docker tar文件并显示镜像元信息(适用于CUDA 12)
docker load -i hunyuan_video.tar
docker image ls
# 3. 基于镜像运行容器
docker run -itd --gpus all --init --net=host --uts=host --ipc=host --name hunyuanvideo --security - opt=seccomp=unconfined --ulimit=stack=67108864 --ulimit=memlock=-1 --privileged docker_image_tag
💻 使用示例
基础用法
cd HunyuanVideo
python3 sample_video.py \
--video-size 720 1280 \
--video-length 129 \
--infer-steps 30 \
--prompt "a cat is running, realistic." \
--flow-reverse \
--seed 0 \
--use-cpu-offload \
--save-path ./results
高级用法
我们列出了一些更有用的配置,方便使用:
参数 | 默认值 | 描述 |
---|---|---|
--prompt |
None | 用于视频生成的文本提示 |
--video-size |
720 1280 | 生成视频的尺寸 |
--video-length |
129 | 生成视频的长度 |
--infer-steps |
30 | 采样步骤数 |
--embedded-cfg-scale |
6.0 | 嵌入式无分类器引导比例 |
--flow-shift |
9.0 | 流匹配调度器的偏移因子 |
--flow-reverse |
False | 是否反向,即从t = 1到t = 0进行学习/采样 |
--neg-prompt |
None | 用于视频生成的负提示 |
--seed |
0 | 生成视频的随机种子 |
--use-cpu-offload |
False | 使用CPU卸载模型加载以节省更多内存,对于高分辨率视频生成是必要的 |
--save-path |
./results | 保存生成视频的路径 |
📚 详细文档
开源计划
- 混元视频(文本到视频模型)
- [x] 推理
- [x] 检查点
- [ ] 企鹅视频基准测试
- [ ] Web演示(Gradio)
- [ ] ComfyUI
- [ ] Diffusers
- 混元视频(图像到视频模型)
- [ ] 推理
- [ ] 检查点
比较
为了评估混元视频的性能,我们从闭源视频生成模型中选择了五个强大的基线。总共使用了1533个文本提示,一次性使用混元视频生成了相同数量的视频样本。为了进行公平比较,我们只进行了一次推理,避免挑选结果。在与基线方法比较时,我们为所有选定的模型保持默认设置,确保视频分辨率一致。视频根据三个标准进行评估:文本对齐、运动质量和视觉质量。超过60名专业评估人员进行了评估。值得注意的是,混元视频表现出了最佳的整体性能,尤其在运动质量方面表现出色。
模型 | 开源 | 时长 | 文本对齐 | 运动质量 | 视觉质量 | 总体 | 排名 |
---|---|---|---|---|---|---|---|
混元视频(我们的) | ✔ | 5s | 61.8% | 66.5% | 95.7% | 41.3% | 1 |
CNTopA (API) | ✘ | 5s | 62.6% | 61.7% | 95.6% | 37.7% | 2 |
CNTopB (Web) | ✘ | 5s | 60.1% | 62.9% | 97.7% | 37.5% | 3 |
GEN - 3 alpha (Web) | ✘ | 6s | 47.7% | 54.7% | 97.5% | 27.4% | 4 |
Luma1.6 (API) | ✘ | 5s | 57.6% | 44.2% | 94.1% | 24.8% | 6 |
CNTopC (Web) | ✘ | 5s | 48.4% | 47.2% | 96.3% | 24.6% | 5 |
要求
以下表格显示了运行混元视频模型(批量大小 = 1)生成视频的要求:
模型 | 设置(高度/宽度/帧) | GPU峰值内存 |
---|---|---|
混元视频 | 720px1280px129f | 60GB |
混元视频 | 544px960px129f | 45GB |
- 需要支持CUDA的NVIDIA GPU。
- 该模型在单个80G GPU上进行了测试。
- 最低要求:对于720px1280px129f,所需的最小GPU内存为60GB;对于544px960px129f,为45GB。
- 推荐:为了获得更好的生成质量,建议使用具有80GB内存的GPU。
- 测试的操作系统:Linux
下载预训练模型
下载预训练模型的详细信息可在此处查看。
🔧 技术细节
摘要
我们提出了混元视频(HunyuanVideo),这是一种新颖的开源视频基础模型,在视频生成方面的性能与领先的闭源模型相当,甚至更优。混元视频具有一个全面的框架,集成了多项关键贡献,包括数据整理、图像 - 视频联合模型训练,以及旨在促进大规模模型训练和推理的高效基础设施。此外,通过有效的模型架构和数据集扩展策略,我们成功训练了一个参数超过130亿的视频生成模型,使其成为所有开源模型中规模最大的。
我们进行了广泛的实验,并实施了一系列有针对性的设计,以确保高视觉质量、运动多样性、文本 - 视频对齐和生成稳定性。根据专业人工评估结果,混元视频优于先前的最先进模型,包括Runway Gen - 3、Luma 1.6和3个表现出色的中文视频生成模型。通过发布基础模型及其应用的代码和权重,我们旨在缩小闭源和开源视频基础模型之间的差距。这一举措将使社区中的每个人都能够尝试他们的想法,促进更具活力和生机的视频生成生态系统的发展。
混元视频总体架构
混元视频在通过因果3D VAE压缩的时空潜在空间上进行训练。文本提示使用大语言模型进行编码,并作为条件。将高斯噪声和条件作为输入,我们的生成模型生成一个输出潜在,该潜在通过3D VAE解码器解码为图像或视频。
🔗 BibTeX
如果你发现混元视频对你的研究和应用有用,请使用以下BibTeX进行引用:
@misc{kong2024hunyuanvideo,
title={HunyuanVideo: A Systematic Framework For Large Video Generative Models},
author={Weijie Kong, Qi Tian, Zijian Zhang, Rox Min, Zuozhuo Dai, Jin Zhou, Jiangfeng Xiong, Xin Li, Bo Wu, Jianwei Zhang, Kathrina Wu, Qin Lin, Aladdin Wang, Andong Wang, Changlin Li, Duojun Huang, Fang Yang, Hao Tan, Hongmei Wang, Jacob Song, Jiawang Bai, Jianbing Wu, Jinbao Xue, Joey Wang, Junkun Yuan, Kai Wang, Mengyang Liu, Pengyu Li, Shuai Li, Weiyan Wang, Wenqing Yu, Xinchi Deng, Yang Li, Yanxin Long, Yi Chen, Yutao Cui, Yuanbo Peng, Zhentao Yu, Zhiyu He, Zhiyong Xu, Zixiang Zhou, Yangyu Tao, Qinglin Lu, Songtao Liu, Dax Zhou, Hongfa Wang, Yong Yang, Di Wang, Yuhong Liu, and Jie Jiang, along with Caesar Zhong},
year={2024},
archivePrefix={arXiv preprint arXiv:2412.03603},
primaryClass={cs.CV}
}
📄 许可证
本项目使用腾讯混元社区许可证。
致谢
我们要感谢[SD3](https://huggingface.co/stabilityai/stable - diffusion - 3 - medium)、[FLUX](https://github.com/black - forest - labs/flux)、[Llama](https://github.com/meta - llama/llama)、[LLaVA](https://github.com/haotian - liu/LLaVA)、Xtuner、diffusers和HuggingFace仓库的贡献者,感谢他们的开放研究和探索。此外,我们还要感谢腾讯混元多模态团队在文本编码器方面提供的帮助。



