当前位置: 首页 > news >正文

笔记本6GB本地可跑的图生视频项目(FramePack)

文章目录

  • (一)简介
  • (二)本地执行
    • (2.1)下载
    • (2.2)更新
    • (2.3)运行
    • (2.4)生成
  • (三)注意
    • (3.1)效率
    • (3.2)TeaCache
    • (3.3)效果

(一)简介

它是 视频生成中下一帧预测模型的输入帧上下文打包方法 的官方实现。

项目的主页,仓库,论文。
最大的特点本地可以跑,可以生成长视频,漂移较少。

  • 在6GB显存的笔记本GPU上,使用130亿参数模型实现全帧率30FPS的数千帧长视频扩散生成
  • 可在单台8×A100/H100计算节点上以64批量大小微调130亿参数视频模型(适合个人/实验室级实验)
  • 个人RTX 4090显卡生成速度:未优化时2.5秒/帧,启用TEACache优化后1.5秒/帧
  • 未使用时序蒸馏技术
  • 虽为视频扩散模型,体验却接近图像扩散的流畅度

PS:记得之前尝试本地跑阿里的万象2.1文生视频,5秒钟视频耗时2小时。
而且只能跑得动文生视频(T2V),图生视频(I2V)只能在线体验……

(二)本地执行

由于作者提供了Windows下的一键安装包 (CUDA 12.6 + Pytorch 2.6)
让使用变得非常简单了,整个过程完全是傻瓜式的(Python环境知识都不用)。

(2.1)下载

下载 One-Click Package (CUDA 12.6 + Pytorch 2.6) 一键包,
并解压到无空格和中文的目录,得到如下的结构。

目录结构

(2.2)更新

执行update.bat来更新代码。

(2.3)运行

执行run.bat启动程序。

💡 提示,如果是首次运行,则模型将自动被下载。总共需要从HuggingFace下载超过30GB的数据。中途断了也没关系,再次执行可以断点续传的。

⚠️ 注意,如果您的网络环境无法访问HuggingFace,则需要事先做一些准备工作。
例如设置HF_ENDPOINT = https://hf-mirror.com 以便程序自动从镜像网站下载。

最终会启动成功,CMD日志大概如下:

Currently enabled native sdp backends: ['flash', 'math', 'mem_efficient', 'cudnn']
Xformers is not installed!
Flash Attn is not installed!
Sage Attn is not installed!
Namespace(share=False, server='127.0.0.1', port=None, inbrowser=True)
Free VRAM 5.001953125 GB
High-VRAM Mode: False
Downloading shards: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 1333.43it/s]
Loading checkpoint shards: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:01<00:00,  2.16it/s]
Fetching 3 files: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3/3 [00:00<?, ?it/s]
Loading checkpoint shards: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3/3 [00:01<00:00,  1.63it/s]
transformer.high_quality_fp32_output_for_inference = True
* Running on local URL:  http://127.0.0.1:7860To create a public link, set `share=True` in `launch()`.

在浏览器中会打开如下的Gradio界面:
WEB界面

(2.4)生成

  1. 上传一张参考图片。
  2. 写入提示词。
  3. 点击Start Generation开始生成视频。
