当前位置:首页|资讯|Stable Diffusion

Stable Diffusion 高兼容的显存优化方式(针对使用ControlNet后速率慢/爆显存状况)

作者:tiantian520tt发布时间:2023-08-31

(明天开学qwq)

废话不多说,上方法。

(本人配置:5600 + 32g + 3060ti 8g,cuda11.8,torch2.0,xformers开)

1. 命令行参数与ControlNet低显存优化

首先,放结论:

6g以下显存建议 --lowvram

8g~10g建议 --medvram

12g起步不需要这类参数

为什么不建议随便用这个参数?

首先,在使用--lowvram后,显存占用率显著降低,但是会发现内存与显存的占用有大的波动。打开taskmgr看一下占用,全都是波浪形的。

所以,在使用--lowvram后,显存和内存是在不断的交换的

这就导致了你的cuda永远是吃不满的。往往这种情况下,你的cuda占用无法到达100%。(除了显卡算力过低以外)

在使用--medvram后,你会发现内存与显存的变化较平稳。sd做了一个决策,就是在每次开始生成和一次生成结束后,将模型、vae等全部扔回内存,然后需要的时候一个一个取。而不是一开始就将所有的模型全塞显存里,跑图根本干不动。另外,在结束生成后,还会清理显存的缓存。

现在有个主要问题来了,这个问题查便全网都找不到很好的解决方案:开启ControlNet后,真的需要命令行参数和插件里都勾上lowvram(低显存)吗?

答案是不需要。

对于6g的显存而言,一是想要能出来图,二是速度。若两个都开的话,速度是奇慢的。通常,cuda占用率很低,而且波动较大。这中情况下,命令行参数加--lowvram,controlnet不开低显存优化。

对于8g的显存而言,出图应当没太大问题,主要问题是在你跑图跑着跑着,显存会越占越多,最后自然是跑了大概4-5张512*512后,显存快满了,若你使用了--medvram的话,你的跑图速度会奇慢,但也能出图。这种情况下,为了保证达到最大速度,有两种方法:

   1. 命令行开--lowvram,controlnet不开低显存优化。实测3060ti 3s/it

   2. 命令行开--medvram,controlnet开低显存优化,实测3060ti 1.5s/it

   3. 命令行开无显存参数,controlnet开低显存优化,实测3060ti 2.6s/it

证明命令行开--medvram,controlnet开低显存优化为最优解。

2. 进一步优化

(注:此项特殊对ControlNet进行优化)

在使用ControlNet进行干预时,最常用的有openpose、reference等。而这些模型进行干预,往往不需要从头干预到尾。

实测,使用openpose,其他条件完全相同,在使用如下控制时:

结果同全程控制几乎完全一样

这就使得8g显存/6g显存的显卡,在使用controlnet的时候其实可以更进一步的加速。

若只用上面的命令行优化,我手上的3060ti g6版本最快能达到1.5s/it。这个速度,若跑25steps/512*512的一张图,仍需要37.5s的时间。这实在是太长了。但,在进一步优化后,时间达到了21s。


3. 你杠就是你对

有人就开始了:你3060ti啊怎么就还要跑20多秒啊叽里呱啦一大堆。

首先,你要知道:8g显存正常跑图没什么,一开controlnet就爆炸。十分容易爆显存,就是能跑也奇慢无比,3060ti 大约9s/it

所以,事实证明,3060ti玩ai绘图就是不如3060。显存少4g,造成的性能损失十分大。

最后有几个报错的解决方案,这里当做一个笔记了:

1

File "C:\stable-diffusion-webui-master\New folder\stable-diffusion-webui\venv\lib\site-packages\gradio\blocks.py", line 504, in get_api_info    serializer = serializing.COMPONENT_MAPPING[type]()KeyError: 'dataset'

把depth插件(sd-webui-depth-lib)挪走就好。

2

在设置里的stable diffusion选项卡中,选择了将模型和vae放入缓存(上方两条缓存数量)

导致controlnet无法生效。关闭后依然无法生效,各种奇怪报错。

重启电脑即可。

必须强调:模型和vae放入缓存的优化方式与controlnet不兼容。但是低显存、不用controlnet十分推荐!!!详情可以看这篇文章:(不是我的但是很好,大佬很厉害!)Stable Diffusion1.10稳定版小内存、显存推荐模式(sd-13周到1.31版本535驱动测试) - 哔哩哔哩 (bilibili.com)


(没图镇楼了,晕)




Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1