stable-diffusion-AI画图软件常见报错的解决方案

2023-08-01 14:18:05 4点赞 13收藏 7评论

听说AI软件造成了不少人失业(例如游戏画图工作室、电影海报工作室、语言文字编辑、撰稿人等),没有被裁的朋友都被公司要求必须会使用AI软件。即使没有被AI冲击的朋友,也是时候可以开始学点AI软件知识了,因为去年(2022年)AI软件的初步爆发是已经到来的AI技术革命的开端和前菜,未来会有越来越多的AI软件出现,利用AI软件可以轻松高效解决很多日常工作中遇到的问题。例如随意生成真人级的照片(下图是用16GB内存的Macbook Pro-M1芯片版绘制的512X712分辨率的AI图片)。

stable-diffusion-AI画图软件常见报错的解决方案

如果你觉得上图的分辨率不够高,下图AI生成的1024x1424分辨率的局部照片,是不是比上图更清晰一点。AI软件可以生成比下图更高分辨率的媲美真实照片的AI图片。AI生成以假乱真的照片都不是问题,所以游戏场景画图师、室内设计绘图师、电影海报绘图师这些画图工作者从去年底开始大量被AI画图软件取代,下岗的朋友听说还比较多的。

下一步被AI取代的工作也许是作曲家(我很好奇AI作曲有没有替代周杰伦的可能?我是周粉,万一今后作曲都是AI完成的,我是不是要变成AI粉?),文字工作者(听说被chatgpt搞下岗的文字工作者也不少),芯片设计工作者(AI可以设计芯片,请看不久前中科院的用AI设计芯片的新闻),AI其实不是近几年才出现的,其实已经应用很多很多年的天气预报采用的就是AI预测,也许那时候不叫AI预测,叫计算机模型预测?

多学点AI软件是没错的,本文介绍目前大热的stable diffusion-AI画图软件的常见报错解决方案。

stable-diffusion-AI画图软件常见报错的解决方案

1、由于模型文件出错导致的报错(换个正常的模型就正常出图,使用错误的模型文件就报错)

某天使用stable diffusion软件,发现又抽风了:

stable-diffusion-AI画图软件常见报错的解决方案

报错信息如下:


modules.devices.NansException: A tensor with all NaNs was produced in Unet. This could be either because there's not enough precision to represent the picture, Settings > Stable Diffusion /p>

网上已经有叫做一位名字叫做renaudbiborg的网友给出了这个问题的解决方案,就是加上--disable-nan-check 这个参数,怎么加呢?在终端输入下面的命令打开stable diffusion软件就行了:


python3 launch.py --xformers --disable-nan-check




stable-diffusion-AI画图软件常见报错的解决方案

也就是将--disable-nan-check接到python3 launch.py --xformers后面,命令如下:

python3 launch.py --xformers --disable-nan-check

使用python3 launch.py --xformers --disable-nan-check这个命令之后,是不报错了,但是画出来的图片是黑色的,看下图。


stable-diffusion-AI画图软件常见报错的解决方案

但是换成另外一个模型是正常的(见下图),这个奇怪的问题,上面的那位名字叫做renaudbiborg的网友已经说过了。

stable-diffusion-AI画图软件常见报错的解决方案

后来我发现,是我用u盘将这个模型文件拷贝到stable diffusion软件的model文件夹下的时候,模型文件错误导致的(u盘未退出就拔掉u盘,导致模型文件还未完全拷贝到u盘就拔掉u盘,所以就导致这个模型文件是错误的,linux系统还是建议退出u盘后再拔u盘,因为u盘写入文件的时候,你拔掉它,它不会提示你文件没有完全写入完毕的,但是你使用“弹出u盘”按钮的话,如果它还正在写入文件的话,它会提示你文件未写入完毕)。

2、勾选“面部修复”Restore faces时报错

报错信息:

RuntimeError: unexpected EOF, expected 1987209 more bytes. The file might be corrupted.

解决方案我是参考了网上一位名叫YuSitong1999 的朋友的解决方法(见下图),删除stable-diffusion-webuirepositoriesCodeFormerweightsfacelib文件夹下面的所有文件,然后重新画图(这时候要保证网络通畅,因为它会自动下载文件,如果网络不通,下次还会报错):

stable-diffusion-AI画图软件常见报错的解决方案

重新画图后,软件会自动下载下面的两个文件,无需手动下载:

