stable diffusion学习系列1(安装部署-Windows环境)

概述

stable diffusion做为目前AI绘图内开源的最强王者,本文主要在本地PC上部署使用是由Stability AI、CompVis與Runway合作开发,采用Apache2.0开源协议。
https://github.com/Stability-AI/stablediffusion

本文用的是基于于stable diffusion封装的stable-diffusion-webui项目,简单直观能快速上手。

安装环境

软硬件 版本\型号
显卡 RTX 3060 12GB
OS Windows 11
Python 3.10.6
conda 23.5.2
显卡驱动 537.42—>对应cuda 12.2
CUDA版本 12.2
git 2.42.0
stable-diffusion-webui 1.6

安装部署

基础环境部署

git安装

https://git-scm.com/download/win

下载git安装,最新版,下一步就好。

python安装

通过conda管理和安装python,需要注意的是python版本,不要用超过3.10.x版本的python,我这里是下载的
Miniconda3-py310_23.5.2-0-Windows-x86_64
https://repo.anaconda.com/miniconda/

参考:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Dependencies

下一步安装就好,安装完成后在CMD中可以正常执行python命令

1
2
python --version
Python 3.10.12

配置conda源

开始菜单用管理员身份执行打开miniconda3
执行

1
2
conda config --set show_channel_urls yes

生成配置文件

编辑配置文件添加清华大学加速地址

1
C:\Users\wansh\.condarc   //wansh替换为你的用户名

粘贴以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

conda3-cmd中执行以下命令配置python pip下载包的软件源,这里指向阿里云

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

配置后查看

1
2
pip config list
global.index-url='https://mirrors.aliyun.com/pypi/simple'

CUDA配置

查看显卡安装的驱动对应的CUDA版本
在conda3-cmd中执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
nvidia-smi.exe
Fri Oct 6 15:14:48 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 537.42 Driver Version: 537.42 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3060 WDDM | 00000000:2B:00.0 On | N/A |
| 0% 53C P8 16W / 170W | 5441MiB / 12288MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |

对应的是12.2,去Nvidia官网下载对应的CUDA版本安装
https://developer.nvidia.com/cuda-toolkit-archive

终端命令配置

配置代理需要拉取stable-diffusion-webui,需要conda3-cmd能够访问github

1
2
set https_proxy=http://127.0.0.1:33210
set http_proxy=http://127.0.0.1:33210

验证

1
curl -I www.google.com

状态码返回200表示ok

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Cache-Control: private
Connection: keep-alive
Content-Security-Policy-Report-Only: object-src 'none';base-uri 'self';script-src 'nonce-EsiPFL30vCI9foliBMkTLA' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
Content-Type: text/html; charset=ISO-8859-1
Date: Fri, 06 Oct 2023 07:32:54 GMT
Expires: Fri, 06 Oct 2023 07:32:54 GMT
Keep-Alive: timeout=4
P3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Proxy-Connection: keep-alive
Server: gws
Set-Cookie: 1P_JAR=2023-10-06-07; expires=Sun, 05-Nov-2023 07:32:54 GMT; path=/; domain=.google.com; Secure
Set-Cookie: AEC=Ackid1QHNMFx6j8Bfaco7KM-Wc2Il-3JpKjmJcRYM3QqzErZfcup19XB43Y; expires=Wed, 03-Apr-2024 07:32:54 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
Set-Cookie: NID=511=ksuU76xakl0AZHIz-SjvI3pBnThANk3EBkMB7E4ZD1JNMxpQI8pg8rttvpYMdMqJSgfTwVt0Dqv-5V5p4uwnCRgb-KA_iOqHQ9lNPcsi0PjgXVbWAYhVIG2oCxmw_Jfw5XhA6QbDbpQcMq3zS9zkjx9gUwgHS-Howlm5ip9uU84; expires=Sat, 06-Apr-2024 07:32:54 GMT; path=/; domain=.google.com; HttpOnly
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 0

stable-diffusion-webui部署

拉取stable-diffusion-webui代码
需要电脑
在conda3-CMD中执行E: 切换到E盘,按自己环境能提供的磁盘执行,因为装C盘会占用很多空间

clone代码

1
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git -b v1.6.0

下载stable diffusion的训练模型

sd-v1-4.ckpt

https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/tree/main

模型是用于AI绘图的元素素材库

下载后放置到E:\stable-diffusion-webui\models\Stable-diffusion目录。E盘根据部署盘符替换

在conda3-cmd执行

1
2
cd stable-diffusion-webui
webui-user.bat

系统会自动执行下载对应的依赖包

执行成功会自动打开浏览器访问http://127.0.0.1:7860/

输入prompt生成图片

当然也可以使用此prompt生成器进行
https://tinygeeker.github.io/menu/autocue/#/?from=tencent

常见问题

1、RuntimeError:Torch is not able to use GPU

这个原因主要是因为pytorch没有连接到GPU,cuda与torch版本不兼容导致的
网上有通过参数跳过,但这样就变成用CPU生成了,效率太差。所以还是要成根本上解决。
可以进行以下操作进行

1
先用pip uninstall torch

通过https://pytorch.org/get-started/locally/下载合适的torch版本,我这里是NVIDIA cuda12.2,但torch还没有对应的12.2版本,直接用11.8、12.1也能正常运行,目前1.6最高支持到11.8,可以向下兼容,正常pip配置了正常的源可以自动下载。

验证

参考链接:

https://zhuanlan.zhihu.com/p/610628741

https://www.uisdc.com/47-stable-diffusion-models

https://zhuanlan.zhihu.com/p/622410028
https://aitechtogether.com/python/82781.html