1.前言:
最近看Stable Diffusion开源了,据说比Disco Diffusion更快,于是从git上拉取了项目尝试本地部署了,记录分享一下过程~
这里是官网介绍:https://stability.ai/blog/stable-diffusion-public-release

2.必要前提:
科学上网。很多链接都需要用到。

显卡的显存需要足够大,至于多大没看到哪有说,反正6g绝对不行

3.部署前准备:
3.1  Anaconda安装

这是一个运行python的环境管理工具

进入 Anaconda官网,https://www.anaconda.com/

点击Download下载,打开文件一路next到这个界面,勾上第一项,把该命令注册到环境变量

Stable Diffusion本地部署教程问题错误报错汇总-云案通一起AI网

Anaconda安装
点击install开始下载,下载完成后,点击右下角开始界面,可在最近添加里看到 Anaconda Prompt,建议右键更多以管理员身份运行。

Stable Diffusion本地部署教程问题错误报错汇总-云案通一起AI网

安装Anaconda完成

3.2 Anaconda配置

后续需要生成环境,下载python包,但网络很不好,建议替换源

在刚才打开的 Anaconda Prompt 窗口输入以下命令进行全局配置

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
打开此电脑,进入 C:\Users\<你的用户名> 这个路径,可以看到.condarc文件

打开它,我这里用的是Notepad++,应该用记事本也行,复制以下内容进去,保存

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
show_channel_urls: true
ssl_verify: false

3.3 git安装

进入git下载链接,https://git-scm.com/downloads

点击Download for Windows,下载完打开一路默认,安装完成

(这里之所以把git放到后面安装,是因为我在Prompt里碰到没有git命令的问题,重装解决)

 

4.开始部署:
4.1 下载Stable Diffusion项目

在刚才打开的Anaconda Prompt窗口里,进入到你想要进入的目录

刚进来的目录是C:\Windows\system32,比如我这里想要放置目录是D:\git_pro,则输入以下命令(注意>之后的才是输入的内容)

(base) C:\Windows\system32>cd ../..
(base) C:\>D:
(base) D:\>cd git_pro
(base) D:\git_pro>git clone https://github.com/CompVis/stable-diffusion.git
git clone很卡的话,访问 https://github.com/CompVis/stable-diffusion,点击绿色按钮code再点击Download ZIP,解压到该目录下也行

 

4.2 安装Stable Diffusion环境

这里是重点,源不好的话经常会卡住

进入到项目目录下,按README.md的指引操作

(base) D:\git_pro>cd stable-diffusion-main
(base) D:\git_pro\stable-diffusion-main>conda env create -f environment.yaml
这里要下载不少时间,可能会报错,通常是源太卡了

也可能是git太卡,因为该过程还需要在项目的src目录下clone两个其他项目下来(见 environment.yaml,不要想把他们直接下载放到该目录,后面运行会报错)

 

4.3 下载模型

安装好环境后,还不能进入使用,因为需要的模型还没有下载

模型有几种,需要去 https://huggingface.co/CompVis 下载,这里还需要注册账号,先注册下

如果我们用sd-v1-4.ckpt这个模型,就在该网页里点击stable-diffusion-v-1-4-original那一项

Stable Diffusion本地部署教程问题错误报错汇总-云案通一起AI网

Hugging Face
跳转过去,找到Download the weights下面的sd-v1-4.ckpt即可点击下载,通常几G,下载时间较长。

 

4.4 设置模型文件路径

见Stable Diffusion项目README.md的这一步,是要我们把模型的路径软链过去,但我想大家Windows电脑应该没有这个命令吧

README.md
简便一点,我们下载好模型以后,找个地方存起来

打开资源管理器,去 D:\git_pro\stable-diffusion-main\models\ldm 路径新建stable-diffusion-v1文件夹,然后把模型文件复制过来,再把模型名字改成model.ckpt

Stable Diffusion本地部署教程问题错误报错汇总-云案通一起AI网

模型文件路径
我这里把下载的模型都新建一个文件夹models放到里面,方便复制替换

 

4.5 运行

终于来到这一步了,前面所做的一切都是为了这一步啊!!

刚才在Anaconda Prompt窗口输入conda env create那一步,我们新建了环境ldm,现在切换过去,在Anaconda Prompt窗口输入以下命令

(base) D:\git_pro\stable-diffusion-main>conda activate ldm
当然官方建议我们可以更新一下pytorch包,应该是可不跑的,贴一下

conda install pytorch torchvision -c pytorch
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .
最后!!就是我们的跑图命令了

(ldm) D:\git_pro\stable-diffusion-main>python scripts/txt2img.py –prompt “a photograph of an astronaut riding a horse” –plms
–prompt后面的就是你的描述,可输入python scripts/txt2img.py –help查看各种参数配置

接下来就是见证奇迹的时刻~

Stable Diffusion本地部署教程问题错误报错汇总-云案通一起AI网

运行跑图中
诶,等会儿,这是啥?

Stable Diffusion本地部署教程问题错误报错汇总-云案通一起AI网

CUDA out of memory
一口老血吐出来,显存不够,所以说必要前提还是要注意的,白忙了

只能等我换了显卡再说咯,留给3090ti的朋友去试试~

 

5.QA:
5.1 不想部署,只想玩玩?

其实想玩玩,也可以去网站:
https://huggingface.co/spaces/stabilityai/stable-diffusion 这个要稍微排队一下

https://beta.dreamstudio.ai/dream 这个DreamStudio测试版要注册,支持一些参数,不用排队

 

5.2 生成了错误环境

可能你乱改environment.yaml文件,生成了错误的环境,此时需要把yaml重新恢复,不用删除该环境,可以运行update命令更新,如下

conda env update -f environment.yaml

5.3 报错 ‘git’ is not recognized as an internal or external command, operable program or batch file.

这是没有git命令,之前安装过git的,Anaconda Prompt窗口也可能没有加载到git

解决方法,重装git

 

5.4 第二次运行,报错 ModuleNotFoundError: No module named ‘CV2’

因为你的程序依赖包都在新建的安装环境ldm下,所以每次重新打开Anaconda Prompt都需要再切一次环境,再跑你的程序,切环境命令如下:

conda activate ldm

5.5 每次进入项目目录好麻烦

可以直接在项目资源管理器输入cmd并回车,进入命令行工具

D:\git_pro\stable-diffusion-main

Stable Diffusion本地部署教程问题错误报错汇总-云案通一起AI网

5.6 如何设置参考图

有参考图的配置是另一个命令,如下,<path-to-img.jpg>就是你电脑里的参考图片路径

python scripts/img2img.py –prompt “A fantasy landscape, trending on artstation” –init-img <path-to-img.jpg> –strength 0.8

5.7 显存不够,按照提示设置max_split_size_mb变量行不行?

本来我以为max_split_size_mb的单位是g,设置以后报错,我还狠狠吐槽了一下

Stable Diffusion本地部署教程问题错误报错汇总-云案通一起AI网

当时想吐槽的话
结果吐槽完才反应过来单位应该是mb,满怀期待又去设置了一下,还是老样子的报错,硬件是硬伤,不过有想试试的也可参考流程:

左下角搜“环境变量”,点进去

Stable Diffusion本地部署教程问题错误报错汇总-云案通一起AI网

编辑Windows环境变量
按此123操作,变量名PYTORCH_CUDA_ALLOC_CONF,变量值max_split_size_mb:xxx

Stable Diffusion本地部署教程问题错误报错汇总-云案通一起AI网