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到这个界面,勾上第一项,把该命令注册到环境变量
点击install开始下载,下载完成后,点击右下角开始界面,可在最近添加里看到 Anaconda Prompt,建议右键更多以管理员身份运行。
3.2 Anaconda配置
后续需要生成环境,下载python包,但网络很不好,建议替换源
在刚才打开的 Anaconda Prompt 窗口输入以下命令进行全局配置
打开此电脑,进入 C:\Users\<你的用户名> 这个路径,可以看到.condarc文件
打开它,我这里用的是Notepad++,应该用记事本也行,复制以下内容进去,保存
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,则输入以下命令(注意>之后的才是输入的内容)
git clone很卡的话,访问 https://github.com/CompVis/stable-diffusion,点击绿色按钮code再点击Download ZIP,解压到该目录下也行
4.2 安装Stable Diffusion环境
这里是重点,源不好的话经常会卡住
进入到项目目录下,按README.md的指引操作
这里要下载不少时间,可能会报错,通常是源太卡了
也可能是git太卡,因为该过程还需要在项目的src目录下clone两个其他项目下来(见 environment.yaml,不要想把他们直接下载放到该目录,后面运行会报错)
4.3 下载模型
安装好环境后,还不能进入使用,因为需要的模型还没有下载
模型有几种,需要去 https://huggingface.co/CompVis 下载,这里还需要注册账号,先注册下
如果我们用sd-v1-4.ckpt这个模型,就在该网页里点击stable-diffusion-v-1-4-original那一项
跳转过去,找到Download the weights下面的sd-v1-4.ckpt即可点击下载,通常几G,下载时间较长。
4.4 设置模型文件路径
见Stable Diffusion项目README.md的这一步,是要我们把模型的路径软链过去,但我想大家Windows电脑应该没有这个命令吧
简便一点,我们下载好模型以后,找个地方存起来
打开资源管理器,去 D:\git_pro\stable-diffusion-main\models\ldm 路径新建stable-diffusion-v1文件夹,然后把模型文件复制过来,再把模型名字改成model.ckpt
我这里把下载的模型都新建一个文件夹models放到里面,方便复制替换
4.5 运行
终于来到这一步了,前面所做的一切都是为了这一步啊!!
刚才在Anaconda Prompt窗口输入conda env create那一步,我们新建了环境ldm,现在切换过去,在Anaconda Prompt窗口输入以下命令
当然官方建议我们可以更新一下pytorch包,应该是可不跑的,贴一下
最后!!就是我们的跑图命令了
–prompt后面的就是你的描述,可输入python scripts/txt2img.py –help查看各种参数配置
接下来就是见证奇迹的时刻~
诶,等会儿,这是啥?
一口老血吐出来,显存不够,所以说必要前提还是要注意的,白忙了
只能等我换了显卡再说咯,留给3090ti的朋友去试试~
5.QA:
5.1 不想部署,只想玩玩?
其实想玩玩,也可以去网站:
https://huggingface.co/spaces/stabilityai/stable-diffusion 这个要稍微排队一下
https://beta.dreamstudio.ai/dream 这个DreamStudio测试版要注册,支持一些参数,不用排队
5.2 生成了错误环境
可能你乱改environment.yaml文件,生成了错误的环境,此时需要把yaml重新恢复,不用删除该环境,可以运行update命令更新,如下
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都需要再切一次环境,再跑你的程序,切环境命令如下:
5.5 每次进入项目目录好麻烦
可以直接在项目资源管理器输入cmd并回车,进入命令行工具
5.6 如何设置参考图
有参考图的配置是另一个命令,如下,<path-to-img.jpg>就是你电脑里的参考图片路径
5.7 显存不够,按照提示设置max_split_size_mb变量行不行?
本来我以为max_split_size_mb的单位是g,设置以后报错,我还狠狠吐槽了一下
结果吐槽完才反应过来单位应该是mb,满怀期待又去设置了一下,还是老样子的报错,硬件是硬伤,不过有想试试的也可参考流程:
左下角搜“环境变量”,点进去
按此123操作,变量名PYTORCH_CUDA_ALLOC_CONF,变量值max_split_size_mb:xxx
暂时想不到其他坑了,有误请指正~~