当前位置:AIGC资讯 > AIGC > 正文

【AI绘画】本地部署Stable Diffusion Web UI

近几年AI发展迅猛,今年更是大爆发,除了爆火的大模型ChatGPT以外,AI绘画也有很大的进步,目前,Stable Diffusion图像生成效果相当惊人,可以生成逼真的人像、风景、物品图片,还可以将图片转换为不同风格。Stable Diffusion Web UI项目是 Stable Diffusion 模型算法的 Web 版,提供Web交互页面,方便模型运行。本文介绍在Windows系统上本地部署Stable Diffusion Web UI的方法。

目录

环境准备 CUDA toolkit安装 安装cuDNN 安装Anaconda 安装pytorch虚拟环境 安装pytorch 安装Stable Diffusion web UI 下载仓库 安装依赖包 启动webui 安装汉化插件 简单使用 文生图 Stable Diffusion模型 模型下载 示例 最后

环境准备

由于Stable Diffusion基于深度学习框架PyTorch,需要安装PyTorch,当前pytorch最高支持CUDA 11.8:

本文主要使用的环境如下:

Windows11 CUDA 11.8,显卡为NVIDIA RTX 4080 Python 3.10.6

下面介绍环境安装配置方法。

CUDA toolkit安装

电脑需有NVIDIA显卡,没有也可以使用CPU,但使用CPU效率会低很多。

进入电脑 -> 属性 -> 设备管理器 -> 显示适配器中查看是否有独立显卡。

也可以执行命令 nvidia-smi 查看:

C:\Program Files\NVIDIA Corporation\NVSMI>nvidia-smi
Sun Jun  4 10:25:51 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 528.92       Driver Version: 528.92       CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| 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 ... WDDM  | 00000000:01:00.0  On |                  N/A |
| N/A   51C    P5    14W /  80W |   1619MiB /  8188MiB |     16%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1848    C+G   ...lPanel\SystemSettings.exe    N/A      |

确认你的N卡是否支持CUDA。可到英伟达官网查看:https://developer.nvidia.cn/zh-cn/cuda-gpus

查看显卡驱动版本:打开NVIDIA控制面板,点击帮助 -> 系统信息 查看显卡驱动版本

CUDA toolkit版本对应一个最低版本的显卡驱动程序,是向后兼容的。

CUDA版本选择可到官网查看CUDA toolkit版本和显卡驱动版本对应关系:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

驱动版本为528.92,大于CUDA 11.8版本要求的最低版本520.06,可以安装CUDA 11.8版本,到官网下载CUDA Toolkit 11.8.0。

CUDA Toolkit各版本下载地址:https://developer.nvidia.cn/cuda-toolkit-archive

下载完成后安装。

安装cuDNN

下载CUDA Toolkit版本对应的cuDNN版本:https://developer.nvidia.com/rdp/cudnn-archive

下载cuDNN需要登录NVIDIA,如果你不想注册账号或者无法登录,可以直接使用迅雷下载:

1、复制你要下载的cuDNN版本链接

2、打开迅雷下载,删除下载链接中最后的斜杠

下载完成后解压,有三个文件夹:

将解压的文件复制到CUDA安装目录下:

安装Anaconda

下载地址:https://www.anaconda.com/download

我下载的版本是当前最新版本,对应Python版本为Python10:https://www.anaconda.com/download#downloads

Anaconda版本对应的python版本可到这里查看:https://docs.anaconda.com/anaconda/packages/oldpkglists/

安装pytorch虚拟环境

由于当前的pytorch版本最多仅支持Python 3.10.6版本,使用conda创建Python 3.10.6版本的Python虚拟环境pytorch:

$ conda create --prefix D:\tools\Anaconda3\envs\pytorch python==3.10.6

其中D:\tools\Anaconda3\envs\是我的虚拟环境保存路径,pytorch 是创建的虚拟环境名称。

安装完成后,使用 conda info --envs命令查看虚拟环境是否安装成功:

$ conda info --envs
# conda environments:
#
base                  *  D:\tools\Anaconda3
pytorch                  D:\tools\Anaconda3\envs\pytorch

接下来激活pytorch虚拟环境:

(base) D:\> conda activate pytorch
(pytorch) D:\>

安装pytorch

安装pytorch:https://pytorch.org/get-started/locally/

在创建的pytorch虚拟环境中安装pytorch:

(base) D:\> conda activate pytorch
(pytorch) D:\> conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

安装完成后再命令行输入python,验证pytorch是否安装成功:

(pytorch) D:\>python
Python 3.10.6 | packaged by conda-forge | (main, Oct 24 2022, 16:02:16) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> x = torch.rand(5, 3)
>>> print(x)
tensor([[0.2037, 0.0923, 0.8584],
        [0.9501, 0.5802, 0.1615],
        [0.3788, 0.1546, 0.7697],
        [0.8101, 0.0193, 0.4118],
        [0.8284, 0.7320, 0.7744]])
>>> torch.cuda.is_available()
True
>>>

安装Stable Diffusion web UI

下载仓库

Stable Diffusion web UI仓库的GitHub为https://github.com/AUTOMATIC1111/stable-diffusion-webui,需要使用Git下载,也可以下载zip文件(建议使用git下载,因为此仓库还依赖其它git仓库,另外使用git更加方便与远程GitHub仓库保持同步)。Git安装配置方法可参考Git简易教程-安装及简单使用。

在项目目录下,打开Git bash,执行如下命令克隆Stable Diffusion web UI仓库:

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

安装依赖包

在安装的pytorch虚拟环境中安装依赖包:

