Stable Diffusion是开源的AI绘画工具,是一种强大的文本到图像生成模型。他能画出什么图呢?
我随便找了一张图片,这是AI画的,你觉得怎么样?

我个人对这种工具很有兴趣,所以我打算学习一下。我会把我的学习记录发表在这里,首先从安装开始。
前置条件
Windows下安装Stable-Diffusion-Webui(以下简称sd)的前置条件:
- 最好有1T的硬盘空间
- 显卡至少有4G的显存,最好是N卡(本文只介绍N卡的情况)
安装步骤
安装最新版的Python
去python的官网,https://www.python.org/ ,将鼠标放到Downloads菜单上就能看到下拉菜单的内容,我这里看到的是Python3.11.3 Windows版。

我*载下**下来是python-3.11.3-amd64*ex.e**,双击安装。安装时注意勾选Add Python to environment variables。

安装完之后,按win+r,运行命令行cmd

出现了命令行之后输入python,顺利的话,应该就能看到下图的样子。Python+版本号3.11.3 然后就是>>>提示符。

如果没有出现这个结果,那么应该是环境变量没有设置好,上面提醒的打勾选项没有做。简单的方法是重装一遍,这次记得打勾。如果你想手动设置一下环境变量,请看下面的详细步骤。
在我的电脑上右键,点“属性”

再在画面右边的菜单中选择高级系统设置

然后点击环境变量

这个画面中有上下两个可以设置环境变量的地方。
如果你只想要设置你这个用户的环境变量(假设你的电脑还有其他人使用),你就在上面的Path里面设置
如果你想要所有的用户都能用这个环境变量,那么就在下面的框子里面设置。

双击Path这一行或者点击Path之后点击编辑,就会进入下图的窗口,在这里像我一样把Python的安装路径填进去就行了。我安装在D盘下面,你需要填写你的安装路径。

如果你的电脑中没有Path环境变量怎么办?新建一个就行了,后面的步骤是一样的。
设置完环境变量之后,记得重新开一个控制台窗口,再测试Python。之前那个控制台窗口是不会更新你刚刚设置的环境变量的。
安装git
到git的官网 https://git-scm.com/或者 https://gitforwindows.org/ 去*载下**git。
安装非常简单,就是一路next下一步就行。
*载下**Stable-diffusion-webui
我设置的*载下**位置是G盘。
因此我打开命令行工具,输入
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

这样做的话,以后要更新版本,只要进入g:\\stable-diffusion-webui\ 用git pull 命令就可以更新。
如果有魔法的话,会很快,没有的话,可能会很慢,或者超时,如果超时,重试几次。
*载下**下来之后开始安装,最折腾的过程就要开始了。本文的重点就是分享安装过程中的错误处理。
用cd命令进入stable-diffusion-webui目录

我们可以用dir命令看一下目录里面的文件:

编辑切换为居中
添加图片注释,不超过 140 字(可选)
注意上图中我用红色框出来的文件,这就是我们要运行的启动程序。
我们输入webui-user.bat +回车运行该文件。
这个程序首先会在stable-diffusion-webui下建立一个目录,venv,这是python的虚拟环境。
接下去如果一路没有任何出错,运行到最后一步,出现了Running on local URL: http://127.0.0.1:7860

那么恭喜你,你真是天选之子,你可以到浏览器中输入这个地址,就能看到sd的界面。
当如果你和我一样,是一个倒霉蛋,那么你可能会遇到下面的问题:
问题1: Pyhton的版本不兼容

