Mac 本地部署Stable-difusion,坑都填完了,开始炼丹~
前言(唠叨)
工作与生活城市等连续变化,许久不写博客了,但我骨子里还是热爱新鲜(折腾)技术的,在国内刚刚出现之际,我就收到了关注的公众号各种推送,在C站里以前大多是二次元风格的model,当时我十分惊叹于lora+chilloutmix实现的逼真效果,伟大的技术!我粗浅的了解后在朋友圈感叹与展望了一番便淡忘了,没想到啊,突然短短半个月爆🔥了起来,在好奇心的驱使下我也常常逛C站,里面国人也是频频出没,不过画风一言难尽,作者原话奉上:Please be responsible for your generations and creations! Do not use them for any malicious intent or harm in any form, and be respectful!
扯远了,总而言之,为什么写这个?近来有朋友在问,而且是mac环境(这里算是小众),那我刚好有一台老机器在用,就部署一下试试哈,分享给需要的人。
1.准备
当前配置:
- macos 12.6
- 1.8 GHz 双核Intel Core i5
-
8 GB 1600 MHz DDR3
显存什么的当然是越高越好啦,然后把提前uu加速器准备好
1.2 下载stable-diffusion-webui项目
大体两个途径:
1.2.1下载的大佬的整合包
星空整合包地址:https://www.bilibili.com/video/BV16j411A7BL (推荐)
秋叶整合包地址:https://www.bilibili.com/video/BV17d4y1C73R
秋叶启动器地址:https://www.bilibili.com/video/BV1ne4y1V7QU (推荐)
下载解压: stable-diffusion-webui.zip (夸克网盘)
1.2.2 git
你不相信上面的安全性也可以 git clone,在github一搜就有
网盘的的文件大小约4g,没有模型和lora,后续会将如何下载,很简单。
1.3 python环境配置
1.3.1 通过anaconda 创建虚拟环境
需要注意把python版本固定在3.10,这里需要一点命令行基础,不清楚的可以去看看我以前写的随笔:https://www.cnblogs.com/cheflone/p/12911331.html,很快能得到解决。
什么?anaconda是什么,点这里下载。
1.3.2 homebrew
这是个mac的包管理器,非常强大,现在官网居然下不了(我学那会还可以使用),那就下载国内大学分享的,在mac的terminal中输入如下代码,回车执行:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
输入“1”选择中科大版本,然后输入“Y(yes)”,直接输入开机密码(不显示)开始下载,一路同意即可。
按提示检查一下brew有没有问题:
brew
brew doctor
没问题后,接着下载python 3.10,在终端接着输入:
brew install cmake protobuf rust python@3.10 git wget #这里代码执行过程中如果报错,按照提示解决,一般是你的brew初次使用配置没完善,很好解决
1.4 配置stable-difusion-webui文件夹
这时候stable-difusion-webui下好了吧,把它解压放在用户目录下。
1.4.1 下载model、lora
当然推荐最热门的model:“ChilloutMix”、Lora:“Korean Doll Likeness”
这里还有个影响出图的色调文件:sd-vae-ft-mse-original at main一并下载
更多模型精彩在这里,还是建议有原则使用里面的东西
model安装:
将safetensors文件放到文件路径:stable-diffusion-webui/models/Stable-diffusion
lora安装:
将safetensors文件放到文件路径:stable-diffusion-webui/models/Lora
vae安装:
将safetensors文件放到文件路径:stable-diffusion-webui/models/Vae
1.5 运行程序
这里是最容易出问题的地方,我在过程中会写出我遇到的问题以及解决方法,如果你有新情况,也别担心,毕竟搜索引擎等你用呢,嘿嘿
1.5.1
打开一个新的终端(terminal),找到你的stable-diffusion-webui绝对路径,可以通过‘pwd’查看或者直接将stable-diffusion-webui文件夹拖进终端,就能自动填充文件路径。然后输入代码启动程序:
cd stable-diffusion-webui/ ./webui.sh
运行之后他就开始下载需要的依赖,有梯子的用梯子,也可以尝试上面我让准备的UU加速器,在UU搜索“学术资源”运行代理,可以帮助我们访问如GitHub的国际性网站。(如果途中某个环节下载失败可以尝试断开切换使用梯子来下载,有时候不用速度更快,但默认还是挂着代理)
1.5.2 可能出现的问题
1、pip安装环境报错:This error originates from a subprocess, and is likely not a problem with pip
这个就是单纯的网络问题,断开/连接代理然后重新执行“./webui.sh”
2、AttributeError: 'NoneType' object has no attribute 'pop'
这个问题基本上和第3点同时触发,直接看第4点。
3、Stable diffusion model failed to load upon startup
往上面看有这句:“The file may be malicious, so the program is not going to read it.(该文件可能是恶意的,因此程序不会读取它。)”这个就是模型错误,检查model有没有放错文件夹或者用了不支持(损坏)的模型。
4、RuntimeError:Cannot add middleware after an application has started
解决办法:open .打开SD所在文件夹,在stable-diffusion-webui文件夹中的requirements_versions.txt 文件中添加“fastapi==0.90.1”。
这时候你基本下载完毕了,可能还会出现最后一个报错:Couldn't install XXX
很无语,这里其实是访问不了github下载文件所导致的,上述的uu加速器也没用,也好解决:
打开你的stable-diffusion主目录,找到如图所示的launch.py文件,打开它
找到 def prepare_enviroment(): 开头的段落,在每个 https://github.com/ 开头的链接前面添加 https://ghproxy.com/ ,变成https://ghproxy.com/https://github.com/ 格式开头。
保存文件,去运行./webui.sh吧。
接着开始安装了
在浏览器打开图片底部网址。
好吧其实你如果和我一样的mac of intel配置,就不要高兴的太早,极可能忙了半天画不了,哈哈哈哈😂
。。。。。。
。。。。。。
。。。。。。
。。。。。。
开玩笑的也能解决,我也差点放弃当时,会出现报错:RuntimeError: "LayerNormKernelImpl" not implemented for 'Half' ,机器不支持原因:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/1349。
解决:在编辑器修改webui-user.sh,在COMMANDLINE_ARGS=后面加上--skip-torch-cuda-test --precision full --no-half
不要搞错了webui-user.bat是windows的,起初我也添加了,毫无作用,懵逼半天,没错,mac的是初始全部注释了的webui-user.sh。
1.6webui使用
这里就不做过多赘述了,牛的人很多,推荐几个参考,上手没啥难的,不过各种tag、采样方式等等参数调整要下点功夫
Stable Diffusion 完美复制Korean doll likeness!(详细版,持续更新中!) https://zhuanlan.zhihu.com/p/606825889
庖丁解牛 Stable-diffusion-webui 插件拓展及依赖汇总 https://zhuanlan.zhihu.com/p/579538165
看到这里给你整点硬货,是不是觉得部署太繁琐亦或配置不理想,试试这款软件:
<draw things>
做到了三端(mac,ipad,iPhone)支持,安装就能用,绝对的超小众良心软件,下图就是用手机跑出来的cyber girl。
再次再次呼吁:技术无罪,应当服务于大众,而非牟利于小众~
参考:橘法师成前 https://www.bilibili.com/read/cv21987039
从零开始学会AI绘画,让你也能生成自己的图(重置版)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/5232
2023-02-26