$ cd D:\devWorkspace\stable-diffusion-webui
$ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
#或者使用conda命令安装
$ conda install --yes --file requirements.txt

启动webui

在项目根目录执行 python launch.py 命令启动:

(pytorch) D:\devWorkspace\stable-diffusion-webui>python launch.py

首次执行会下载一些模型和权重文件,耐心等待…

启动成功打印如下:

Python 3.10.6 | packaged by conda-forge | (main, Oct 24 2022, 16:02:16) [MSC v.1916 64 bit (AMD64)]
Version: v1.3.1
Commit hash: b6af0a3809ea869fb180633f9affcae4b199ffcf
Installing requirements
Launching Web UI with arguments:
No module 'xformers'. Proceeding without it.
Loading weights [6ce0161689] from D:\devWorkspace\stable-diffusion-webui\models\Stable-diffusion\v1-5-pruned-emaonly.safetensors
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.
Startup time: 8.5s (import torch: 2.5s, import gradio: 1.9s, import ldm: 0.8s, other imports: 1.4s, load scripts: 1.0s, create ui: 0.6s, gradio launch: 0.2s).
Creating model from config: D:\devWorkspace\stable-diffusion-webui\configs\v1-inference.yaml
LatentDiffusion: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
Applying optimization: Doggettx... done.
Textual inversion embeddings loaded(0):
Model loaded in 10.3s (load weights from disk: 0.8s, create model: 0.6s, apply weights to model: 4.9s, apply half(): 1.1s, move model to device: 0.8s, load textual inversion embeddings: 2.0s).

浏览器访问地址http://127.0.0.1:7860:

注意要在创建的pytorch虚拟环境中启动,可以写一个bat脚本用来启动webui:

@echo off

CALL D:\tools\Anaconda3\Scripts\activate.bat D:\tools\Anaconda3\envs\pytorch
D:
cd D:\devWorkspace\stable-diffusion-webui
python launch.py

pause

其中D:\tools\Anaconda3\Scripts\activate.bat 是anaconda的activate.bat脚本路径,D:\tools\Anaconda3\envs\pytorch为pytorch虚拟环境路径。

直接双击这个bat脚本就会自动启动webui。

安装汉化插件

页面是英文的,可以使用汉化插件进行汉化:

将stable-diffusion-webui-localization-zh_CN插件安装在D:\devWorkspace\stable-diffusion-webui\extensions目录下,我这里使用git克隆:

$  git clone https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN.git

下载完成后重新启动UI,然后进入Settings -> User interface,设置Localization为zh_CN,然后点击Apply settings:

再次重启UI生效。

简单使用

文生图

输入正向提示词和反向提示词,然后生成图片,比如我输入:spring, small bridge, flowing stream, some cottages, flowers

生成的图片会保存到 outputs\txt2img-images 目录下。

Stable Diffusion模型

可生成图像的深度学习模型有多种,比如生成对抗网络(GAN)、变分自编码器(VAE)等。稳定扩散模型Stable Diffusion于2022年发布,是一种基于潜在扩散模型(Latent Diffusion Models,LDM)的文本生成图像的深度学习模型,由变分自动编码器(VAE), U-Net,和一个文本编码器组成。此外,该模型还支持图像到图像的风格转换,以及根据简单的草图生成图像等。

模型下载

首次执行python launch.py会下载一个默认模型v1-5-pruned-emaonly ,我们还可以到模型网站上下载其它类型,网上提供了很多训练好的模型,不需要自己训练。

下面是一些常见的模型网站:

C站:https://civitai.com/

Huggingface:https://huggingface.co/models,它还包括其它模型,选择Text-to-Image,是Stable Diffusion可用的模型。

可以发现网站上模型类型有checkpoint、LoRA等,Checkpoint模型是stable diffusion绘图的基础模型,下载完成后放到stable-diffusion-webui\models\Stable-diffusion目录下。

LoRA(Low-Rank Adaptation)模型是对标准模型进行微调得到的微调模型,利用少量数据训练出的某一风格的画风、人物或者事物的模型,LoRA需要跟标准模型配合使用。下载的LoRA模型文件要放到stable-diffusion-webui\models\Lora目录下。

示例

比如到civitai网站下载一个基础模型和LoRA模型:

AI真人基础模型ChilloutMix:https://civitai.com/models/6424/chilloutmix 水墨画风格的LoRA模型墨心 MoXin:https://civitai.com/models/12597/moxin

放到对应目录下后,重新启动UI,选择ChilloutMix和LoRA模型:

<lora:shuimobysimV3:0.5> 中的1是模型的权重,默认值为1。然后输入提示词,调整参数,点击生成:

最后

要生成你满意的图片需要设置合适的正向词和方向词,还有合适的模型参数,多尝试总能生成满意的。此外,当前开源的Stable Diffusion模型都是基于英文训练的,不支持中文提示词,IDEA研究院开源了首个中文Stable Diffusion模型太乙,支持中文提示词绘画,后续将会介绍它的安装部署方法。

说点题外话,之前在学校的时候使用过深度学习算法来对脑电数据进行分类,对深度学习有初步的了解,工作后很少去了解AI方面的研究进展,今年AI爆火,相关股票暴涨,自己也体验了几款ChatGPT相关的应用,对提升工作效率方面是非常明显的,可预见的是它将改变很多行业。人工智能带来的好处和机遇是巨大的,虽然会带来很多负面影响,比如可能引起结构性失业、安全问题等,但作为个人,我们必须积极拥抱这种变革才能从中获益。

--THE END--

更新时间 2024-01-13