前言
前两天突然想搭建一个AI作图的,但是一脸懵逼,lgithub地址,结果全英也看不懂,只知道了Stable Diffusion,这两天去了解了下,想要网页版就Stable Diffusion WebUI,在自己笔记本上尝试搭建,找了各种教程,我这小破电脑就是各种问题,给我整崩溃了,晚上下班回来不知道看的哪个教程跟着走的时候,发现最后就快要成功了,然后。。。
![](https://img-blog.csdnimg.cn/img_convert/3eda6329c7e275cb33d7a127b6110b96.png)
没办法,只能gg,自己这18年买的笔记本,8g内存镶嵌的还不能加内存条,显卡也是老的,只能想办法,刚好看到阿里云有个试用,就试用了一个月这款
![](https://img-blog.csdnimg.cn/img_convert/bace27b9a4888d8944f577509970a8a0.png)
然后我借鉴了这个教程:https://blog.csdn.net/weixin_39955411/article/details/128435879
但是中间也发现各种问题,然后自己深夜总结下。
正文
一、机器选择
我是选择的阿里云试用机器,试用的没有GPU,如果自己买的话,记得买GPU的
试用链接这里:https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=xnfx4mew,我选择的企业,也不知道为什么就通过了,这里贴个图
![](https://img-blog.csdnimg.cn/img_convert/6ea01aeb43ceec056bf451155c461d5c.png)
![](/qrcode.jpg)
试用成功进入实例管理
![](https://img-blog.csdnimg.cn/img_convert/bace27b9a4888d8944f577509970a8a0.png)
等3分钟之后自己重置密码
![](https://img-blog.csdnimg.cn/img_convert/0627dc18c709bd15170bd589bc37f6af.png)
然后自己Xshell连接就行了。
二、环境搭建
1、安装Python虚拟环境
# 安装python环境
sudo apt install wget git python3 python3-venv
这个时候我报了下面这个错误,如果报了这个错误,就更新下APT库,如果没报这个错误,可以正常执行,就跳到2
![](https://img-blog.csdnimg.cn/img_convert/5d12002842efdc7a1cad968c3f6b1ead.png)
更新APT库
sudo apt-get update
sudo apt-get upgrade
![](https://img-blog.csdnimg.cn/img_convert/98215d53bdc95301741b1d899e842153.png)
更新APT库的时候,Xshell页面可能会出现这种,不用管,默认的直接回车就行
![](https://img-blog.csdnimg.cn/img_convert/b2de8543188ce8f794487a12d71fbbdb.png)
等最后会让你重启服务,回车之后就自动重启了下,然后再执行上面这个代码
sudo apt install wget git python3 python3-venv
此时就会成功
![](https://img-blog.csdnimg.cn/img_convert/13a963ffcaf233c0e3c1d6d804f88cc1.png)
2、创建非root用户
我最初没创建非root用户,直接用root用户去拉取文件并且执行,于是就有了这个错误
![](https://img-blog.csdnimg.cn/img_convert/392c4042005a25d556af9951fc1e8367.png)
2.1错误列举
解决办法就是创建一个非root用户,然后再去执行。这里我最初采用我参考的上面那个方法创建
adduser --home /sean/sean
但是这样我发现依旧不行,执行 bash webui.sh 的时候报错
ERROR: Can’t cd to /home/sean/, aborting…
![](https://img-blog.csdnimg.cn/img_convert/4a4b984bceb08c80725791b7906c8ea6.png)
2.2错误分析
我去看了这行代码,如果你 --home创建,他会去home目录下找你自己定义的这个用户目录,我的也就是/home/sean 目录,但是很显然没找到。
通过man useradd查看useradd命令的帮助
![](https://img-blog.csdnimg.cn/img_convert/afb75a0c7e1becd9b08023bdc8305bce.png)
我们发现,由于 /etc/login.defs 配置文件中 CREATE_HOME 没有设置为yes,所以使用 adduser username 命令时,默认不建立home下对应目录,除非使用adduser -m username
所以我们要先去修改配置文件,然后再添加用户。
2.3错误解决
我们去 /etc 目录下找到 login.defs打开该配置文件vim /etc/login.defs,使用/CREATE_HOME搜索,无该词,使用G光标移至文档末尾,使用o换行插入,输入CREATE_HOME yes然后esc退出insert模式,:wq保存并退出文档。
(这里忘了截图了)
2.4开始创建
然后我们再创建用户,此时创建的用户自动在 /home 下
adduser sean
![](https://img-blog.csdnimg.cn/img_convert/7503164aed51ebfd1322e4c6c295f23b.png)
2.5 切换到创建的非root用户
然后我们切换用户到自己刚刚创建的
su sean
![](https://img-blog.csdnimg.cn/img_convert/f1043283e09e641f813c4d0569ab31c9.png)
3、安装webui
然后开始安装webui
# 这里运行官方的自动化安装脚本webui.sh
wget https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh
![](https://img-blog.csdnimg.cn/img_convert/406cc61f46e72ab794fe5497ddeec06b.png)
拉取完成,通过ll发现文件有了,然后开始执行
bash webui.sh
![](https://img-blog.csdnimg.cn/img_convert/ad6c233af8887f7d33fa0917c5ba5066.png)
此时就可以顺利执行,自动下载了
![](https://img-blog.csdnimg.cn/img_convert/c679cc14b63ddfe31770b1b58be6d9d7.png)
![](https://img-blog.csdnimg.cn/img_convert/290aad9ee2d62a950e6edf78a4c9c8e1.png)
但是我发现我的报错了,如果报这样的错
![](https://img-blog.csdnimg.cn/img_convert/8134129213a7ef4990cced3ef474a9a2.png)
那么我们需要下载驱动,通过命令查看能下载那些
nvidia-smi
![](https://img-blog.csdnimg.cn/img_convert/f59225357a69b9a2218291fbb34f9681.png)
然后切换到管理员进行下载
![](https://img-blog.csdnimg.cn/img_convert/70cf3d299ef9eb305e086352db3bd856.png)
下载过程中还会出现这样的画面
![](https://img-blog.csdnimg.cn/img_convert/92b78882bcf7e28de1670300f646aae9.png)
成功之后再次nvidia-smi,还是报错
![](https://img-blog.csdnimg.cn/img_convert/33da73bef555c3f3c593f1e3aa260381.png)
用命令一看,没出现型号,原来我的g5没GPU,没GPU的话上面这个错误就忽略掉,那就用CPU跑吧
lspci | grep -i nvidia
![](https://img-blog.csdnimg.cn/img_convert/cb7478563de9e7b50a50c9cd984469c9.png)
由于我下来了驱动,但是没有GPU,这里给删除了下
sudo apt purge nvidia*
![](https://img-blog.csdnimg.cn/img_convert/d3b709346c7538b1880a9365751d5e2c.png)
然后再执行下 nvidia-smi,发现已经没那个错误了,驱动清除了
![](https://img-blog.csdnimg.cn/img_convert/d3c080e6cf33f39a1fe620e032220e7f.png)
4、下载训练模型
模型其实很多,根据自己需求下载:https://huggingface.co/stabilityai/stable-diffusion-2
我这里是之前随手下了个1.4的训练模型,就直接拿来测试用了
![](https://img-blog.csdnimg.cn/img_convert/cff8a8e7c1894cf43f1a1f44e413809d.png)
我将下载好的模型改了个名字后放到了这里
/home/sean/stable-diffusion-webui/models/Stable-diffusion
根据自己的用户和拉取存放地址放进去
![](https://img-blog.csdnimg.cn/img_convert/32484f4ec7040fdce898c1dfd6bb725f.png)
(也可以下载别的模型,如果下载的模型附带的有.yaml文件的话,连着文件一起改名字放进去,.yaml的文件命名需要和你的.ckpt前面一样)
番外、可能出现的错误
Can’t cd to /home/sean/, aborting…
ERROR: Can’t cd to /home/sean/, aborting…
这个错误再上面 创建非root用户 里已经给了解决方法。或者参考我参考的博主的方法:
手动下载链接: https://github.com/AUTOMATIC1111/stable-diffusion-webui
![](https://img-blog.csdnimg.cn/img_convert/484819b249d600703b1b78d3ee5b9b90.png)
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
这个错误我在上面 安装webui 里面也给了我自己的情况解决,如果是有GPU的电脑还出现这种错误,参考我参考的博主解决方法:
GPU驱动手动查找下载链接:https://www.nvidia.com/Download/index.aspx
![](https://img-blog.csdnimg.cn/img_convert/3bc5fabdde603ec96ff0f8b42907600e.png)
HTTPSConnectionPool(host=‘files.pythonhosted.org’, port=443)
ReadTimeoutError: HTTPSConnectionPool(host=‘ files.pythonhosted.org’, port=443): Read timed out.
![](https://img-blog.csdnimg.cn/img_convert/f201e1487617a6e705fec76c6c70a84f.png)
参考那位博主的解决办法,改成清华pip源:
![](https://img-blog.csdnimg.cn/img_convert/b9a1b4869efc08864307cd472c4dfffe.png)
但是这里你去编辑的时候,一定一定不要直接复制粘贴替换,不然就会报缩进错误或者制表符空格错误!
就是下面4和5的错误!
IndentationError: unexpected indent
IndentationError: unexpected indent
TabError: inconsistent use of tabs and spaces in indentation
TabError: inconsistent use of tabs and spaces in indentation
![](https://img-blog.csdnimg.cn/img_convert/e97892afa4c4c541943a91baf5fc8826.png)
4 和 5 的解决办法其实一样,用Xshell自带的XFTP,编辑launch.py文件的时候,找到要改的这两处之后,不要直接复制粘贴,只需要在参数前面加上要加的东西就行,不要换行、缩进!
-i https://pypi.tuna.tsinghua.edu.cn/simple
![](https://img-blog.csdnimg.cn/img_convert/7b10eb968085d101a641e5c5725375c2.png)
-i https://pypi.tuna.tsinghua.edu.cn/simple
![](https://img-blog.csdnimg.cn/img_convert/fa5f1384dcc82f40bd5c13c358056a87.png)
注意别加错!改好之后自己再按原有步骤去执行即可。贴一个我改好之后执行图,看下图里面的1,这里报了4的错误,我修改之后再次执行,不报 4错误了,看图里的 2 可以看出开始下载了,但是后面又报错了,报了6的错误。
![](https://img-blog.csdnimg.cn/img_convert/2b300ab68bd9f918e130806090a29439.png)
libGL.so.1: cannot open shared object file
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
![](https://img-blog.csdnimg.cn/img_convert/2c5c74178bbbd4017f5f3b22f11236c8.png)
这个错误是无法打开共享文件,环境中缺少libGL.so.1文件,也就是缺少GL库文件,出现这种错误这样解决:(一定要进入到管理员 root 用户的根目录下)
1、更新apt-get:
apt-get update
![](https://img-blog.csdnimg.cn/img_convert/a180d12de2aaaaf39b764d6f790a1631.png)
安装GL库
![](https://img-blog.csdnimg.cn/img_convert/37bd0453c1dd88a9947940ed70bd2b69.png)
中途记得 y 确认
安装过程这个样子:
![](https://img-blog.csdnimg.cn/img_convert/f6551a4ca71e032069fdde986e467964.png)
安装完成这个页面记得回车重启服务(默认即可)
![](https://img-blog.csdnimg.cn/img_convert/92b78882bcf7e28de1670300f646aae9.png)
三、启动
1、没GPU或者显存太小,使用CPU跑图
设置下环境变量
export COMMANDLINE_ARGS=--skip-torch-cuda-test
![](https://img-blog.csdnimg.cn/img_convert/3b6a195459470848bfea7b61bc0c4508.png)
然后再运行,运行时禁用half
#port 后面改为自己想设置的端口
python3 launch.py --no-half --port 8528 --listen
![](https://img-blog.csdnimg.cn/img_convert/801c0b95201c059e12f58ab4493875e6.png)
这个时候我其实出现了各种错误,这些错误有的在上面 安装 webui 的时候其实也会出现,所以做了个错误合集,放在了前面,如果这一步出错的,去看看前面错误合集解决方法。
如果错误都解决了,再次执行,就会成功,图如下:
(注意,执行一定要切换到非ROOT用户下,然后进入到目录里去执行,所有错误解决完成,最终成功,图如下)
![](https://img-blog.csdnimg.cn/img_convert/df8674c8a758bbdb5c4c265fd99da5f5.png)
2、有GPU显存足够,使用GPU跑图
venv/bin/python3 launch.py --port 9965 --listen --no-half
这里启动方法和上面没GPU的启动其实一样,只是命令不同,没GPU的只是把环境变量设置下即可。
注意,执行一定要切换到非ROOT用户下,然后进入到目录里去执行,所有错误解决完成,最终成功,图如下:
![](https://img-blog.csdnimg.cn/img_convert/df8674c8a758bbdb5c4c265fd99da5f5.png)
3、成功后放开端口
如果顺利成功,那么就会出现下面这个
![](https://img-blog.csdnimg.cn/img_convert/170edd84cc3ad5995e2bc0876e30d032.png)
此时去你的服务器,安全组把自己设置的端口放开。
![](https://img-blog.csdnimg.cn/img_convert/9fad770d3be98237601570eb521e8e9c.png)
然后浏览器输入你的服务器ip+端口即可访问
![](https://img-blog.csdnimg.cn/img_convert/180b00390cc04c9a07d69e67fb909633.png)
四、其它
1、模型更换
启动后可以发现,左上角有个模型可以选择,这里就是自己传入的训练模型,可以根据自己需要,去添加模型、删除模型,添加之后这里可以看到所有模型,然后自己选择去训练。
![](https://img-blog.csdnimg.cn/img_convert/dafd09ee1009bcedca0bb0b93c4c8f0f.png)