Mac M4 安装 sd-webui 踩坑全记录

本地跑 Stable Diffusion 的想法很简单,执行起来就不是那么回事了。从 AUTOMATIC1111 的 sd-webui 克隆下来,bash webui.sh 一敲,错误接连出现。以下是完整的踩坑过程和对应解法。

坑一:CLIP wheel 构建失败

安装过程中出现的第一个拦路虎:

复制代码
ERROR: Failed to build 'https://github.com/openai/CLIP/archive/d50d76d...zip'
when getting requirements to build wheel

根本原因是 setuptools 版本过高(70+),改变了 wheel 构建行为,与 CLIP 的旧版 setup.py 不兼容。解决方法是降级 setuptools,再加 --no-build-isolation 让 pip 跳过隔离,直接用当前环境里已装好的版本来构建:

bash 复制代码
# 激活 venv
source venv/bin/activate

# 降级 setuptools
pip install setuptools==69.5.1

# 重装 CLIP,跳过构建隔离
pip install git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
    --no-build-isolation

--no-build-isolation 是什么:pip 默认在临时隔离环境里构建 wheel,与你当前环境完全隔开。加上这个参数后,pip 跳过隔离,直接用你手动装好的 setuptools 来构建,绕过了版本冲突。这是应急手段,不建议日常使用。

如果报 ModuleNotFoundError: No module named 'pkg_resources',同样是 setuptools 问题,强制重装即可:

bash 复制代码
pip install --force-reinstall setuptools==69.5.1

坑二:git 要求输入 GitHub 账号密码

克隆依赖仓库时卡住,终端提示 Username for 'https://github.com':。GitHub 早已废除密码登录,这里需要用 SSH 或 Token。最一劳永逸的方法是告诉 git 把所有 HTTPS 请求自动转成 SSH:

bash 复制代码
git config --global url."git@github.com:".insteadOf "https://github.com/"

前提是本机已有 SSH key 并添加到 GitHub。没有的话先生成:

bash 复制代码
ssh-keygen -t ed25519 -C "your_email@example.com"
cat ~/.ssh/id_ed25519.pub   # 复制公钥,粘贴到 GitHub Settings - SSH keys

坑三:Stability AI 仓库已删,克隆报 404

这是 2025 年底开始出现的一个新问题。sd-webui 安装时需要克隆 Stability-AI/stablediffusion,但这个仓库已经被删除或设为私有,所有新装用户都会遇到:

复制代码
RuntimeError: Couldn't clone Stable Diffusion.
remote: Repository not found.

官方在 dev 分支已将克隆源改为可用的 fork,切换过去即可:

bash 复制代码
cd /path/to/stable-diffusion-webui
git checkout dev
bash webui.sh

不想换分支的话,手动克隆 fork 仓库也行,克隆完 webui 会自动跳过这步:

bash 复制代码
cd repositories
git clone https://github.com/w-e-w/stablediffusion.git \
    stable-diffusion-stability-ai

坑四:HuggingFace 下载超时,模型和 tokenizer 全卡死

国内访问 HuggingFace 不稳定,默认模型(4GB 的 SD 1.5)和 CLIP tokenizer 都要从那里拉,一旦网络不通就卡住不动。最简单的修法是写入 webui-user.sh,让所有请求走镜像:

bash 复制代码
# webui-user.sh
export HF_ENDPOINT=https://hf-mirror.com

如果 tokenizer 已经报错退出,需要手动把文件预下载到 HuggingFace 缓存目录:

bash 复制代码
mkdir -p ~/.cache/huggingface/hub/models--openai--clip-vit-large-patch14/snapshots/main
cd ~/.cache/huggingface/hub/models--openai--clip-vit-large-patch14/snapshots/main

BASE=https://hf-mirror.com/openai/clip-vit-large-patch14/resolve/main
for f in tokenizer.json tokenizer_config.json vocab.json merges.txt \
          special_tokens_map.json config.json preprocessor_config.json; do
    curl -L -o $f $BASE/$f
done

7 个文件全部下完,再重新运行 webui.sh 即可跳过这步。

M4 专属优化配置

踩完以上四个坑,webui 终于能启动了。但 Apple Silicon 上还有性能调优的空间,把以下配置写入 webui-user.sh,一次到位:

bash 复制代码
#!/bin/bash
export HF_ENDPOINT=https://hf-mirror.com
export PYTORCH_ENABLE_MPS_FALLBACK=1
export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.75   # 16GB 内存推荐值

export COMMANDLINE_ARGS="
  --skip-torch-cuda-test
  --no-half
  --upcast-sampling
  --opt-sub-quad-attention
  --use-cpu interrogate
"

几个参数的说明:--no-half 是因为 M4 的 MPS 对 float16 支持不稳定,用 float32 更安全;--upcast-sampling 防止生成图出现黑块;--opt-sub-quad-attention 是 Apple Silicon 上效果最好的 attention 实现;--use-cpu interrogate 把图像反推功能切回 CPU,MPS 上有已知 bug。

确认 MPS 可用:

bash 复制代码
python -c "import torch; print(torch.backends.mps.is_available())"
# 应该输出 True

M4 跑 SD 1.5 模型,512x512 分辨率 20 步大约 15-25 秒,日常使用体验流畅。推荐采样器用 DPM++ 2M,同等质量下步数可以压到 15 步,速度再快一截。


整个安装过程踩了四个坑,每个坑背后都有具体原因:setuptools 版本兼容性、GitHub 认证方式变化、上游仓库被删、国内网络访问限制。理解原因比记住命令更重要,下次遇到类似报错才能快速定位。

报错不是障碍,是理解工具运作方式的入口。

我是 Yuguo,软件设计师,正在用 AI 重构自己的开发工作流。

踩过的坑、跑通的方案、省下来的时间,都记在绿泡泡 Feed中。 一起把 AI 真正用起来。

相关推荐
守城小轩3 小时前
Chromium 146 编译指南 macOS篇:获取源代码(四)
macos
comcoo3 小时前
避坑指南:OpenClaw v2.7.9 Windows/macOS 零基础安装全过程
人工智能·windows·macos·github·开源软件·open claw·open claw部署包
robinLi09134 小时前
docker mac 下载不同系统架构镜像
macos·docker·容器
卡卡西Sensei4 小时前
2026 苹果 WWDC 完整总结
macos·ios·wwdc
Tr2e19 小时前
🐱 从 0 到 1:用 Swift 手搓一个 macOS 桌面宠物(附源码)
macos·ios·swift
Mac技巧大咖21 小时前
macOS 27 或成 Intel Mac 分水岭:老款 Mac 用户升级前要注意什么?
macos·macos 27
上天_去_做颗惺星 EVE_BLUE1 天前
【新 Linux 服务器上手全攻略】系统巡检、存储规划与开发环境初始化
linux·运维·服务器·ubuntu·macos·centos
REDcker1 天前
WWDC2026系统更新综述
macos·ios·开发者·apple·wwdc·ipados·wwdc2026
hugo_im1 天前
Mac M4 安装 sd-webui 踩坑全记录
stable diffusion