Unloaded DynamicSwap_LlamaModel as complete.
Unloaded CLIPTextModel as complete.
Unloaded SiglipVisionModel as complete.
Unloaded AutoencoderKLHunyuanVideo as complete.
Unloaded DynamicSwap_HunyuanVideoTransformer3DModelPacked as complete.
Loaded CLIPTextModel to cuda:0 as complete.
Unloaded CLIPTextModel as complete.
Loaded AutoencoderKLHunyuanVideo to cuda:0 as complete.
Unloaded AutoencoderKLHunyuanVideo as complete.
Loaded SiglipVisionModel to cuda:0 as complete.
latent_padding_size = 27, is_last_section = False
Unloaded SiglipVisionModel as complete.
Moving DynamicSwap_HunyuanVideoTransformer3DModelPacked to cuda:0 with preserved memory: 6 GB
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 25/25 [09:05<00:00, 21.81s/it]
Offloading DynamicSwap_HunyuanVideoTransformer3DModelPacked from cuda:0 to preserve memory: 8 GB
Loaded AutoencoderKLHunyuanVideo to cuda:0 as complete.
Unloaded AutoencoderKLHunyuanVideo as complete.
Decoded. Current latent shape torch.Size([1, 16, 9, 88, 68]); pixel shape torch.Size([1, 3, 33, 704, 544])
......
latent_padding_size = 9, is_last_section = False
Moving DynamicSwap_HunyuanVideoTransformer3DModelPacked to cuda:0 with preserved memory: 6 GB
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 25/25 [07:37<00:00, 18.29s/it]
Offloading DynamicSwap_HunyuanVideoTransformer3DModelPacked from cuda:0 to preserve memory: 8 GB
Loaded AutoencoderKLHunyuanVideo to cuda:0 as complete.
Unloaded AutoencoderKLHunyuanVideo as complete.
Decoded. Current latent shape torch.Size([1, 16, 99, 88, 68]); pixel shape torch.Size([1, 3, 393, 704, 544])
latent_padding_size = 0, is_last_section = True
Moving DynamicSwap_HunyuanVideoTransformer3DModelPacked to cuda:0 with preserved memory: 6 GB
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 25/25 [07:37<00:00, 18.29s/it]
Offloading DynamicSwap_HunyuanVideoTransformer3DModelPacked from cuda:0 to preserve memory: 8 GB
Loaded AutoencoderKLHunyuanVideo to cuda:0 as complete.
Unloaded AutoencoderKLHunyuanVideo as complete.

生成过程中会不断更新进度,预览当前的结果。
完成后得到最终结果视频。
结果界面
可以下载,或者到项目下的webui\outputs目录中查看(最后一个才是最终结果)。

(三)注意

(3.1)效率

虽然笔记本3060-6GB + RAM-32GB可以跑,但我自己测试速度非常慢50s/it
而且每次生成1秒视频(有进度条)之间的时间非常久。

上面的例子是台式机4060TI-16GB,RAM-64GB跑的,生成了15秒的视频。
因为关闭了TeaCache,所以显得稍慢。如果打开则大概可以到12s/it左右的速度。
整体速度还能接受(比之前的2小时生成5秒快多了)。

作者对于速度很慢的建议:

  1. 用更快更大的内存。
  2. 用SSD代替HDD。
  3. 设置虚拟内存到最快的磁盘上,并保持足够的容量。

基本上相当于什么都没说。也就是不改变硬件的条件下,没啥可以优化的。

(3.2)TeaCache

不勾选慢50%,然而手指等细节动作也没有变自然,手心变手背,手表左右瞬移……

(3.3)效果

比较合适背景没啥变化的场景。
当然和在线给钱的效果差得有点远。

http://www.xdnf.cn/news/584065.html

相关文章:

  • EtpBot:安卓自动化脚本开发神器
  • 了解Android studio 初学者零基础推荐(2)
  • 正则表达式篇
  • element ui 表格实现单选
  • v2.0 技术篇目录-研究生如何选择编程技术
  • iOS工厂模式
  • uniapp-商城-65-shop(1-品牌信息显示,将数据库信息同步到vuex的state)
  • 如何构建一个简单的AI Agent(极简指南)
  • 深度学习入门到实战:用PyTorch打通数学、张量与模型训练全链路​
  • 使用 A2A Python SDK 实现 CurrencyAgent
  • 开闭原则 (Open/Closed Principle, OCP)
  • leetcode hot100刷题日记——10.螺旋矩阵
  • day33 python深度学习入门
  • jmeter登录接口生成一批token并写入csv文件
  • 浪潮Inspur服务器产品线概述
  • 【paddle】常见的数学运算
  • Ubuntu 22.04上升级npm版本
  • 升级node@22后运行npm install报错 distutils not found
  • canvas(三)-动画3d
  • iisARR负均衡
  • 【IDEA问题】springboot本地启动应用报错:程序包不存在;找不到符号
  • 在react项目中使用andt日期组件,选择周和季度,直接获取所对应的日期区间
  • C++ HTTP框架推荐
  • 人脸识别备案开启安全防护模式!紧跟《办法》!
  • uni-app学习笔记九-vue3 v-for指令
  • redis Pub/Sub 简介 -16 (PUBLISH、SUBSCRIBE、PSUBSCRIBE)
  • 【C++20新特性】ranges::sort()使用方法,优势,注意点
  • 【1004. 最大连续1的个数 III】
  • ai之pdf解析工具 PPStructure 还是PaddleOCR
  • 火山引擎火山云带宽价格