一开始如果出现这个警告,那么就说明我们安装的Python的版本号和sd要求的python版本不一致。我这里安装的是3.11.3,sd要求的是3.10.6,我的版本号高于sd要求的版本号,因此问题不大。我只要照着最后一句提示的那样,在运行webui-user.bat 后面加上 空格 --skip-python-version-check就可以了。
如果你用的版本号低于要求的,那么请升级。
问题2:安装某个程序时出现timeout
这是因为网络问题,python安装程序是通过pip,pip默认从国外服务器*载下**,速度很慢,经常超时。我们要改一下pip的源,从国内服务器*载下**,速度就会飞起来。
方法1: 在win+r打开运行窗口,输入%appdata% 回车,一般会定位到你的用户名/AppData/Roaming,在这个目录中建立一个pip目录(如果没有的话),在该目录下新建一个文件pip.ini

文件内输入下面4行内容。
[global]
timeout=6000
index-url=https://mirrors.aliyun.com/pypi/simple
trusted-host = mirrors.aliyun.com
我在华东地区,所以阿里云的源速度很快。如果你感觉速度不快,可以换其他源:
- 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
- 中国科学技术大学 : https://pypi.mirrors.ustc.edu.cn/simple
- 豆瓣:http://pypi.douban.com/simple/
- 阿里云:http://mirrors.aliyun.com/pypi/simple/
注意,下面出现的问题,都要将程序安装到stable-diffusion-webui的虚拟环境中。也就是 g:\\stable-diffusion-webui\venv之下。
问题2:安装GFPGAN失败
这个问题是*载下**不了github上的GFPGAN,可能是网络问题,也可能是其他问题。
解决的办法是 手动*载下**到本地并安装 。
- 从github把GFPGAN的目录*载下**下来,可以使用git clone https://github.com/tencentarc/gfpgan.git 。*载下**到g:\\stable-diffusion-webui\venv\Scripts\目录下。这个地址是我电脑中的地址,请根据你自己的sdw目录来调整位置。
- 在命令行下cd到 g:\\stable-diffusion-webui\venv\Scripts\GFPGAN 下
- 把GFPGAN安装到stable-diffusion-webui创建的虚拟环境中之前,需要先安装依赖。输入g:\\stable-diffusion-webui\venv\Scripts\python*ex.e** -m pip install basicsr facexlib
- 再使用g:\\stable-diffusion-webui\venv\Scripts\python*ex.e** -m pip install -r requirements.txt 安装依赖
- 最后使用g:\\stable-diffusion-webui\venv\Scripts\python*ex.e** setup.py develop来安装GFPGAN
安装完毕后,回到stable-diffusion-webui目录下,运行webui-user.bat,发现不再要求安装GFPGAN。
这个方法同样可以应用到其他github上无法安装的模块。
问题3:安装Clip失败
和上面的GFPGAN类似的问题。sdw中的clip其实是open_clip,不能用pip install clip安装。
解决的办法还是从github上手动*载下**到本地安装。
- 和上面的GFPGAN类似,git clone https://github.com/mlfoundations/open_clip.git 到g:\\stable-diffusion-webui\venv\Scripts\目录下。
2. 在命令行中,cd 到 g:\\stable-diffusion-webui\venv\Scripts\open_clip下
3. 使用g:\\stable-diffusion-webui\venv\Scripts\python*ex.e** setup.py build install 安装open_clip
问题4: 找不到requirements_versions.txt文件
解决方法:打开launch.py 文件,找到下面三行。

在第一行最前面加上一个#,注释掉第一行,然后把第二行前移4个空格,和第三行对齐。

问题5:安装requirements_versions.txt时scikit-image出错
打开requirements_versions.txt,找到scikit-image。原先的要求是必须使用0.19.2版本,所以用了双等于==。这种情况下,编译总是失败。

我改成了>=,变成scikit-image>=0.19.2 很容易就通过了。
问题6:因为修改了文件,所以以后升级时使用git pull失败
先运行git reset HEAD <文件名>恢复到之前的状态。然后再用git pull 更新。
至此,安装成功。
出现了Running on local URL: http://127.0.0.1:7860的字样。
我们到浏览器中输入:http://127.0.0.1:7860就能看到Stable-diffusion-webui的界面。
