Stable Diffusion 本地部署教程

1.前言:

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

2.必要前提:

  1. 科学上网。很多链接都需要用到。
  2. 显卡的显存需要足够大,至于多大没看到哪有说,反正6g绝对不行

3.部署前准备:

3.1  Anaconda安装

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

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

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

 Anaconda安装

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

安装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那一项

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

模型文件路径

我这里把下载的模型都新建一个文件夹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查看各种参数配置

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

运行跑图中

诶,等会儿,这是啥?

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

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,设置以后报错,我还狠狠吐槽了一下

当时想吐槽的话

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

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

编辑Windows环境变量

按此123操作,变量名PYTORCH_CUDA_ALLOC_CONF,变量值max_split_size_mb:xxx

设置max_split_size_mb

暂时想不到其他坑了,有误请指正~~

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Review Your Cart
0
Add Coupon Code
Subtotal
Total Installment Payments
Bundle Discount