腾讯疯了:忘了Sora吧,混元大模型开源!

财富   2024-12-06 09:00   山东  

Sora喊了快一年了,直到前几天发现它还在免费压榨艺术家的劳动力,从艺术家释放出的视频看,和年初高调放出的视频差距很大,甚至都无法和已经正式发布的可灵、即梦等中国厂商的产品相比。

眼看2024年就要过去了,腾讯直接发了大招,宣布杀死比赛:发布混元视频大模型,并开源。

根据开源计划,混元将开源文生视频模型和图生视频模型,目前已经开源了文生视频模型的推理代码和模型权重。后续将开源Penguin Video基准测试集、Gradio、ComfyUI和Diffusers以及图生视频模型的推理代码和模型权重。

不过,对于使用消费级显卡的用户来说,也很难在本地部署,因为目前该模型最小显存要45G。使用量化版本至少需要24G,只有3090或者4090用户才能勉强跑得起量化版。

如果想要体验,可以下载腾讯元宝,能够限次数使用该模型。

让我们看一下官方发布的效果视频:



HunyuanVideo 的架构

HunyuanVideo 是一个隐空间模型,训练时它采用了 3D VAE 压缩时间维度和空间维度的特征。文本提示通过一个大语言模型编码后作为条件输入模型,引导模型通过对高斯噪声的多步去噪,输出一个视频的隐空间表示。最后,推理时通过 3D VAE 解码器将隐空间表示解码为视频。


亮点

统一的图视频生成架构

HunyuanVideo 采用了 Transformer 和 Full Attention 的设计用于视频生成。具体来说,我们使用了一个“双流到单流”的混合模型设计用于视频生成。在双流阶段,视频和文本 token 通过并行的 Transformer Block 独立处理,使得每个模态可以学习适合自己的调制机制而不会相互干扰。在单流阶段,我们将视频和文本 token 连接起来并将它们输入到后续的 Transformer Block 中进行有效的多模态信息融合。这种设计捕捉了视觉和语义信息之间的复杂交互,增强了整体模型性能。


MLLM 文本编码器

过去的视频生成模型通常使用预训练的 CLIP 和 T5-XXL 作为文本编码器,其中 CLIP 使用 Transformer Encoder,T5 使用 Encoder-Decoder 结构。HunyuanVideo 使用了一个预训练的 Multimodal Large Language Model (MLLM) 作为文本编码器,它具有以下优势:

  • 与 T5 相比,MLLM 基于图文数据指令微调后在特征空间中具有更好的图像-文本对齐能力,这减轻了扩散模型中的图文对齐的难度;

  • 与 CLIP 相比,MLLM 在图像的细节描述和复杂推理方面表现出更强的能力;

  • MLLM 可以通过遵循系统指令实现零样本生成,帮助文本特征更多地关注关键信息。

由于 MLLM 是基于 Causal Attention 的,而 T5-XXL 使用了 Bidirectional Attention 为扩散模型提供更好的文本引导。因此,我们引入了一个额外的 token 优化器来增强文本特征。


3D VAE

我们的 VAE 采用了 CausalConv3D 作为 HunyuanVideo 的编码器和解码器,用于压缩视频的时间维度和空间维度,其中时间维度压缩 4 倍,空间维度压缩 8 倍,压缩为 16 channels。这样可以显著减少后续 Transformer 模型的 token 数量,使我们能够在原始分辨率和帧率下训练视频生成模型。


Prompt 改写

为了解决用户输入文本提示的多样性和不一致性的困难,我们微调了 Hunyuan-Large model 模型作为我们的 prompt 改写模型,将用户输入的提示词改写为更适合模型偏好的写法。

我们提供了两个改写模式:正常模式和导演模式。两种模式的提示词见这里。正常模式旨在增强视频生成模型对用户意图的理解,从而更准确地解释提供的指令。导演模式增强了诸如构图、光照和摄像机移动等方面的描述,倾向于生成视觉质量更高的视频。注意,这种增强有时可能会导致一些语义细节的丢失。

Prompt 改写模型可以直接使用 Hunyuan-Large 部署和推理. 我们开源了 prompt 改写模型的权重.

能力评估

为了评估 HunyuanVideo 的能力,我们选择了四个闭源视频生成模型作为对比。我们总共使用了 1,533 个 prompt,每个 prompt 通过一次推理生成了相同数量的视频样本。为了公平比较,我们只进行了一次推理以避免任何挑选。在与其他方法比较时,我们保持了所有选择模型的默认设置,并确保了视频分辨率的一致性。视频根据三个标准进行评估:文本对齐、运动质量和视觉质量。在 60 多名专业评估人员评估后,HunyuanVideo 在综合指标上表现最好,特别是在运动质量方面表现较为突出。


模型是否开源时长文本对齐运动质量视觉质量综合评价排序
HunyuanVideo (Ours)5s61.8%66.5%95.7%41.3%1
国内模型 A (API)5s62.6%61.7%95.6%37.7%2
国内模型 B (Web)5s60.1%62.9%97.7%37.5%3
GEN-3 alpha (Web)6s47.7%54.7%97.5%27.4%4
Luma1.6 (API)5s57.6%44.2%94.1%24.8%5


运行配置

下表列出了运行 HunyuanVideo 模型使用文本生成视频的推荐配置(batch size = 1):

模型分辨率(height/width/frame)去噪步数峰值显存
HunyuanVideo720px1280px129f3060G
HunyuanVideo544px960px129f3045G
  • 本项目适用于使用 NVIDIA GPU 和支持 CUDA 的设备

    • 本项目在单张 H800/H20 GPU 上进行了测试

    • 运行 720px1280px129f 的最小显存要求是 60GB,544px960px129f 的最小显存要求是 45GB。

️ 安装和依赖

首先克隆 git 仓库:

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

下载预训练模型

下载预训练模型参考这里

推理

我们在下表中列出了支持的高度/宽度/帧数设置。

分辨率h/w=9:16h/w=16:9h/w=4:3h/w=3:4h/w=1:1
540p544px960px129f960px544px129f624px832px129f832px624px129f720px720px129f
720p (推荐)720px1280px129f1280px720px129f1104px832px129f832px1104px129f960px960px129f

使用命令行

cd HunyuanVideo

python3 sample_video.py \
--video-size 720 1280 \
--video-length 129 \
--infer-steps 50 \
--prompt "A cat walks on the grass, realistic style." \
--flow-reverse \
--flow-shift 7.0 \
--seed 0 \
--use-cpu-offload \
--save-path ./results

更多配置

下面列出了更多关键配置项:

参数默认值描述
--promptNone用于生成视频的 prompt
--video-size720 1280生成视频的高度和宽度
--video-length129生成视频的帧数
--infer-steps50生成时采样的步数
--embedded-cfg-scale6.0文本的控制强度
--flow-shift7.0推理时 timestep 的 shift 系数,值越大,高噪区域采样步数越多
--flow-reverseFalseIf reverse, learning/sampling from t=1 -> t=0
--neg-promptNone负向词
--seed0随机种子
--use-cpu-offloadFalse启用 CPU offload,可以节省显存
--save-path./results保存路径

BibTeX

如果您认为 HunyuanVideo 给您的研究和应用带来了一些帮助,可以通过下面的方式来引用:

@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, Zunnan Xu, 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},
primaryClass={cs.CV}}


ComfyUI: ComfyUI-HunyuanVideoWrapper by Kijai




路过银河AI
凝视深渊过久,深渊将回以凝视。天空的深渊,便是天渊。
 最新文章