论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
移动端开发
›
Mac本地部署Stable Diffusion,超详细,含踩坑点(AI 绘 ...
Mac本地部署Stable Diffusion,超详细,含踩坑点(AI 绘画保姆级教程) ...
没腿的鸟
金牌会员
|
2024-6-21 00:07:49
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
529
|
帖子
529
|
积分
1587
文章首发于公众号:X小鹿AI副业
大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年+,也一名 AIGC 爱好者,连续分享更多前沿的「AI 工具」和「AI副业玩法」,接待一起交换~
一、 弁言
相继在两个云平台
Kaggle
和
AutoDL
上部署了 Stable Diffusion 后,这周决定再在 Mac 本地部署一下 Stable Diffusion!
实在看 Stable Diffusion WebUI 的 Github 官网,步调还是比力清晰简单的。
但实际部署过程中,确实还是碰到了不少问题,以是顺便将踩过的坑逐一记录了下来,应该涵盖了大部分同砚都会碰到的问题,是的,全帮你们填平了,有的问题还给出了多种办理方案。
以是,Mac 党的朋友,想在本地部署 Stable Diffusion,拿着这份保姆级教程,直接冲就完事!
二、 Mac 的设置
MacBook Pro(2021 年)
芯片
:Apple M1 Pro
核总数
:8 + 14
内存
:16GB
存储
:512GB
macOS
:Ventura 13.3.1
这个设置下,
出图的服从怎么样呢
?
文章的第五部分「性能测试」中,基于同一模型、差别采样方法,在举行了多组测试后,出图服从简单记录了一下,大家可以参考~
三、 安装步调
1. 安装 Homebrew
方式一:官方安装(可能会因网络问题导致失败)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
复制代码
输入 brew -v 验证 Homebrew 是否安装乐成:出现版本号说明 Homebrew 已经安装乐成了。
补充知识:
Homebrew 官网:https://brew.sh/
通过官网方式安装的,卸载 Homebrew 的方式如下(注意:如果是国内镜像安装的,不用这个命令卸载):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
复制代码
方式二:国内镜像安装
如果用第一种方式输入命令没有反应,或者是安装过程中出错了,多数是由于网络问题。可以用国内镜像举行 Homebrew 的安装。
/bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
复制代码
Core、Cask、services 是 Homebrew 的其他组件,应该不是部署 Stable Diffusion WebUI 必须的。为了保险起见,这里直接都装了。
有些电脑 xcode 和 git 杂乱,再运行一次,此处如果有 error 正常。
安装乐成后,需要
重启终端
或者运行 source /Users/your_user_name/.zprofile 才能见效。
输入 brew -v 验证 Homebrew 是否安装乐成:出现版本号说明 Homebrew 已经安装乐成了。
补充知识
如果之前安装过 Homebrew,会将之前的 Homebrew 备份在桌面的 Old_Homebrew 文件夹里。如果里面没有你需要的可以删除。
常用命令
查看版本:brew -v
更新 brew 版本:brew update
查找:brew search xxx(其中 xxx 更换为要查找的关键字)
安装:brew install xxx
查看本地软件库列表:brew ls
卸载 Homebrew
如果是通过国内镜像安装的 Homebrew,用这个命令卸载:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"
复制代码
安装位置
在 Mac M1 上,Homebrew 的安装位置不是在从前的 /usr/local/,而是在 /opt/homebrew,这个大家注意。
如果安装过程中还碰到了其他问题,可以看文章的第四部分
可能会碰到的问题
,看看有没有解释。
2. 安装 Python 等环境依赖
cmake、protobuf、rust、python@3.10、git、wget,这些都是在后面安装 Stable Diffusion WebUI 时需要用到的依赖,这里通过一条命令直接安装了。
brew install cmake protobuf rust python@3.10 git wget
复制代码
Stable Diffusion WebUI 的 github 中建议利用 3.10.6,由于高版本的 Python 不支持 torch:
Install Python 3.10.6 (Newer version of Python does not support torch), checking “Add Python to PATH”.
文章写于 2023 年 7 月,后续应该会支持吧~
3. 克隆
上一步执行乐成后,我们举行 Stable Diffusino WebUI 的克隆。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
复制代码
这一步可能会碰到下载不下来,或者下载过程中出错的问题,可以看文章的第四部分
可能会碰到的问题
,看看有没有解释。
如果依然没有办理,直接,干脆,进到 SDW Github 主页,直接下载 Zip 到本地,然后解压就好了。
4. 下载模型
这里包罗三大类:大模型、Lora 模型以及 VAE 模型。(固然另有其他细分小模型,后续先容)
这一步可以先扔一个大模型上去,后续有需要可以再逐步下载其他的。
不想自己下载的话,可以找我要网盘链接。
大模型
放在 stable-diffusion-webui/models/Stable-diffusion 下面
文件后缀:ckpt 或者 safetensors
Lora 模型
放在 stable-diffusion-webui/models/Lora 下面(在没有执行 ./webui.sh
前,是没有 Lora 这个目次的,可以先不放)
VAE 模型
Variational Auto Encoder
可以简单明白为滤镜
放在 stable-diffusion-webui/models/VAE 下面
下载方式一:从 C 站下载(需要特殊网络)
选中「Models」-「筛选」- 选择「Model types」(是大模型、还是 LoRA、还是 VAE等) - 然后选择一个模型点进去。
如果知道要下载的模型的名称的话,也可以直接在搜索框搜索模型名字,然后点进模型。
直接点「Download」按钮举行下载。
下载方式二:从 huggingface 下载
如果登不上 C 站,可以试试 huggingface,方式也比力简单。
选择「Text-to-Image」,按下载量排序,我们选第一个下载量最多的,然后点进去。
切换到「Files and versions」,下面四个后缀为 satetensors 或 ckpt 的就是大模型了,随意下载一个就好。
其中 v1-5-pruned-emaonly 比力小,4 个多 GB,需要的显存少,恰当于推理。
v1-5-pruned 比力小,7个多 GB,需要的更多的显存,恰当于微调。
5. 启动 WebUI
进到 Stable Diffusion WebUI 对应的安装目次:
cd stable-diffusion-webui
复制代码
启动 Stable Diffusion WebUI:
./webui.sh
复制代码
第一次启动,会下载一些组件库和依赖,可能会比力慢,大家耐心等待。
注意
如果上一步没有下载模型,这里也会自动帮我们下载一个默认的模型。由于大模型一般都好几个 GB,下起来比力慢,以是保举大家还是在上一步中自己先将模型下载下来(至少放一个大模型进去,这样这一步就不会再自动去下模型了)。
固然出错最多的也是在启动 WebUI 这个过程。这个过程中会碰到各种各样的报错。我们需要多次停下、办理、再重新执行 ./webui.sh
。
不过不用担心之前的安装都白费了,由于它会从你上次安装到的地方接着往下安装。
如果安装过程中报错了,可以看文章的第四部分「可能会碰到的问题」,看看有没有相应的解释。
当出现 Running on local URL: http://127.0.0.1:7860 的时间,说明 Stable Diffusion WebUI 已经启动好了。
在浏览器中输入 http://127.0.0.1:7860 就可以看到 Stable Diffusion WebUI 的界面了。
温馨提示
在运行过程中,不要关闭 Terminal,否则页面就打不开了。
下次再启动,进到 Stable Diffusion WebUI 对应的目次,执行 ./webui.sh
即可。
如果安装过程中报错了,可以看文章的第四部分「可能会碰到的问题」,看看有没有解释。
四、 可能会碰到的问题
1. 用国内镜像安装 Homebrew 可能出现的问题
问题形貌
办理
大概翻译一下,意思是说,在 “/opt/homebrew/Library/Taps/homebrew/homebrew-core” 的仓库中检测到可疑的所有权,若要为此目次添加非常,请调用:
git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core。
下面另一个错误,也是类似的意思。以是我们只需要按照上面的提示,在命令行中输入这两行,就美满办理了。当再执行 brew -v 就不报错了!
git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core
git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask
复制代码
2. HTTP/2 stream 1 was not closed cleanly before end of the underlying stream
问题形貌
在 git clone 的时间报:
致命错误:无法访问 ‘https://github.com/AUTOMATIC1111/stable-diffusion-webui/’:HTTP/2 stream 1 was not closed cleanly before end of the underlying stream
办理:将通讯协议改成 http/1.1
git config --global http.version HTTP/1.1
复制代码
将通讯协议改成 http/1.1 之后,发现可以正常下载了。
3. Couldn’t install torch.
在执行完 ./webui.sh
后报 “RuntimeError: Couldn’t install torch.”
在 modules/launch_utils.py 中看到了这段解释:
这段解释是说,如果碰到了 “RuntimeError: Couldn’t install torch.” 或者其他问题,可能是 Python 版本的问题,升级或者降级到 3.10 的最新版本,然后删掉 WebUI 目次下的 venv 目次再重试。
但是上面我们明显执行过 brew install cmake protobuf rust python@3.10 git wget
这个命令,其中安装了 Python 3.10 呀。按理说不应该呀。
怀着怀疑的态度我在命令行里输入 python3 -V 举行查看。
咦,一看不得了,这版本咋是 3.9.6?
这个 3.9 的 Python 版本,应该是 Mac 自带的 Python。可能就是由于这个原因导致启动时下载库出错。
于是又从 Python 官网下载了 Python 3.10.10 这个版本。按提示傻瓜式安装就好了。之后还设置了一下环境变量。
# 编辑 ~/.bash_profile
vim ~/.bash_profile
复制代码
文件中参加这三行
PATH="/opt/homebrew/bin/:${PATH}"
export PATH=${PATH}
alias python="/opt/homebrew/bin/python3.10"
复制代码
# 使配置生效
source ~/.bash_profile
复制代码
这时版本就成 3.10.10 了。
然后删掉 WebUI 目次下的 venv 目次,再执行 ./webui.sh
,终于不报错了!就是下的有些慢~
4. Couldn’t install gfpgan.
在执行完 ./webui.sh
后报 “RuntimeError: Couldn’t install gfpgan.”
实在是由于没有下载下来 gfpgan。我们可以从报错信息中找到下载链接,如下图中横线部分,然后 copy 这个链接到浏览器中举行下载,然后将下载好的 zip 文件加压,并将目次名改成 GFPGAN,然后拖到 stable-diffusion-webui 这个目次下就好了。当再次执行 ./webui.sh
时,发现已经跨过 GFPGAN,继续下载其他依赖了。美满办理!
5. Couldn’t install clip.
在执行完 ./webui.sh
后报 “RuntimeError: Couldn’t install clip.”
可以手动下载后安装,就像办理 “Couldn’t install gfpgan” 这个问题一样。但是这里我们换一种办理方式。
打开 modules/launch_utils.py,搜索 https://github.com/ ,在每一处前面都加上 https://ghproxy.com/ ,加完后是这样的 https://ghproxy.com/https://github.com/xxxxx ,如下图。
一共是 7 处,修改完成后生存。再执行 ./webui.sh
,就没有问题了。
为什么这里不用上面办理 gfpgan 的手动下载的方式呢?
看 prepare_environment() 这个方法里,一共定义了 7 处下载所在,如果不用添加署理的方式,大概率接下来在下载 K-diffusion、CodeFormer、BLIP 的时间,也是会报错的。以是这里一起改掉,万事大吉!
这种方法也可以办理以下报错:
Couldn’t install K-diffusion
Couldn’t install CodeFormer
Couldn’t install BLIP
6. Couldn’t install K-diffusion
见 5 办理方法。
7. Couldn’t install CodeFormer
见 5 办理方法。
8. Couldn’t install BLIP
见 5 办理方法。
五、 性能测试
大模型:dreamshaper
Euler:出一张 512 * 512 的图,约 20 ~ 30s
DPM++ SDE Karras:出一张 512 * 512 的图,约 1 ~ 1.5 min
六、 竣事语
Stable Diffusion 本地部署相对于 Stable Diffusion 云部署,最大的两个
长处
就是:
更自由(懂的都懂)!
不费钱,完全免费!
Kaggle 虽然每月可白嫖 30 个小时的算力,但太容易被封,稍微画得上头一些,就被封了。我的账号就被祭了。
Kaggle 被封后,又转战到了 AutoDL,相比于 Kaggle 来说,不那么容易被封,但是需要费钱。大部分机器实例在 1~2 元 / 小时,也不算贵,但是用完后一旦忘记给实例关机,一天几十就出去了。呃,这。。。
以是这周,一顿操作猛如虎,终于在 Mac 上乐成部署了 Stable Diffusion,
实现了 Stable Diffusion 自由
!也将所有踩过的坑,逐一填平并记录了下来。希望可以帮到想在 Mac 上部署 Stable Diffusion 的同砚。
实在在 Mac 本地部署 Stable Diffusion 碰到的大部分问题,根本都是网络造成的。每个人的电脑设置及网络环境都不一样,以是有时会碰到试了好几个办理方案都无法办理的情况。实在我也是。网友说他这么改乐成了,而我那么改,依然不起作用。
以是最后想对大家说的是,
耐心一点,再耐心一点,方法总是有的,问题总会办理!
大家加油!
觉得文章有帮助,记得点赞收藏关注一下呦~
我是程序员X小鹿,前互联网大厂程序员,自由职业 2 年+,一名 AIGC 爱好者,接待一起交换~
小鹿另有一个免费的知识星球(X小鹿的发展星球),星球置顶帖可领内部AI学习资料。平常也会在这里记录日常动态。包罗但不限于 AI、副业、自媒体、自由职业等,接待大家围观~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
没腿的鸟
金牌会员
这个人很懒什么都没写!
楼主热帖
ManageEngine ServiceDesk Plus之CVE漏 ...
Redis事务
北斗授时产品(GPS北斗授时设备)加NTP ...
【必知必会的MySQL知识】④DCL语言 ...
java代码审计-XSS
【牛客】3 时序逻辑
Doris(七) -- 修改表、动态和临时分区 ...
【密码管理器】上海道宁为您提供存储和 ...
我自己的 Python Web 框架
Angular6 教程_编程入门自学教程_菜鸟 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表