Stable Diffusion 针对50系显卡CUDA 12.9 的cuda error解决办法_50系列不能使用stable diffcution
笔者新买了RTX 5080,自然是要整AI 绘画的,但新的CUDA版本一直报错,终于在今天解决,于是写一篇文章来分享一下。
问题
安装完python3.10.6并安装完webui后,运行报错解决 RuntimeError: CUDA error: no kernel image is available for execution on the device
解决方法
问题在于torch无法调用cuda核心工作
可能原因一
cuda版本与当前显卡不匹配
可能原因二
版本与webui自动安装的torch版本不匹配,50系显卡一般是12.8及以上(以笔者的5080为例cuda版本为12.9),而webui.bat自动安装的版本为12.1
原因一解决办法
支持的cuda版本(就是你应该安装的版本)可通过在控制台输入nvidia-smi来查看
你已经安装的版本用nvcc --version来查看
查看两者是否对应。
CUDA驱动安装官网
https://developer.nvidia.com/cuda-downloads
按需选择即可
或者懒的话,直接下载nvidia的app,点里面的更新驱动,会自动将cuda也更新到最新版本,这样你玩游戏就不用再更新显卡驱动了,一举两得(doge)
原因二解决办法
这也是我遇到的问题,其实只要重新安装对应的torch版本即可,但关键在于,webui.bat自动安装python包时如果你没有事先用anconda创建虚拟环境,它会自动创建venv虚拟环境,也就是说你在外面安装的python包与其不互通(这一点坑了我好久)
所以要首先激活虚拟环境,最简单的办法就是在vscode中选择虚拟环境中的python.exe解释器,之后新建终端重装torch
位置: ...\\StableDiffusion\\stable-diffusion-webui\\venv\\Scripts\\python.exe
如下图,笔者就是通过pip list没有发现已安装库从而意识到问题。torch中cu后的数字就是当前torch支持的cuda版本,默认安装的后显示cu121
step1:
pip uninstall torch
step2:
进torch官网 https://pytorch.org/ 下滑,选择后复制命令在venv的终端运行,实测cuda12.9的用torch+cu128可以运行
重启webui.bat发现问题解决
小结
其实核心问题就是虚拟环境,但我发现B站知乎上的新手部署教程几乎后没有说这一步,可能是因为教程发布时是40系显卡,不会有torch版本不符的问题,因此记录一下帮大家避坑。
正篇结束
番外
顺便分享一下我在使用Stable Diffusion中遇到的小问题
1、汉化
知乎这篇文章最好 https://zhuanlan.zhihu.com/p/620316199
总结起来三步:1.下汉化插件 2.下汉化json包 3.在user-surface中选择语言(记得应用设置)
2、C站下载
我发现即使在有梯子的情况下用浏览器自带的下载速度仍然非常感人,但是这个网站可以提供的线程很多,IDM可以吃满8线程(不像某度和某迅的云盘最多只提供5个线程)
因此复制下载链接在IDM中下在速度大大提高
IDM: https://www.ilanzou.com/s/3URZERhA
下载完后用其中的IDM cracker,点击crack,再点击finish即可永久免费使用
嫌复制麻烦可以在IDM 下载\\选项\\文件类型中添加SAFETENSORS
至于选什么ckpt和lora,已经有很多大佬写了文章,我这就不赘述了,不过提供一个小tip,就是在C站不用查高下载的ckpt,而是查图片,再看看你喜欢的图片使用什么ckpt加各种lora跑出来的,这样可以更快的生成自己理想的图片。
以上