前两天自己在服务器上搞了一下stable diffusion,碰到过一个问题,当时搜了半天没找到好的方法,后来我想了下给解决了,觉得还是来记录一下,如果其他人也正巧遇到的话看到这个可以方便解决,当然,是对于linux环境下来说的,不过我觉得windows应该也一样通用
问题大概是这样的
Torch is not able to use GPU
Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
首先你要确定你是有显卡cuda的,应该都有,那这个问题其实很简单,首先用nvidia-smi看一下自己的cuda版本,比如说我的是如下这样10.2
那么你就需要下载和你的cuda版本相对应的pytorch版本,但是它默认的却是下载最新版本的pytorch,于是这样就不对应从而报错了,并且他这个是在你git的时候自动安装的并不是你自己conda install能变更的,那么需要怎么操作呢?
首先来到你的/stable-diffusion-webui/文件下,然后删除venv这整个文件夹,然后打开launch.py这个文件,找到225行左右的如下语句
torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117")
把这句注释或者删掉,然后改为对应你自己版本的语句
torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==1.12.1+cu102 torchvision==0.13.1+cu102 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu102")
那考虑到可能有人不知道该怎么写,这里再多说两句,首先去到pytorch的官网https://pytorch.org/
点击install
然后这里可以根据自己的需要选择版本,但既然出现这个问题这里的肯定就不适用了,这里我们点击图里的红字部分,下载先前版本的pytorch,这样就可以下载旧版本的了,找到对应自己cuda版本(之前用nvidia-smi看到的)的,复制安装的命令即可,这里选一个和他原来一样规则的,就是大概这种
然后改完launch.py之后保存,再去运行你部署的语句或者直接使用启动的语句
bash webui.sh --share --listen
他就会开始自动再重新下载环境需要的包,等他下载即可
另外可能没啥用,但还是说一下,我是还改了webui-user.sh等文件里面的pytorch相关语句啥的
不过这里应该没啥用,如果改了launch不行的话可以试试改其他相关的地方
那么这样这篇文章就结束了,因为不是立马记录下来的,可能存在一些问题,如果你看这篇文章遇到问题可以留言说一下