Stable Diffusion 在 macOS 上的安装与常见问题解决
Stable Diffusion 在 macOS 系统下的安装配置及常见问题解决方案。涵盖 Homebrew 环境搭建、Python 版本配置、WebUI 仓库克隆及模型放置方法。针对运行中常见的 Torch 版本不匹配、SDP 后端不可用、OpenCV 依赖缺失及显存精度报错等问题提供配置文件修改和命令修复方案,帮助用户完成本地部署。

Stable Diffusion 在 macOS 系统下的安装配置及常见问题解决方案。涵盖 Homebrew 环境搭建、Python 版本配置、WebUI 仓库克隆及模型放置方法。针对运行中常见的 Torch 版本不匹配、SDP 后端不可用、OpenCV 依赖缺失及显存精度报错等问题提供配置文件修改和命令修复方案,帮助用户完成本地部署。

本文介绍在 macOS 系统下安装 Stable Diffusion WebUI 的步骤及常见问题的解决方法。
$ /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"
// 等待即可,检查是否安装成功
brew -V
// 打印出 homebrew 4.0.11 表示安装成功
brew install cmake protobuf rust [email protected] git wget
也可以去官网下载安装包 3.10.9 或者 3.10.10,手动安装。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
可以使用资料包里的模型,注意下载后放置目录 stable-diffusion-webui/models/Stable-diffusion/ 下。模型有 ckpt 文件,也有 safetensors 文件,统统放进去就行。
在终端中进入你安装的 stable-diffusion-webui 目录,运行 ./webui.sh。
第一次运行会安装一些依赖,这个过程会遇到诸多问题,下面列举几个解决方案。
SD 运行需要 Python 3,但默认可能是 Python 2。覆盖它可能会导致系统脚本和其他依赖默认 Python 的软件出现问题。一般我们采用软连的方式,如:sudo ln -s /usr/local/bin/python3 /usr/bin/python,但是你会发现报错 ln: /usr/bin/python: Operation not permitted。
建议按照下面的步骤来:
(1) 查看版本
which python
# /usr/bin/python
which python3
# /usr/local/bin/python3
(2) 编辑 profile 文件
vi ~/.bash_profile
# 末尾追加内容
alias python="/usr/local/bin/python3"
alias python2="/usr/bin/python"
(3) 生效启用
source ~/.bash_profile
这里还有个问题,如果新开一个终端界面,需要重启这个命令才能生效。
错误日志提示 Torch 版本不对:
You are running torch 1.12.1.
The program is tested to work with torch 2.0.0.
To reinstall the desired version, run with commandline flag --reinstall-torch.
解决方案:在安装目录 stable-diffusion-webui 下,编辑 webui-macos-env.sh 文件。
原来的配置文件如下:
export install_dir="$HOME"
export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate"
export TORCH_COMMAND="pip install torch==1.12.1 torchvision==0.13.1"
export K_DIFFUSION_REPO="https://github.com/brkirch/k-diffusion.git"
export K_DIFFUSION_COMMIT_HASH="51c9778f269cedb55a4d88c79c0246d35bdadb71"
export PYTORCH_ENABLE_MPS_FALLBACK=1
修改好的配置文件如下:
(1) 在 COMMANDLINE_ARGS 参数的后面添加了 --reinstall-torch
(2) export TORCH_COMMAND 将 torch 的版本修改成 2.0 的
export install_dir="$HOME"
export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate --reinstall-torch"
export TORCH_COMMAND="pip install torch==2.0.1 torchvision==0.15.2"
#export TORCH_COMMAND="pip install torch==1.12.1 torchvision==0.13.1"
export K_DIFFUSION_REPO="https://github.com/brkirch/k-diffusion.git"
export K_DIFFUSION_COMMIT_HASH="51c9778f269cedb55a4d88c79c0246d35bdadb71"
export PYTORCH_ENABLE_MPS_FALLBACK=1
这个提示其实还是跟依赖版本有关,OpenCV 版本太老,可以这样手工更新一下:
cd venv/bin
source activate
./python3.10 -m pip install --upgrade pip
pip3 install opencv-python==4.6.0.66 deactivate
或者也会有这样的提示 Failed to create model quickly; will retry using slow method. 其实都是显卡的问题,一般我们工作自用的电脑的显存都不太能够的,所以这里需要修改一下运行方式:
编辑 webui-user.sh,添加:
export COMMANDLINE_ARGS="--precision full --no-half --skip-torch-cuda-test"
或者我个人采用以下运行方式:
./webui.sh --precision full --no-half
大家注意这里的 half,如果你有足够的计算资源和内存,最简单的解决方案是将数据类型更改为全精度(float32),我们这里强调一半,其实就是半精度替代实现方案。有兴趣可以去了解一下问题。
本地跑起来了,确实比较慢,风扇都要转费了。SD 跑图除了需要通常所说的描述要到位,还要选合适的模型或者插件,才能做出理想的图片。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online