让AI更听话:stable-diffusion出错图或报错的解决方案

2023-05-06 16:30:34 8点赞 28收藏 9评论

stable-diffusion这款AI画图软件可以生成非常非常接近照片,甚至让你分不清到底是照片还是真人的图像,例如下图:

让AI更听话:stable-diffusion出错图或报错的解决方案

但是Stable-diffusion这款AI作图软件不是万能的,如果画出下面这样的错误的人物肖像图,怎么解决呢?请看下文的解决方案。

让AI更听话:stable-diffusion出错图或报错的解决方案

报错1:

Could not load library libcudnn_cnn_infer.so.8. Error: libnvrtc.so: cannot open shared object file: No such file or directory

网上已经有解决方案了(看下图):

让AI更听话:stable-diffusion出错图或报错的解决方案

这位叫做mjj的网友是建议用下面的两条命令来解决:

cd yourenv/lib/python3.10/site-packages/torch/lib

ln -s libnvrtc-672ee683.so.11.2 libnvrtc.so

也就是先是cd到yourenv/lib/python3.10/site-packages/torch/lib目录下,然后运行下面的那条命令。

关键是,

yourenv/lib/python3.10/site-packages/torch/lib这个目录怎么找到?

这要考验我们的linux功力了,我依稀记得使用find这个命令来找(所以平时多读点书,要使用的时候,会用得上的让AI更听话:stable-diffusion出错图或报错的解决方案 )。

我忘记find这个命令怎么用了,于是搜索引擎查找find的用法,我用sudo find -name torch这条命令来查找名字为torch的文件夹:

让AI更听话:stable-diffusion出错图或报错的解决方案

竟然找到了三个带有torch名字的文件夹:

./home/yasden/anaconda3/lib/python3.8/site-packages/torch
./home/yasden/anaconda3/lib/python3.8/site-packages/torch/include/torch
./home/yasden/anaconda3/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch

只能一个个来试了,首先试验第一个文件夹,也就是:

./home/yasden/anaconda3/lib/python3.8/site-packages/torch

cd到/home/yasden/anaconda3/lib/python3.8/site-packages/torch文件夹下面:

让AI更听话:stable-diffusion出错图或报错的解决方案

一开始我还是用ls -a来查看,看看torch文件夹下面有没有lib这个目录,后来发现真麻烦,我直接继续cd lib就行了,如果下面有lib,就cd进去了,如果没有,就会报错的。

让AI更听话:stable-diffusion出错图或报错的解决方案

结果发现,torch下面真的有lib这个目录,之后就是用下面的命令回车:

ln -s libnvrtc-672ee683.so.11.2 libnvrtc.so

然后cd到stable-diffusion的目录下,用下面的命令来开启stable-diffusion软件:

python3 launch.py --xformers

让AI更听话:stable-diffusion出错图或报错的解决方案

我的神舟旧笔记本,cpu是i5-9400,64GB内存英伟达1650-4G显存的显卡,ubuntu这个linux系统下画一幅白色小狗的AI图:

在Could not load library libcudnn_cnn_infer.so.8. Error: libnvrtc.so: cannot open shared object file: No such file or directory这个报错修复之前,是无法AI画图的。

让AI更听话:stable-diffusion出错图或报错的解决方案

报错2:

TypeError: 'NoneType' object is not subscriptable

这个报错一般是在stable-diffusion软件成功安装并运行后,出现的。出现TypeError: 'NoneType' object is not subscriptable的原因,一般是你的显卡的显存太小导致的,如果你的GPU显存比较小,建议不要画太大的图片,如果你只有4GB的显存,又要画2000*3000的图片,肯定会报错的。将画面调小一点,例如调成512*512或者512*768对于4GB显存来说一般都没问题。

解决方法:如果你调低了分辨率,发现还是报这个错,首先Ctrl+C将“终端”终止,

然后cd到stable-diffusion的目录下,用下面的命令来重新开启stable-diffusion软件:

python3 launch.py --xformers

这时候应该就不会报错了。

让AI更听话:stable-diffusion出错图或报错的解决方案

另外,如果你勾选了Restore faces(见上图),也很有可能由于显存不足而报TypeError: 'NoneType' object is not subscriptable的错误。不要勾选Restore faces就一般不会报错了。

显存小,限制了stable-diffusion的发挥,如果你要买显卡,至少买12GB显存以上的英伟达显卡,这样才能愉快的使用stable-diffusion。

报错3:

stable diffusion经常画出错误的人物图,或者人物图像扭曲,或者画出不正常的图像。

让AI更听话:stable-diffusion出错图或报错的解决方案

画出上图这样的图像,一般来说,就是你的Lora小模型和大模型之间不匹配造成的,你可以将Lora去掉,如果Lora去掉之后,画出来的图片是正常的,代表你的Lora小模型,和大模型不匹配。换个大模型,或者换个Lora试试看吧,一般都能解决问题。

报错4:

torch.cuda.OutOfMemoryError: CUDA out of memory.

这个报错是典型的显存不足,例如我的4GB显存的显卡,画968*968分辨率图像是正常的,画968*1152的分辨率图像也是正常的,画968*1264图像就报上面的错误了。

报错5:

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cpu and cuda:0! (when checking argument for argument index in method wrapper_CUDA__index_select)

Time taken:0.02s

Torch active/reserved: 17/54 MiB,Sys VRAM: 179/3904 MiB (4.59%)

这个报错原因是软件分不清用cpu还是用GPU来画图,一般来说,Ctrl+C将“终端”终止,然后cd到stable-diffusion的目录下,用python3 launch.py --xformers来重启软件,都能解决这个问题。

总结

1、如果你要买显卡,建议至少买12GB显存以上的英伟达显卡,这样才能愉快的使用stable-diffusion。请记住AI画图,显存越大越好。

2、不建议购买A卡或者Intel的显卡来使用stable-diffusion,除非你有比专业程序员更强的解决问题的能力。

3、苹果的M1芯片支持stable-diffusion软件画图,我的M1芯片的macbook只有16GB内存(苹果这款笔记本的显存是和内存共享的),悄悄告诉你:16GB内存的M1芯片Macbook Pro笔记本比4GB显存的英伟达显卡笔记本更好用,因为4GB显存的英伟达显卡画968*1264图像就报错误了(爆显存),但是16GB内存的M1芯片Macbook Pro我试过画更高分辨率的图都不会爆显存(甚至勾选脸部修复Restore faces都能顺利运行,但是4GB显存的英伟达是无法勾选Restore faces的)。如果你打算买M1芯片Macbook Pro,我建议买64GB或更大内存的,AI画图会更爽。

4、显存太小,AI生成的图片512*512分辨率太低怎么办?stable-diffusion有的是将512*512图片变成5120*5120的方法,下回在说,敬请关注。

听说很多人喜欢AI生成的虚拟人物听说很多人喜欢AI生成的虚拟人物

全文完,谢谢观看。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
9评论

  • 精彩
  • 最新
  • 最近AI美女特多啊

    校验提示文案

    提交
    以后AI生产的图片会比单反拍的要多 [傻笑]

    校验提示文案

    提交
    收起所有回复
  • 哇,大佬可是制图高手

    校验提示文案

    提交
    玩起来就是了 [傻笑]

    校验提示文案

    提交
    收起所有回复
  • 收藏了,这个厉害了。

    校验提示文案

    提交
    感谢支持 [傻笑]

    校验提示文案

    提交
    收起所有回复
  • 大佬研究的太明白了,先收藏了

    校验提示文案

    提交
    感谢支持 [傻笑]

    校验提示文案

    提交
    收起所有回复
  • 大佬好厉害,膜拜一下

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
28
扫一下,分享更方便,购买更轻松