电脑基础 · 2023年4月18日

本地从0搭建Stable Diffusion WebUI及错误记录

从0开始搭建本地Stable Diffusion WebUI环境

一.环境配置

1.使用的电脑配置

系统 Windows10
处理器 英特尔 i7
内存 24GB
显卡 NVIDIA GTX 1060(6GB)

2.镜像源

阿里云
清华大学
中国科技大学

3.电脑环境变量配置

我的电脑–属性–高级系统设置–系统属性(高级)–环境变量
本地从0搭建Stable Diffusion WebUI及错误记录

新建环境变量,点击确定
本地从0搭建Stable Diffusion WebUI及错误记录

编辑path,点击新建
本地从0搭建Stable Diffusion WebUI及错误记录

增加NVSMI_HOME配置
本地从0搭建Stable Diffusion WebUI及错误记录

二.软件下载及安装

1.安装git

下载git
本地从0搭建Stable Diffusion WebUI及错误记录

下载好双击安装,点击next一路默认安装。
打开cmd命令窗口输入

git --version

2.下载miniconda

下载miniconda
本地从0搭建Stable Diffusion WebUI及错误记录

windows电脑选择如下

本地从0搭建Stable Diffusion WebUI及错误记录

2.1.安装

双击安装
本地从0搭建Stable Diffusion WebUI及错误记录

本地从0搭建Stable Diffusion WebUI及错误记录

本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录

本地从0搭建Stable Diffusion WebUI及错误记录

本地从0搭建Stable Diffusion WebUI及错误记录

打开miniconda
本地从0搭建Stable Diffusion WebUI及错误记录

conda -V

本地从0搭建Stable Diffusion WebUI及错误记录

conda config --set show_channel_urls yes
# 清除索引缓存
conda clean -i
# 输入y

本地从0搭建Stable Diffusion WebUI及错误记录

3.搭建sdwebui python环境

这里用的python3.10

conda create --name sdwebui python=3.10.9

本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录
输入y
本地从0搭建Stable Diffusion WebUI及错误记录

此处升级了conda

conda update -n base -c defaults conda

本地从0搭建Stable Diffusion WebUI及错误记录
输入y
本地从0搭建Stable Diffusion WebUI及错误记录

4.激活环境

# 输入
conda env list
conda activate sdwebui

本地从0搭建Stable Diffusion WebUI及错误记录

5.升级pip

将pip升级

python -m pip install --upgrade pip

设置镜像源(原先用的清华镜像,此处设置阿里云镜像)

pip config set global.index-url  http://mirrors.aliyun.com/pypi/simple/

6.安装CUDA

CUDA是NVIDIA显卡执行算法需要用的程序

6.1先检查电脑的CUDA版本

在miniconda命令窗口输入nvidia-smi

nvidia-smi

本地从0搭建Stable Diffusion WebUI及错误记录
或者打开NVIDIA控制面板–帮助–系统信息

本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录

6.2下载对应版本CUDA

CUDA下载

本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录
此处下载10.0版本

本地从0搭建Stable Diffusion WebUI及错误记录

本地从0搭建Stable Diffusion WebUI及错误记录

6.3安装CUDA

下载完,双击安装包,选择自定义的目录(不选择使用默认位置,确保空间足够即可)
本地从0搭建Stable Diffusion WebUI及错误记录
等待执行完成
本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录

本地从0搭建Stable Diffusion WebUI及错误记录

Visual Studio 取消勾选(本电脑未安装visual studio)

本地从0搭建Stable Diffusion WebUI及错误记录
取消勾选NVIDIA GeForce和Driver components,当前版本已经比安装的要高了,就不安装低版本了
本地从0搭建Stable Diffusion WebUI及错误记录
默认的安装位置
本地从0搭建Stable Diffusion WebUI及错误记录

安装失败。。。。

6.4.升级驱动

NVIDIA驱动下载
本地从0搭建Stable Diffusion WebUI及错误记录
知道电脑配置可以手动搜索
本地从0搭建Stable Diffusion WebUI及错误记录

下载NVIDIA Studio驱动程序,下载前查看NVIDIA Studio对应的版本和电脑的配置是否对应。
本地从0搭建Stable Diffusion WebUI及错误记录
安装
本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录

等待安装完成
本地从0搭建Stable Diffusion WebUI及错误记录

6.4.1 检查NVIDIA版本

打开NVIDIA控制面板,检查版本
本地从0搭建Stable Diffusion WebUI及错误记录
此时要求的CUDA版本为12.1版本了,因此需要重新下载12版本的CUDA
本地从0搭建Stable Diffusion WebUI及错误记录
命令行检查,CUDA Version也为12.1版本
本地从0搭建Stable Diffusion WebUI及错误记录

6.5 重新下载新版CUDA

重启一下电脑

打开CUDA页面,找到版本为12.1,重新下载
本地从0搭建Stable Diffusion WebUI及错误记录
安装选择默认路径,自定义安装,只安装CUDA,其他的驱动已经是新版了不需要重复安装。

本地从0搭建Stable Diffusion WebUI及错误记录

Nsight VSE、Visual Studio 取消勾选
本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录

7.下载stable-diffusion-webui

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

或者直接下载压缩包

本地从0搭建Stable Diffusion WebUI及错误记录

8.下载训练模型Stable Diffusion

Stable Diffusion下载地址
下载模型,此处选择stable-diffusion-2-1版本

本地从0搭建Stable Diffusion WebUI及错误记录

此处点击stabilityai/stable-diffusion-2-1,点击右侧的下载按钮
本地从0搭建Stable Diffusion WebUI及错误记录

