原文地址:矿卡P104再就业AI绘图(附centos安装cuda及配置stable diffusion教程) – 哔哩哔哩
早就听说p104用的gtx1080同款核心,只是阉割了编解码与视频输出,cuda还在,有8G显存,一看就很适合ai画图,当然,150不到的超低廉价格才是笔者购买它的决定性原因!
废话不多说,在linux上使用该显卡安装stable diffusion也踩了不少坑,本文权作记录。
第一个问题就很棘手,该显卡没有视频输出接口,因此网上大多教程都是使用核显或是双显卡进行输出,但笔者电脑的cpu并没有核显,另一个显卡插槽也只支持a卡交火,因此陷入麻烦之中。之后的解决方式是使用一台装有centos的服务器进行配置,似乎是linux系统的问题,即使不插显卡也可以正常开机(通过ssh操作),因此在未装驱动、无法输出视频信号的情况下,得以进行相关配置。
确保硬件没有问题后,可通过lspci | grep NVIDIA 命令查看是否识别(如图1),一般情况下都是使用lspci | grep VGA命令来搜索显卡,但可能是该显卡并没有信号输出接口的问题,该命令无法正常使用
图一:识别到p104了
接下来使用lspci -vs 04:00.0来查看下显卡详细信息(04:00.0是上一条命令中获取的显卡id,最左边那个)
显卡详细信息
其中Kernel driver一项默认并不是nvidia(因为驱动未安装),而是一个linux默认的显卡驱动,该驱动有很大的性能损失,几乎无法使用,因此我们需要先安装显卡驱动
虽然linux上安装显卡驱动是一件很麻烦的事,但更麻烦的是p104根本没有官方的linux驱动,这就是笔者碰到的第二个大问题。不过所幸ai画图只需要cuda就可以使用,因此笔者抱着试试看的心态,先尝试安装了cuda(事实证明,这样做确实没问题)
安装cuda
cuda的安装较为顺利,根据官方文档的指示一步一步来就可以了(笔者采用的是rpm包安装的方式)
官网地址:https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#rpm-installer
值得注意的是在此之前要确定好自己的系统版本及架构(如笔者的是centos x86_64),以及预留好足够的硬盘空间,因为cuda确实挺大的
安装较为缓慢,但所幸没出什么错误。
安装并重启后nvidia-smi命令就可以使用了,驱动信息中也显示是nvidia驱动,算是意外之喜。不过赶紧该命令无法正确检测显存占用,不知道是驱动问题还是显卡问题,暂且搁置。
安装stable diffusion webui
安装stable diffusion也是一个体力活,中间出现了n多错误
原项目的教程十分简单
1. 根据系统版本下载几个工具包
# Debian-based:
sudo apt install wget git python3 python3-venv
# Red Hat-based:
sudo dnf install wget git python3
# Arch-based:
sudo pacman -S wget git python3
2. 运行此命令即可
bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)
但实际上完全不行,会出现各种问题,因为该项目作者把安装依赖、配置文件路径什么的全部打包写在了上面那个脚本里,原则上是方便了新手,但因为命令封装的缘故,报错了很难定位到具体问题,笔者不得不翻源码进行改动才安装成功,因此不建议使用该代码,而是务必参考下列步骤!
必须安装python3.10,笔者原本使用的python3.6,创建出来的虚拟环境并没有activate程序,会导致错误,虽然再StackOverflow上有相应的解决方法,但简单起见还是直接安装3.10吧,此处附centos编译安装python3.10的参考链接:https://zhuanlan.zhihu.com/p/491817098
如果还存在问题,请参考该issue
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/1120
对pip进行换源,似乎是安装nvidia驱动的问题,之前已经换过的pip源被加了一个nvidia的网站,卡的要死还会导致安装失败,因此请去/etc/目录将源修改回来!建议改成阿里源
清理/home/下的用户文件夹,并且不要使用root运行代码(当然,该命令也会拒绝),默认的保存地址就在用户文件夹下,请确保有足够的空间(30G+)
直接运行
bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)
大概率会报错,但此时项目代码已经下载下来了,于是cd进该文件夹,下图为参考路径
文件路径
5.编辑launch.py文件,删去其中的hash约束,如图(第三个变量,*_commit_hash那个全删掉)
commit_hash
该hash似乎是为了稳定性限制了git clone的分支,但实际上会导致错误(无法找到该分支),删去后会clone最新的,实测运行没有问题
6. 可以直接再次运行代码,也可以进入虚拟环境先把python的各种依赖装了(自行安装的话可以看到进度,也方便错误排查)
后者的话:
source ./venv/bin/activate
pip install -r requirement.txt
pip install -r requirement_version.txt
7.到这一步基本上不会出问题了,直接运行./webui.sh即可,默认仅可本机通过7860端口访问,如果想要外网访问的话,在webui.py文件开头加一句 cmd_opts.share = True即可
here
折腾了快一天,累死我了!!!!(虽然大部分时间在等安装……)