Hello,大家好!开源社区开始发力了,lllyasviel(敏神)ControlNet的作者刚才发布了一款flux1-dev-bnb-nf4-v2模型,这个版本最大的优势就是能让低显存的设备也能运行,这个低到底有多低呢?实测下来3070ti笔记本(8G VRAM)在跑NF4-V2模型每次迭代只需要2.15秒(这只是该笔记本计算的时间,并不代表所有8GVRAM都是这个时间,其他硬件设备不同计算结果也不一致)。
技术小知识: bnb.matmul_4bit:这个方法是bitsandbytes库中的一个函数,用于在深度学习模型中执行优化的4-bit矩阵乘法(matmul)。与传统的浮点数矩阵乘法(如torch.nn.functional.linear)相比,bnb的4-bit矩阵乘法能够利用低位精度和特定的CUDA优化技巧,加速计算过程。
接下来,我们用秋叶大佬的绘世启动器实现打开SDwebui-Foge。
绘世,启动!
模型作者说明:如果您的设备支持 CUDA 11.7 以上版本,那么您可以使用 NF4。(大多数 RTX 3XXX/4XXX GPU 都支持此功能。)如果您的设备是 GTX 10XX/20XX 的 GPU,那么您的设备可能不支持 NF4,请用flux1-dev-fp8模型
打开绘世启动器:
- 导航栏选择版本管理模块默认进入内核页面;
- 点击切换分支按钮;
- 下拉菜单选择stable-diffusion-webui-forge版本;
- 点击切换分支,这里会弹出一个提示,让你备份重要文件,点击确定就好。
tips:由于每台设备所安装的环境不一样,建议先备份一版再切换。
切换后跳出这个弹窗说明切换成功,并不是已经安装成功,后面一键启动还要下载依赖。
选择扩展页面,禁用不必要的插件(第一次启动建议全部取消),因为很多插件和forge并不兼容;
好,这些步骤执行完之后重启启动器,再点击一键启动,开始下载forge的依赖已经安装部分插件,这一步通常会出现两种错误,一种错误是网络连接问题(也就是需要魔法,因为需要到抱抱脸拉取依赖),还有一种错误就是前面提到的插件兼容问题,如果看到插件问题,就需要返回前面的步骤警用相关的插件。
一切就绪后,即可打开webui-forge版本
我们需要把UI模板切换成Flux模式,后面所有的参数都会调整成Flux预设,根据模型版本的不同可以自行手动调整
参数说明:
Diffusion with Low Bits:模型的量化格式,一般情况下选自动就行,这次用的模型是flux1-dev-bnb-nf4-v2,所以可以选nf4。
Swap Method:Queue/Async:队列加载计算/并行加载计算
Swap Location:CPU/Shared:根据设备CPU内存和GPU显存选择一种模式,当CPU内存高于GPU显存那就选择CPU,当GPU显存高于CPU内存就选择GPU。这里的原理就是把一个存储容量高于你显存的模型分为两半,一半给GPU一半给共享内存。
通俗地说就是哪种内存大选哪种。
模型下拉菜单选择加载flux1-dev-bnb-nf4-v2模型,调节相关参数即可开启你的创作之旅啦!如果还是不太懂这些参数有啥用,让它默认即可(虽然本文已经提了)。
tips:注意,这次的flux1-dev-bnb-nf4-v2模型是放到stable diffusion目录下,并不是放到unet目录下,模型链接在网盘,网盘地址在文尾。
示例图
Positive Prompt
text A Marvel Universe scene with the Hulk chasing Deadpool on a sunny beach, detailed and dynamic characters, the Hulk with large muscles and fur, and Deadpool in his red suit and mask, both with expressive faces, in a bright and sunny beach environment with palm trees and clear sea, with coconuts and beach chairs in the background, masterpiece, best quality, 4k, illustration style, best lighting, depth of field, detailed character features, detailed environment.
Positive Prompt
text An action-packed scene from the Marvel Universe with Wolverine chasing Deadpool on a sunny beach, Wolverine with metal claws and a muscular physique, and Deadpool in his iconic red suit and mask, both displaying animated expressions, set against a backdrop of palm trees, clear blue ocean, and beach leisure amenities, with sunlight adding vibrancy to the scene, masterpiece, best quality, 4k, dynamic angle, illustration style, best lighting, depth of field, detailed character features, detailed environment textures.
Positive Prompt
text A vibrant and dynamic Marvel Universe themed poster featuring Deadpool dancing, captured in a full-body shot, showcasing Deadpool's energetic and humorous personality in his iconic red suit and mask, with the top of the poster displaying the welcoming phrase 'Hello, friends of the Atomic Community' in a stylish and eye-catching font, high production value, poster quality, 4k resolution, illustration style, best lighting, depth of field, detailed character features, expressive dance pose, clear and inviting text at the top, engaging background that complements the subject.
常见的报错
RuntimeError: The expanded size of the tensor (1) must match the existing size (64) at non-singleton dimension 0. Target sizes: [1, 256, 256]. Tensor sizes: [64, 256, 256]
The expanded size of the tensor (1) must match the existing size (64) at non-singleton dimension 0. Target sizes: [1, 256, 256]. Tensor sizes: [64, 256, 256]
报错的主要原因是张量(tensor)的维度不匹配。
解决方法:关闭xFormers
绘世启动器>高级选项>交叉注意力优化方案之类选择非xFormers,我选的是缩放点积。
网盘链接:https://pan.baidu.com/s/10uanIGqkuiCb9d_OGbdPYA?pwd=sra3