将下载的v2-1_768-ema-pruned.safetensors文件复制到models/Stable-diffusion模型文件夹下
如G:\sd_webui\models\Stable-diffusion,具体路径根据实际情况

三.运行webui

打开miniconda窗口,进入stable diffusion的解压目录

1.执行webui-user.bat

本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录

1.1修改launch.py

执行了几次失败,用文本编辑器打开launch.py文件(解压的文件夹下)

本地从0搭建Stable Diffusion WebUI及错误记录

搜索prepare_environment,找到对应位置
将后面的地址加上代理地址https://ghproxy.com/
本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录

保存后,继续执行webui-user.bat

1.2报错No matching distribution found for gradio==3.23

本地从0搭建Stable Diffusion WebUI及错误记录

错误:ERROR: No matching distribution found for gradio==3.23

1.3更换新源(之前搭建用的清华镜像源)

pip config set global.index-url  http://mirrors.aliyun.com/pypi/simple/

1.4升级下pip

G:\sd_webui\venv\Scripts\python.exe -m pip install --upgrade pip

本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录

1.5修改webui-user.bat文件

报错信息
错误:No module ‘xformers’. Proceeding without it.

编辑器打开webui-user.bat文件,增加一行

set COMMANDLINE_ARGS=--xformers

本地从0搭建Stable Diffusion WebUI及错误记录

2.再次执行webui-user.bat

修复完错误问题后,再次运行。
本地从0搭建Stable Diffusion WebUI及错误记录

四.使用

4.1 访问webui

打开图中的URL地址:http://127.0.0.1:7860

本地从0搭建Stable Diffusion WebUI及错误记录

设置
本地从0搭建Stable Diffusion WebUI及错误记录

4.2 安装扩展

4.2.1 安装扩展

若通过url方式安装失败,可以下载压缩包,解压安装。

方式一:Available 页面安装

点击Extensions,取消localization勾选,下面会列出来很多extension。
本地从0搭建Stable Diffusion WebUI及错误记录
若取消localization勾选没显示,则在Extension index URL加代理地址,在点击"Load from"按钮。
本地从0搭建Stable Diffusion WebUI及错误记录
在下面找到中文安装包,点击右侧Install按钮
本地从0搭建Stable Diffusion WebUI及错误记录

方式二:Install from URL(略)

也可通过Install from URL 方式安装,粘贴url后点击Install按钮。
本地从0搭建Stable Diffusion WebUI及错误记录

方式三:下载压缩包方式安装

扩展包地址

中文汉化包地址

打开sd-webui-controlnet地址,点击Code按钮,点击Download ZIP下载ZIP包
本地从0搭建Stable Diffusion WebUI及错误记录

本地从0搭建Stable Diffusion WebUI及错误记录
解压到webui项目的extensions-builtin目录下
本地从0搭建Stable Diffusion WebUI及错误记录
点击页面的Apply and restart UI 按钮。
本地从0搭建Stable Diffusion WebUI及错误记录
点击Extensions — Installed查看已经存在。
本地从0搭建Stable Diffusion WebUI及错误记录

安装汉化包,安装方法同上(略)
本地从0搭建Stable Diffusion WebUI及错误记录

本地从0搭建Stable Diffusion WebUI及错误记录

4.2.2 生效extension

生效汉化包

安装完成后,点击setting----->User interface---->Localization (requires restart)(选择中文)
本地从0搭建Stable Diffusion WebUI及错误记录
本地从0搭建Stable Diffusion WebUI及错误记录
点击最上方的Apply setting 按钮,点击Reload UI按钮
本地从0搭建Stable Diffusion WebUI及错误记录

本地从0搭建Stable Diffusion WebUI及错误记录

五.体验

输入water,敲CTRL+ENTER或者右侧的Generate按钮
同时可以在后台看到正在运行

本地从0搭建Stable Diffusion WebUI及错误记录

效果

本地从0搭建Stable Diffusion WebUI及错误记录

六.创建一键启动的脚本

进入F盘(根据实际情况),新建一个文件名为startWebUI.bat文件。以后开机只要执行这个脚本就能启动sdwebui项目了。

用文本编辑器编辑如下内容


rem 激活miniconda环境
call C:\ProgramData\miniconda3\Scripts\activate.bat C:\ProgramData\miniconda3
rem 激活sdwebui
::conda activate sdwebui
rem 进入webui工程目录G盘
G:
cd sd_webui
rem 启动sdwebui应用程序
:: 注释call方式调用,使用start方式
::call webui-user.bat
::启动webui并调用浏览器无痕窗口自动打开webui的地址
:: 第二个start的第一个参数是谷歌浏览器路径,第二个参数--incognito是无痕模式,第三个参数是webui启动后默认地址
start webui-user.bat && start C:\Users\administrator\AppData\Local\Google\Chrome\Application\chrome.exe  --incognito "http://127.0.0.1:7860"

打开cmd命令窗口,执行

startWebUI.bat

此时会新打开命令行窗口执行webUI,并打开浏览器无痕窗口访问webUI的地址,等待webUI启动完成后,浏览器自动显示页面。(若webUI正常启动后,浏览器无法访问,则刷新一下)

本地从0搭建Stable Diffusion WebUI及错误记录

原先call方式调用参考
本地从0搭建Stable Diffusion WebUI及错误记录

七.其他错误记录

之前运行正常,突然失败错误如下
RuntimeError: CachingAllocator option max_split_size_mb too small, must be > 20
本地从0搭建Stable Diffusion WebUI及错误记录
解决方法
修改webui-user.bat文件增加配置,当前电脑显卡内存6G,因此先设置6G。

set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:6144