找回密码
 立即注册
查看: 831|回复: 20

Mac本地部署Stable-diffusion,别怕折腾,坑都帮你填好了

[复制链接]
发表于 2023-3-5 15:36 | 显示全部楼层 |阅读模式
前言

刚玩完ChatGPT,看着最近大火的AI绘画、赛博coser,还不时给我推送教程视频,我本来就喜欢折腾些新鲜事物,于是心动打算加入玩耍。但Mac作为一个被孤立党(ps.小众群体),现在的大环境下都是win的教程,仅有的几篇mac教程文章又因为是某些程序猿大佬随手记录写的,我的代码水平就只会抄,阅读门槛太高根本看不懂,频频碰壁,借助国内国外资源整合后我终于在M1 Mac上成功本地部署运行stable-diffusion-webui了。而且我分享的办法大部分情况下都支持国内网络环境下安装,因为还是要连接外国网站进行下载,一些情况下载速度慢还是需要科学上网,所以我建议阅读文章的你最好手上有魔法可用,这样在过程中遇到其他问题也可以使用谷歌大法。
在本地的效果就只能说能用,正常情况下关键词(Tags)少一点是能半分钟出图,不过毕竟显卡算力摆在那,我的是M1Pro16G运存,扒拉别人分享图的参数来生成一张图,需要6、7分钟甚至更久(速度感人...),所以如果使用需求不高可以搞搞,追求效率的话也可以学别人去云端部署,文末会细讲。
下载stable-diffusion-webui项目

别人是使用"git clone"来克隆stable-diffusion-webui在GitHub仓库到本地的,但文件量比较大下载缓慢,建议使用我下载整理好的:
【「stable-diffusion-webui.zip」,点击链接下载】
这个文件只有4G左右,里面没有model和lora,下一步会分享model和lora的下载地址。
下载Homebrew

如果直接在官网复制指令会因为网络问题无法下载,我们可以下载国内大学在码云分享的homebrew
打开终端,一般在启动台“其他”文件夹,或者command+空格,搜索“终端”,运行以下代码(回车):
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

输入“1”选择中科大版本,然后输入“Y(yes)”,直接输入开机密码(不显示)开始下载
它弹窗让你先下载Git,我们同意,然后等待下载


然后在运行一遍代码和重复上面的操作,这次就下载brew本体了
下载完成,今后下载还是输入“1”,提示安装完成,复制它给你的指令运行
最后我们运行指令检查一下,没有出现error报错就行。
brew
brew doctor下载Python3.10

接着使用brew下载python,继续在终端执行命令:
brew install cmake protobuf rust python@3.10 git wget等待下载完成。
配置stable-diffusion-webui文件夹

新建终端,或者输入clear清除前面的记录,执行指令“open空格.”,回车。
open .弹出一个文件窗口,把下载好的stable-diffusion-webui文件解压后拖进来
下载model、lora

我推荐比较热门的model:“ChilloutMix”Lora:“Korean Doll Likeness”
如果你想要官方原始的模型:stable-diffusion-v1-5
还有一个特别影响出图的色调文件: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


运行./web.sh程序

新开一个终端,运行这两个指令:
(记住这两个指令,最好是自己打熟练,中途报错、以后每次运行都会再用到)
(第1个指令可以cd+空格+将stable-diffusion-webui文件夹拖进终端,就能自动填充文件路径)
cd stable-diffusion-webui/

./webui.sh运行之后他就开始下载需要的依赖,有梯子的用梯子,也可以尝试UU加速器,对,没开玩笑,在UU搜索“学术资源”运行代理,可以帮助我们访问如GitHub的国际性网站。(如果途中某个环节下载失败可以尝试断开切换使用梯子来下载,有时候不用速度更快,但默认还是挂着代理)


幸运的话你可以一路顺风跑完全程(我觉得肯定没那么简单嘿嘿),我基本上每个环节都报错差点给我整放弃了,所以下面就是提供我遇到的报错和解决办法,各位按情况参考,祝福各位~
1、使用homebrew的时候,Error: Command failed with exit 128: git

分别执行这两个指令手动添加,绿色框选的(directory后面)就是路径地址,可以直接复制粘贴
git config --global --add safe.directory 你的homebrew-core路径
git config --global --add safe.directory 你的homebrew-cask路径

2、pip安装环境报错:This error originates from a subprocess, and is likely not a problem with pip

这个就是单纯的网络问题,断开/连接代理然后重新执行“./webui.sh”
3、AttributeError: 'NoneType' object has no attribute 'pop'

这个问题基本上和第4点同时触发,直接看第4点。
4、Stable diffusion model failed to load upon startup

