> 技术文档 > Stable Diffusion 针对50系显卡CUDA 12.9 的cuda error解决办法_50系列不能使用stable diffcution

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跑出来的,这样可以更快的生成自己理想的图片。

以上