Mac本地部署stable diffusion
完整的本地部署自由度较高,安装相对比较折腾,请耐心看完
完整的本地部署步骤涉及
- 安装软件包管理工具Homebrew
- 安装Python3.10环境
- 部署stable-diffusion-webui项目
- 配置stable-diffusion-webui
- 愉快玩耍
想本地部署的从下载Homebrew开始。
嫌麻烦可以进行打赏找我有偿安装,应用方式启动,无需点击输入代码。
下载Homebrew
如果直接在官网复制指令会因为网络问题无法下载,我们可以下载国内大学在码云分享的homebrew
打开终端,一般在启动台“其他”文件夹,或者command+空格,搜索“终端”,运行以下代码(回车):
1 | /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" |
输入“1”选择中科大版本,然后输入“Y(yes)”,直接输入开机密码(不显示)开始下载
它弹窗让你先下载Git,我们同意,然后等待下载
然后在运行一遍代码和重复上面的操作,这次就下载brew本体了
下载完成,今后下载还是输入“1”,提示安装完成,复制它给你的指令运行
最后我们运行指令检查一下,没有出现error报错就行。
1 | brew |
下载Python3.10
接着使用brew下载python,继续在终端执行命令:
1 | brew install cmake protobuf rust [email protected] git wget |
此过程较长等待下载完成。
部署stable-diffusion-webui项目
在你需要的目录中创建文件夹,并在终端中输入cd+空格后,将文件夹拖入终端,后续的stable-diffusion-webui项目将会被放到这个文件夹中(为方便描述后文将该文件夹称为工作目录)。
例如我在文档目录中创建AI文件夹,在终端输入cd+空格后,拖入AI文件夹,或者在终端中输入路径。
1 | cd /Users/替换成你的用户名/Documents/Ai |
然后输入下方代码,将git项目克隆到AI文件夹,你会得到一个stable-diffusion-webui的文件夹(为方便描述,后文将该文件夹称为项目目录)。
1 | git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git |
下载并使用模型
这里例举官方模型stable-diffusion 1.5的模型,huggingface,选择ckpt结尾的文件下载即可。
将下载好的模型文件放到项目目录路径中的models\Stable-diffusion里。
运行./web.sh程序
新开一个终端,运行这两个指令:(记住这两个指令,最好是自己打熟练,中途报错、以后每次运行都会再用到)
(第1个指令可以cd+空格,然后将项目目录拖进终端,就能自动填充文件路径)
1 | cd 工作目录/stable-diffusion-webui/ |
运行之后他就开始下载需要的依赖,有梯子的用梯子,(如果途中某个环节下载失败可以尝试断开切换使用梯子来下载,有时候不用速度更快,但默认还是挂着代理),等着自动安装,直到出现Running on local URL: http://127.0.0.1:7860 这段代码,就可以在地址栏输入http://127.0.0.1:7860 访问stable diffusion了。
stable diffusion汉化
下载汉化包,将下载后的文件解压,复制简体中文.json文件,到项目目录下的localizations文件夹里。
接着在浏览器中访问http://127.0.0.1:7860/ 。找到Settings下的user interface选项,最下方有一个Localization (requires restart)选项,点击刷新图标后在下拉框中切换简体中文,接着点击Apply Settings 保存设置,最后点击Reboot UI重启面板即可。
愉快玩耍
模型
此处的选项用来切换模型的,不同模型会产生不同的生成效果。下载好的模型文件一般都放在项目目录下的models\Stable-diffusion中。如果放进去在浏览器中找不到刚的模型,点击刷新即可。
txt2img部分介绍
- prompt (提示词)该部分主要就是对于图像进行描述,有内容风格等信息进行描述。后面的画板可以一些随机的风格、下面箭头是之前任务的参数;
- Negative prompt (反向提示词)这个主要是提供给模型,我不想要什么样的风格;特别对于图上出现多个人的情况,就可以通过2girls等信息进行消除;
- Sampling method (采样方法)扩散去噪算法的采样模式,会带来不一样的效果,ddim 和 pms(plms) 的结果差异会很大,很多人还会使用euler,具体没有系统测试;
- Sampling Steps (迭代步数)生成图片的迭代步数,每多一次迭代都会给 AI 更多的机会去比对 prompt 和 当前结果,去调整图片。更高的步数需要花费更多的计算时间,也相对更贵。但不一定意味着更好的结果。当然迭代步数不足(少于 50)肯定会降低结果的图像质量;
- Width、Height (宽高)图像长宽,可以通过send to extras 进行扩大,所以这里不建议设置太大[显存小的特别注意];
- Restore faces (面部修复)优化面部,绘制面部图像特别注意;
- Tiling(可平铺) 生成一个可以平铺的图像;
- Highres. fix (高分辨率修复)使用两个步骤的过程进行生成,修复图片分辨率效果
- CFG Scale (提示词相关性)分类器自由引导尺度——图像与提示符的一致程度——越低的值产生越有创意的结果;
- Seed (随机种子)种子数,只要中子数一样,参数一致、模型一样图像就能重新;
mg2img部分介绍
这部分参数很多与txt2img类似,这里主要说明一下不同部分;
- CLIP Prompt(反推提示词),根据图片自动生成提示词
- DeepBooru Negative prompt(反推负面提示词),根据图片自动生成不想要的提示词。
其它
关键词提示库https://arthub.ai/
创建虚拟环境
1
2
3
4python -m venv venv
source venv/bin/activate # mac
.\venv\Scripts\activate.bat # windows
Web UI无法启动:
如果尝试使用./webui.sh
启动Web UI时遇到错误,请尝试从repositories
文件夹中删除venv
和stable-diffusion-webui
文件夹,然后使用git pull
更新Web UI,然后再次运行./webui.sh
。
性能差:
目前macOS上的GPU加速使用大量内存。如果性能很差(如果使用任何采样器生成20步512x512图像需要超过一分钟)
- 尝试使用
--opt-split-attention-v1
命令行选项(即./webui.sh --opt-split-attention-v1
)启动,看看是否有帮助。 - 没什么区别吗
- 打开位于/Applications/Utilities中的Activity Monitor应用程序,并检查Memory选项卡下的内存压力图。生成图像时,内存压力显示为红色
- 关闭Web UI进程,然后添加
--medvram
命令行选项(即./webui.sh --opt-split-attention-v1 --medvram
)。
- 性能仍然很差,内存压力仍然是红色的?
- Try
--lowvram
(即./webui.sh --opt-split-attention-v1 --lowvram
)。
- Try
- 仍然需要几分钟以上的时间来生成一个512x512的图像与20个步骤与任何采样器?
- 您可能需要关闭GPU加速。
- 在Xcode中使用Open
webui-user.sh
- 将
#export COMMANDLINE_ARGS=""
变更为export COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half --use-cpu all"
。
- 在Xcode中使用Open
- 您可能需要关闭GPU加速。
讨论/反馈:https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/5461
VAE和CLIP
选择“Settings”拖到最下面会看到“Show all pages”在浏览器中搜 “quick”,会定位到「Quicksettings list」这一配置。在 “Quicksettings list” 里再添加两项:「sd_vae」、「CLIP_stop_at_last_layers」
- 感谢你赐予我前进的力量