想问一下有没有什么解决stable diffusion内存溢出的问题
第一个问题官网是有说明的,但就是这个下载地址藏得很深不好找。
我也是找了一会才找到https://huggingface.co/CompVis/stable-diffusion-v-1-4-original,把这个sd-v1-4.ckpt文件下载下来(随便哪个都行),大概四个G。
下载模型文件放置到这个文件夹下,就是上面官方说明的那个位置,命名成model.ckpt。
运行下面的代码,不出意外会报错。
python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms
问题好像是原作者修改了这个库,将你的quantize.py(报错的信息里包含文件所在的绝对路径)文件替换成这个网址的文件
https://github.com/CompVis/taming-transformers/blob/master/taming/modules/vqvae/quantize.py
再运行一次又报错
我只是12g的3060,看来这不是一般人能玩得起的-_-
!!!!!!!!!!!!!!!!
现在有一个简单的办法了,感谢数学系之耻的建议,直接降精度就可以释放显存了。
!!!!!!!!!!!!!!!!
如下修改txt2img.py文件第244行
效果 -->
或者接下去看比较复杂的方法!
不知道需要多大的内存才可以,网上找到方法是用优化的库。网上还有一种办法说注释掉什么安全检查的我试了没有变化。
https://github.com/basujindal/stable-diffusion
下载完后在新的库上也是需要安装一些环境,在新的文件夹下运行下面的安装代码
pip install -e .
优化的库代码放在optimizedSD文件夹下,也保留了之前的源代码,不要搞错了。
重新安装一下这个优化库的环境,将ckpt放到对应的位置。
python optimizedSD/optimized_txt2img.py --prompt "Cyberpunk style image of a Tesla car reflection in rain" --H 512 --W 512 --seed 27 --n_iter 2 --n_samples 5 --ddim_steps 50
运行后报这个错。
查了一下,好像是最近优化的作者也换了一个库
https://github.com/basujindal/stable-diffusion/issues/175
用下面的办法就能解决了。
pip install git+https://github.com/crowsonkb/k-diffusion.git
然后打开编辑optimizedSD/ddpm.py文件,将from samplers…改成上面图片的三个from k_diffusion…
然后贫穷的显卡的电脑也就可以跑了,不说了要努力搬砖买24g的显卡了。
实测效果 -->
方案来自 梦想橡皮擦 狂飙组基于 GPT 编写的 “程秘”
Stable diffusion是一种分子动力学模拟软件,内存溢出问题可能是由于模拟系统过大或者模拟时间过长导致的。下面是一些解决内存溢出问题的建议:
减小模拟系统规模或者缩短模拟时间。内存溢出问题通常是由于需要过多的内存来存储计算结果,如果减小模拟系统规模或者缩短模拟时间可以降低内存需求,有可能解决内存溢出问题。
增加内存。如果您的计算机配置可以支持更多的内存,可以考虑增加内存。
优化代码。如果您有编程经验,可以尝试优化代码,以减少内存需求。例如,可以使用更高效的算法或者数据结构。
使用并行计算。分子动力学模拟通常是高度并行的,可以使用多线程或者分布式计算来减少单个计算节点的内存需求。