往上面看有这句:“The file may be malicious, so the program is not going to read it.(该文件可能是恶意的,因此程序不会读取它。)”这个就是模型错误,检查model有没有放错文件夹或者用了不支持(损坏)的模型。
5、RuntimeError:Cannot add middleware after an application has started

如果用我分享的文件里面就已经默认改好了。
解决办法:open .打开SD所在文件夹,在stable-diffusion-webui文件夹中的requirements_versions.txt 文件中添加“fastapi==0.90.1”。
大功成

相信大家最终都到达这个界面了吧,复制这个链接127.0.0.1:7860在浏览器打开就可以美美地食用了



红色框选的本地访问地址

日常使用

我们关闭终端SD程序就终止运行了,再次使用还是执行这两个指令:
cd stable-diffusion-webui/

./webui.sh然后一些stabel-diffusion-webui的配置参数、操作可以学习一下这篇文章、这位大佬的其他文章:
结语:

折磨了自己两天终于成功在本地部署SD,吃老大苦了,一开始一直因为网络问题换了几个梯子,后来才灵机一动用试试UU学术加速,成功了;遇到问题就谷歌,翻GitHub、reddit社区,找到的还都是win的解决方法,指令根本没办法直接抄,除非找的同样是mac的或者自己想办法,大家感同身受,希望这篇文章能帮到同是Mac党的同学。
去看了云端部署的方案我直接吐血,不仅可以加快生成速度而且操作起来还简单。所以重申一遍,本地部署的优点就是可随时自由使用,不需要网络,生成一些比较特殊的图片啊(自己看)、版权啊也归你;云端部署就是使用虚拟GPU性能更好渲染生成更快,不过用Colab每次都需要重新部署(重新下载模型网络速度要求高还得科学上网),而国内的炼丹平台需要花钱租用,使用别人分享整合好的模型还要遵循他的使用规则,也就是没有本地自由。也可以考虑鱼和熊掌兼得——本地和云端协调,高效率、高自由度制图。
对了,有问题欢迎评论区、私信讨论,我也采纳建议对文章进行编辑完善,做一篇负责任的文章!
参考资料:

M1 Mac搭建Novel AI(Stable Diffusion)本地部署详细教程
--GUIDE--
https://www.youtube.com/watch?v=Jh-clc4jEvk
金牛肖马:Homebrew国内如何自动安装(国内地址)(Mac & Linux)
mac国内安装homebrew_哔哩哔哩_bilibili
使用homebrew 的时候失败fatal: not in a git directory Error: Command failed with exit 128: git - 青舟模板网
AttributeError: 'NoneType' object has no attribute 'keys' · Issue #2361 · AUTOMATIC1111/stable-diffusion-webui
https://www.reddit.com/r/StableDiffusion/comments/y0tiq7/help_with_error/
[Bug]: RuntimeError("Cannot add middleware after an application has started") · Issue #7759 · AUTOMATIC1111/stable-diffusion-webui
[Bug]: fastapi 0.91 app.add_middleware · Issue #7714 · AUTOMATIC1111/stable-diffusion-webui
https://www.reddit.com/r/StableDiffusion/comments/10yums7/where_did_i_mess_up_any_ideas/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-3-5 15:45 | 显示全部楼层
分享一下这两天跑的图:https://kamiyd.com/AI-draw-aede8c8d478c43c7a7758e8c4529e93b[害羞]
发表于 2023-3-5 15:55 | 显示全部楼层
文中提到的3个模型下不了,无法登陆/注册,请问知道是什么原因吗?

能提供一下网盘的下载链接嘛?

我的是MAC,因特尔芯片,现在会出现python段错误,因此想拿文中的模型,按照https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/4990 解决段错误的问题
发表于 2023-3-5 15:58 | 显示全部楼层
那个网站登录github账号就可以下载啊
发表于 2023-3-5 16:04 | 显示全部楼层
或者你可以去我分享的另一个大佬的文章中找他的网盘下载链接
发表于 2023-3-5 16:10 | 显示全部楼层
一定要python3.10吗?
发表于 2023-3-5 16:11 | 显示全部楼层
3.11.2行不行呢[发呆]
发表于 2023-3-5 16:13 | 显示全部楼层
也可以,它有提示叫我更新,没去理会,要是不行你再退回这个版本[调皮]
发表于 2023-3-5 16:22 | 显示全部楼层
请问一下,这个报错要怎么解决呢
[图片]
发表于 2023-3-5 16:24 | 显示全部楼层
Python版本不兼容,用3.10[捂脸]
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-23 14:57 , Processed in 0.104570 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表