stable-diffusion-AI画图软件常见报错的解决方案

3、由于英伟达显卡造成的无法使用stable diffusion(这个原因最常导致stable diffusion崩溃,特别是使用linux操作系统的朋友几乎每2个月必遇到这个问题,不要问为什么,在linux系统上使用英伟达显卡的朋友都懂)

cd到stable diffusion目录下,然后用python3 launch.py --xformers启动stable diffusion软件时,如果出现类似下图的报错,也就是出现类似Torch is not able to use GPU的报错,你就要检查一下,英伟达是否又更新驱动了,英伟达每次更新启动,Linux系统的英伟达显卡基本上就会出现一些问题(linux是个免费操作系统,人家就是希望搞点东西出来,好让那些使用linux的都改用windows,估计英伟达和windows是高级战略合作伙伴stable-diffusion-AI画图软件常见报错的解决方案)。

RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

stable-diffusion-AI画图软件常见报错的解决方案

看下图,图形那一栏,本来是nvidia却变成llvmpipe,代表要重新安装英伟达的驱动了。

stable-diffusion-AI画图软件常见报错的解决方案

要重新安装英伟达驱动,先在“软件和更新”界面(见下图)看看能否通过点击下图的“应用更改”按钮进行安装。

stable-diffusion-AI画图软件常见报错的解决方案

如果在上图无法安装的话,按照我下面介绍的四个步骤进行安装。下面四个步骤都是在“终端”进行操作。

第一步、停止nvidia驱动

sudo systemctl stop nvidia-persistenced

第二步、卸载nvidia驱动

sudo apt-get remove --purge nvidia-*

第三步、更新系统引导配置

sudo update-initramfs -u

第四步、cd到NVIDIA-Linux-x86_64-535.86.05.run文件夹下,然后执行下面的命令安装驱动程序,注意:NVIDIA-Linux-x86_64-535.86.05.run文件是在英伟达官网下载的GTX3060的最新驱动文件,你下载的文件也许不是叫NVIDIA-Linux-x86_64-535.86.05.run,反正“sudo ./你下载的驱动文件名”然后回车即可。

sudo ./NVIDIA-Linux-x86_64-535.86.05.run

运行上面的sudo ./NVIDIA-Linux-x86_64-535.86.05.run后,就会出现下图的界面,按照提示安装驱动即可。

stable-diffusion-AI画图软件常见报错的解决方案

驱动安装成功后,nvidia-smi回车会显示下图的界面,显示下图的界面代表驱动安装成功了:

stable-diffusion-AI画图软件常见报错的解决方案

4、AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'出错的解决方法

如果你用python3 launch.py --xformer来启动stable diffusion软件,出现这个问题的话,可以用下面的方法解决:

先编辑 crypto.py 文件,使用 # 注释掉有问题的行(我后来发现这一步不做也行),再用下面的两个命令升级 PyOpenSSL(运行下面的两条命令即可解决问题)。

pip install pip --upgrade pip install pyopenssl --upgrade

总结

stable diffusion是一个免费的AI绘图软件,因为免费,所以经常会遇到这样那样的问题。上面的几个报错是我在使用stable diffusion软件过程中经常遇到的,给大家一个参考。

全文完,谢谢观看。

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

展开 收起
8评论

  • 精彩
  • 最新
  • 头图美女的颜值可真是无可挑剔呢

    校验提示文案

    提交
    我用macbook画出来的 [傻笑] 花了15分钟

    校验提示文案

    提交
    收起所有回复
  • 比真人美太多

    校验提示文案

    提交
    一张英伟达显卡实现壁纸自由 [傻笑]

    校验提示文案

    提交
    收起所有回复
  • 我用Mac mini M1遇到一个特别崩溃的问题:每次第一个图能正常出,但是第二张图就开始不行了,报错:NansException: A tensor with all NaNs was produced in Unet. This could be either because there's not enough precision to represent the picture, Settings > Stable Diffusion or using the --no-half commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.

    校验提示文案

    提交
    我的m1正常哦

    校验提示文案

    提交
    收起所有回复
  • python3 launch.py --xformers --disable-nan-check之后变成了只要出错就不再能正常出图了,或者电脑休眠后就不再正常出图。简直是诡异

    校验提示文案

    提交
    m1的唯一问题就是出图比较慢

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
13
扫一下,分享更方便,购买更轻松