极致的显存管理!6G显存运行混元Video模型

本文涉及的产品
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,视频资源包5000点
简介: 混元 Video 模型自发布以来,已成为目前效果最好的开源文生视频模型,然而,这个模型极为高昂的硬件需求让大多数玩家望而却步。魔搭社区的开源项目 DiffSynth-Studio 近期为混元 Video 模型提供了更高效的显存管理的支持,目前已支持使用24G显存进行无任何质量损失的视频生成,并在极致情况下,用低至 6G 的显存运行混元 Video 模型!

 混元 Video 模型自发布以来,已成为目前效果最好的开源文生视频模型,然而,这个模型极为高昂的硬件需求让大多数玩家望而却步。魔搭社区的开源项目 DiffSynth-Studio 近期为混元 Video 模型提供了更高效的显存管理的支持,目前已支持使用24G显存进行无任何质量损失的视频生成,并在极致情况下,用低至 6G 的显存运行混元 Video 模型!

模型官网:

https://aivideo.hunyuan.tencent.com/

魔搭社区模型链接:

https://modelscope.cn/models/AI-ModelScope/HunyuanVideo

开源项目 DiffSynth-Studio 链接:

https://github.com/modelscope/DiffSynth-Studio

01.样例展示

先来看几个由 混元 Video 模型,在DiffSynth-Studio 引擎上基于无损的优化实现,在仅占用24G显存的情况下生成的视频!

活泼可爱的动物:

https://developer.aliyun.com/live/254774?spm=a2c6h.26396819.creator-center.22.404f3e184PVTfF

精细的人像:

https://vod-yq-aliyun.taobao.com/vod-7651a3/00794f30c73a71efb77a4531958c0102/7fc7d3103f314e02892329a560085393-ce371cf9913df3934aeab91a35610ca0-hd.mp4

复杂的多人场景:

https://vod-yq-aliyun.taobao.com/vod-7651a3/908da305c73a71efbfcd5107e0c90102/fd2f8277eb634777b9fa40f9a55a8695-5f81a875a9ac37cab89cbdf822f86533-hd.mp4

大幅度的运镜:

https://vod-yq-aliyun.taobao.com/vod-7651a3/d09c9f14c73a71ef9a6e5017e1f90102/7bbf7068da414fc1832febd9c52aec6c-ade97ed35fbbe62fd137007950f7f34b-hd.mp4

呼之欲出的画作:

https://vod-yq-aliyun.taobao.com/vod-7651a3/f074873ec73a71ef86614531958d0102/0ede628d0eb84861a5eec1712b41e669-7204770bb1bd9efc8ebca2459f3b0989-hd.mp4

02.显存管理

image.gif 编辑

混元 Video 模型沿用了自 Latent Diffusion 以来的经典“三段式”模型结构,包括 Text encoder、DiT、VAE。这三部分是按顺序调用的,所以我们可以进行 offload,在不调用模型时将其从显存中移动到内存中。但只做 offload 是远远不够的,我们还需要对每一个模块进行优化。

VAE

image.gif 编辑

显存的第一个瓶颈在 VAE。VAE 部分基于 CausalConv3D 构建,这个结构与 OpenSoraPlan、CogVideoX 非常相似。在空间维度上,每个 8*8 的区域合并成一组向量;在时间维度上,把第一帧单独编码,其后的每 4 帧压缩成一组向量。

CogVideoX 的实践经验表明,以滑动窗口的方式进行 VAE 编解码不会对结果产生明显影响,但能够显著减少显存需求。以 129 帧 720P 视频为例,不开启滑动窗口时,80G 显存也无法进行推理,当滑动窗口大小为 17*16*16(对应 65 帧 128*128 分辨率的视频)时,显存需求可以降低到 6G。这部分优化在官方原版代码中已经实现,我们在 DiffSynth-Studio 中进行了重构以便更方便地控制窗口大小和步长。

DiT

image.gif 编辑

显存的第二个瓶颈在 DiT 部分,模型的参数量非常大,视频的向量表示也很大,所以我们做了非常激进的显存管理策略——逐个 Layer offload。把整个 DiT 模型放在内存中,在每个 Layer 推理时临时加载进显存,这样一来模型所占的显存几乎可以忽略不计。在大部分模型上,这种激进的显存管理策略会显著增加推理时间,但对于混元 DiT 模型来说,模型本身前向推理一次就需要 60s(A100 上的测试结果),显存管理只会增加约 3s 的推理时间,这部分时间完全可以接受。DiT 的优化足以把显存需求降低到 24G。

Text Encoder

129 帧 720P 视频的显存优化已经接近极限,但我们也注意到近期开源社区中出现的在低分辨率下训练的 LoRA 模型。混元 Video 模型在低分辨率下的效果并不好,但是这些 LoRA 可以很好地改善模型在低分辨率下的效果。例如 WalkingAnimation(可在 CivitAI:https://civitai.com/models/1032126/walking-animation-hunyuan-video 或魔搭社区:https://modelscope.cn/models/AI-ModelScope/walking_animation_hunyuan_video/summary下载),其训练分辨率为 512*384。在这个分辨率下,显存的第三个瓶颈出现在 Text Encoder 上。

image.gif 编辑

混元 Video 的 Text Encoder 有两个——CLIP 和 LLaVA,其中 CLIP 所需的显存很小,但 LLaVA 作为一个 LLM,需要至少 16G 显存。与 DiT 类似,我们在 LLaVa 上也进行逐个 Layer offload,成功将其显存需求降低到 6G 以内。

03.代码样例

首先 clone 并安装 DiffSynth-Studio:https://github.com/modelscope/DiffSynth-Studio

git clone https://github.com/modelscope/DiffSynth-Studio.git
cd DiffSynth-Studio
pip install -e .

image.gif

我们提供了三种显存限制下的样例脚本,用于应对不同的硬件限制。

80G

代码链接

https://github.com/modelscope/DiffSynth-Studio/blob/main/examples/HunyuanVideo/hunyuanvideo_80G.py

运行命令:

python examples/HunyuanVideo/hunyuanvideo_80G.py

帧数:129

分辨率:720*1280

对于 A100 和 H100 等大显存 GPU,无需显存管理。我们把原版模型代码中的 flash attention 替换为了 torch 的 scaled_dot_product_attention,这个函数会自动根据硬件选择最佳的注意力机制实现。以下是这个脚本生成的视频:

https://vod-yq-aliyun.taobao.com/vod-7651a3/60804320c73a71ef9f690675b3ed0102/c979d93875cd4968a9b7c18364a503ce-6a83a1aeb77004d6dd4f4e728b997f07-hd.mp4

24G

代码链接

https://github.com/modelscope/DiffSynth-Studio/blob/main/examples/HunyuanVideo/hunyuanvideo_24G.py

运行命令:

python examples/HunyuanVideo/hunyuanvideo_24G.py

帧数:129

分辨率:720*1280

这个脚本启用了本文中提到的所有显存管理。由于没有使用模型量化,所以不存在任何量化误差,生成的视频与脚本hunyuanvideo_80G.py完全一致。

6G

代码链接

https://github.com/modelscope/DiffSynth-Studio/blob/main/examples/HunyuanVideo/hunyuanvideo_6G.py

运行命令:

python examples/HunyuanVideo/hunyuanvideo_6G.py

帧数:129

分辨率:512*384

这个脚本使用了 WalkingAnimation(可在 CivitAI 或魔搭社区下载)这个 LoRA 来改善混元 Video 底模在低分辨率下的效果。这个 LoRA 可以生成各种人物的行走动作。通过在代码中修改 prompt,我们可以生成各种动漫角色行走动作的视频,以下是这个脚本生成的视频:

https://vod-yq-aliyun.taobao.com/vod-7651a3/c0a2bb57c73a71efbb694531949c0102/7752d1885dd2412fb1cf9afca38afbff-27630f794e8b87f6b162f57ca428d47b-hd.mp4

此外,我们还额外提供了视频生视频的功能。

代码链接:

https://github.com/modelscope/DiffSynth-Studio/blob/main/examples/HunyuanVideo/hunyuanvideo_v2v_6G.py

运行命令:

python examples/HunyuanVideo/hunyuanvideo_v2v_6G.py

帧数:129

分辨率:512*384

使用这个脚本可以实现视频编辑,例如把以下视频中角色的衣服颜色修改为紫色,所需的显存仍然是 6G。

https://vod-yq-aliyun.taobao.com/vod-7651a3/00a8ae4cc73a71ef81a96723b78e0102/ab5c5e4d661a402e8deef3c04bb78c05-7d2dedf4372096e2b2272e4de304b370-hd.mp4

点击链接阅读原文:腾讯混元视频生成HunyuanVideo

 


相关文章
|
4月前
|
测试技术 开发工具 Swift
Liger kernel训练加速,一行代码训练吞吐量提高 20%,显存使用量降低 60%
在LLM的训练/微调过程中,开发者通常会遇到一些瓶颈,包括GPU显存不够,经常遇到OOM,GPU使用率100%而且非常慢等。
Liger kernel训练加速,一行代码训练吞吐量提高 20%,显存使用量降低 60%
|
5月前
|
机器学习/深度学习 并行计算 PyTorch
GPU 加速与 PyTorch:最大化硬件性能提升训练速度
【8月更文第29天】GPU(图形处理单元)因其并行计算能力而成为深度学习领域的重要组成部分。本文将介绍如何利用PyTorch来高效地利用GPU进行深度学习模型的训练,从而最大化训练速度。我们将讨论如何配置环境、选择合适的硬件、编写高效的代码以及利用高级特性来提高性能。
907 1
|
2天前
|
人工智能 JSON 算法
魔搭支持在阿里云人工智能平台PAI上进行模型训练、部署了!
现在,魔搭上的众多模型支持在阿里云人工智能平台PAI-Model Gallery上使用阿里云算力资源进行模型训练和部署啦!
|
13天前
|
弹性计算 运维 监控
云产品评测:云服务诊断 — ECS实例健康状态与诊断功能体验
作为一名运维工程师,我日常管理和维护云资源,确保服务稳定运行。阿里云的云服务诊断功能提供了便捷的方式实时了解和优化ECS实例的健康状态。通过健康状态功能,我能够查看CPU、内存等指标,及时发现并解决性能瓶颈,提升了约30%的工作效率。诊断功能则帮助我快速定位复杂问题,减少了40%的诊断时间,并提供详细的优化建议。尽管功能已很强大,但仍建议进一步细化诊断结果和增加自定义告警选项,以提升使用体验。我非常推荐此工具给其他运维人员。
60 22
|
2天前
|
存储 弹性计算 运维
云服务诊断体验测评
一文带你了解云服务诊断产品的优与劣
59 38
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
Genesis:卡内基梅隆大学联合 20 多所研究机构开源生成式物理引擎,能够模拟各种材料、物体和物理运动现象
Genesis是由卡内基梅隆大学联合20多所研究机构开源的生成式物理引擎,能够模拟世界万物,具有高度的物理准确性和快速的模拟速度,适用于机器人仿真、游戏开发、电影特效制作等多个领域。
95 21
Genesis:卡内基梅隆大学联合 20 多所研究机构开源生成式物理引擎,能够模拟各种材料、物体和物理运动现象
|
15天前
|
存储 应用服务中间件 开发工具
对象存储OSS-Python设置代理访问请求
通过 Python SDK 配置 nginx 代理地址请求阿里云 OSS 存储桶服务。示例代码展示了如何使用 RAM 账号进行身份验证,并通过代理下载指定对象到本地文件。
65 15
|
4天前
|
Linux API 开发工具
魔搭llamafile集成:让大模型开箱即用
Llamafile是一个将大模型和其所需运行环境,全封装在一个可执行文件中的开源创新项目。为了方便广大开发者能以更低的门槛使用大模型,魔搭社区上提供了大量优秀模型的llamafile格式。
|
11天前
|
人工智能 自然语言处理 小程序
魔搭社区每周速递(12.15-12.21)
🙋魔搭ModelScope本期社区进展:📟1914个模型,📁58个数据集,🎨78个创新应用,📄 8篇内容
魔搭社区每周速递(12.15-12.21)
|
11天前
|
存储 人工智能 编解码
多模态实时交互大模型浦语·灵笔 2.5 OmniLive开源:能看、能听、会记、会说!
2024年12月12日,多模态实时交互大模型书生·浦语灵笔2.5-OL(InternLM-XComposer2.5-OmniLive)开源,该模型可以通过视觉和听觉实时观察和理解外部世界,自动形成对观察到内容的长期记忆,并可通过语音与人类用户进行对话交谈,提供更自然的大模型交互体验。
多模态实时交互大模型浦语·灵笔 2.5 OmniLive开源:能看、能听、会记、会说!

热门文章

最新文章