news 2026/9/1 12:11:31

Mac部署Stable Diffusion完整指南:WebUI安装与MPS加速配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mac部署Stable Diffusion完整指南:WebUI安装与MPS加速配置

简介:面向希望在Mac本地部署Stable Diffusion的AI绘图爱好者与开发者,这份轻量代码包将环境搭建中的关键步骤与配置整理为可直接查阅的HTML页面,帮助用户避开从依赖安装到模型下载的常见坑点。压缩包共3个文件,以HTML教程页为主体,辅以inscode配置与gitignore文件,整体仅5KB,便于随时打开浏览器对照操作。已有104人学习/下载。内容涵盖Stable Diffusion与Midjourney的选型差异,以及电脑配置、网络环境等前置准备要求;随后逐步说明相关依赖工具与Web界面组件的获取方式,并提供国内外下载方案、启动脚本运行流程和常见报错处理思路;同时给出SD界面预览与使用注意事项,使初学者也能按图索骥,在Mac上顺利完成本地部署并快速上手AI绘图。整个教程以网页形式呈现,结构清晰,无需额外安装阅读器;文字与配置示例结合的方式也适合边看边操作,便于复制命令、记录进度和对照排查问题。对于想深入AI绘图的用户,这份资料可作为本地环境搭建的随身参考。

1. 需求分析与部署思路

1.1 为什么要在 Mac 上部署 Stable Diffusion

很多人觉得玩 Stable Diffusion 必须要有一张 NVIDIA 显卡,这个印象其实只对了一半。Stable Diffusion 本身是 PyTorch 框架下的开源模型,底层推理依赖的是 CUDA 生态,但苹果的 Mac 走的完全是另一条路——Metal Performance Shaders(MPS)。M 系列芯片的 Mac 凭借统一内存架构,在跑 SD 时表现相当不错,尤其是大内存版本(比如 32GB、64GB 的 Mac Studio),甚至能出 1024x1024 这种高分辨率图而不爆显存。

我做这次部署用的是 MacBook Pro M1 Pro 16GB 版本,说实话,速度肯定比不上同价位的 RTX 显卡机器,但它强在安静、功耗低、移动方便。对于想低成本入门 SD、或者手上只有 Mac 又想体验 AI 绘画的人来说,这套流程完全行得通。

我先把这事的结论说清楚:Mac 上跑 Stable Diffusion 最靠谱的方案是使用 AUTOMATIC1111 的 stable-diffusion-webui,配合官方提供的 MPS 支持。它不需要装什么额外的显卡驱动,只要 Python 环境和 Xcode Command Line Tools 装好,基本就能跑起来。部署的本质就三件事:把 WebUI 源码拉到本地、装好依赖、下载模型权重。

1.2 硬件与软件的基本要求

先对照一下自己手头的机器,别装到一半发现跑不动,那才叫折腾。

项目最低要求建议配置
芯片M1 及以上M1 Pro / M2 / M3 系列
内存8GB16GB 以上
硬盘空间约 20GB建议 50GB 以上
macOS 版本12.3+14.x(Sonoma)
Python3.103.10.6 或 3.11.x

Intel 芯片的老 Mac 不是不能跑,但速度会感人,而且 WebUI 新版对 MPS 的优化基本集中在 Apple Silicon 上,所以如果你还在用 Intel Mac,建议先死心,除非只是体验一把。硬盘方面要注意,默认模型库那点空间看起来不大,但多下载几个模型就上几十 GB 了,放系统盘容易挤爆,有条件就外接 SSD 装模型。

软件层面,不需要单独装 CUDA,这是 Mac 部署跟 Windows/Linux 最大的区别。你需要的是 Python 3.10+ 和 Git,这两个是硬门槛。另外强烈建议先装好 Xcode Command Line Tools,很多底层编译依赖它,后面装 torch 扩展的时候会省掉一堆报错。

2. 部署前的环境准备

2.1 Python 环境与 Homebrew 安装

Mac 自带的 Python 版本比较旧,而且默认是只读系统目录,直接装包容易踩权限坑。我建议先用 Homebrew 装一个用户态的 Python,这样后续所有依赖都可以干净的安装在用户目录里。

Homebrew 没装的话,先装它(这是 macOS 上最常用的包管理器):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

装完 Homebrew 后更新仓库并安装 Python:

brew update brew install python@3.10

安装之后确认一下 Python 路径:

which python3.10 python3.10 --version

这里有个细节值得说清楚:为什么优先选 Python 3.10 而不是最新的 3.12?因为 Stable Diffusion WebUI 依赖的一堆第三方库(比如 torch、transformers、xformers)对最新 Python 的适配经常滞后,3.10 属于生态适配最成熟的版本,踩坑最少。等以后各库都跟上去了再升也不迟。

装完 Python 之后,建议顺手确认一下 pip 命令指向的是不是同一个 Python:

python3.10 -m pip --version

这个习惯很重要。我见过太多人遇到"pip 装的包找不到"的问题,最后发现是 pip 指向了系统的 Python 2。养成用python3.10 -m pip这种完整写法,能绕开大部分环境错乱。

2.2 Git 与 Xcode Command Line Tools

WebUI 源码是从 GitHub 拉取的,Git 是绕不开的第一步。macOS 上只要你尝试运行git命令,系统就会弹窗引导你安装 Command Line Tools——直接同意就行。装完再验证:

git --version xcode-select --version

Xcode Command Line Tools 不只是给 Git 提供凭证服务,更关键的是 WebUI 里很多 Python 包在 Mac 上安装时需要本地编译,编译器工具链就依赖这个。别跳过去装这一步,后面提示clang: command not found的时候再回来补就很尴尬。

如果你的网络访问 GitHub 比较慢,可以考虑配置好 Git 的代理(比如公司网络有代理的情况),或者直接用国内镜像站拉取。但这一步根据个人网络情况灵活处理就行,如果克隆速度正常就不用额外折腾。

3. 核心部署流程与代码实现

3.1 拉取 WebUI 源码仓库

基础环境准备完毕,接下来进入正式部署。我习惯把项目放在专门的工作目录里,比如~/sd

mkdir -p ~/sd && cd ~/sd git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git cd stable-diffusion-webui

这一步拉到的代码是最新的开发版。很多教程会让你拉 release 分支或者写死某个版本的 tag,但我实测下来,直接拉主分支一般问题不大,官方对主分支的维护很勤快,反而某些老版本可能跟新版 macOS 水土不服。

克隆完成后,目录里有一个叫webui.sh的启动脚本,这个脚本是后面所有操作的总入口。先看一下目录结构,确认关键文件都在:

ls -la

你会看到webui.shrequirements.txtmodules等核心文件。这里要注意一个点:先看脚本,不要急着执行。用编辑器打开webui.sh,找到关于TORCH_COMMAND的配置片段。默认情况下,脚本会自动判断系统架构并安装对应版本的 PyTorch,但 Mac 上偶尔会把 CPU 版本的 torch 装上,导致后续跑模型慢到怀疑人生。为了确保用的是 MPS 加速版本,可以手动指定:

export TORCH_COMMAND="pip install torch torchvision torchaudio"

这是全局安装命令。如果你想用虚拟环境隔离,避免和系统其他 Python 项目互相干扰,可以加上--use-pep517之类参数,不过一般直接装也行。

3.2 创建虚拟环境并安装依赖

进入 WebUI 目录之后,我的习惯是创建一个独立的 Python 虚拟环境,而不是直接往全局环境堆依赖。因为 SD WebUI 的依赖列表非常庞大(几十个包),如果未来项目迁移或删掉,也不会污染系统的 Python。

cd ~/sd/stable-diffusion-webui python3.10 -m venv venv source venv/bin/activate

激活虚拟环境后,输入which python应该指向.../venv/bin/python,这才说明环境用对了。

接着安装核心依赖。注意,这里不建议直接执行完整的webui.sh让他一步到位,那样遇到错误排查起来很头痛。我习惯分步安装:

pip install --upgrade pip pip install -r requirements.txt

这一步会下载大量依赖包,包含 torch 这个大块头(在 Mac 上约 200MB 左右),耐心等待即可。如果遇到网络超时,可以用国内 PyPI 镜像加速:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

requirements.txt 安装完成后,还需要补几个 Apple Silicon 上常用的加速组件:

pip install pygit2==1.12.2

pygit2是 WebUI 用来检查模型版本信息的库,不装也能跑,但版本检查功能会失效,界面会一直显示 "unknown version",看着烦。

3.3 项目结构里重要的配置项

下面说几个 WebUI 目录里的关键文件和目录,搞清楚它们对后面排查问题至关重要:

路径作用
models/Stable-diffusion/放主模型权重(核心!)
models/Lora/放 LoRA 微调权重
models/VAE/放 VAE 权重(修复灰图用)
outputs/生成的图片输出目录
webui.sh启动入口
webui-user.sh用户覆盖配置(自定义启动参数)

强烈建议最开始的模型就放在默认的models/Stable-diffusion/目录,等熟悉了再改外部路径映射。WebUI 虽然支持通过--ckpt-dir参数指定模型文件夹,但对新手没必要,默认路径最简单可靠。

还有一个文件是webui-user.sh,里面有一行COMMANDLINE_ARGS,这是传启动参数的地方。Mac 上我建议从这一行开始:

COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half --use-cpu all --precision full --no-half-vae"

这一段参数我解释一下,每一个都很关键:

  • --skip-torch-cuda-test:跳过 CUDA 检测。因为 Mac 没有 CUDA,不跳过就直接退出。
  • --no-half:禁用半精度。Apple Silicon 上跑半精度容易出 NaN 噪点图,禁用后出图质量更稳。
  • --use-cpu all:强制 CPU/MPS 运算。这是 Mac 上跑 WebUI 的默认路径,虽然名字里带 CPU,但实际会走 MPS 加速。
  • --no-half-vae:防止 VAE 解码出现黑图或灰图。
  • --precision full:全精度计算,避免 MPS 下的精度损失问题。

我刚开始在 Mac 上部署的时候,就是因为没加--no-half,出的图全是彩色噪点,排查了半天才发现是这个原因。这些参数是 Apple Silicon 用户踩了无数坑总结出来的经验,直接用就好。

4. 模型权重下载与配置

4.1 模型怎么选、去哪里下

Stable Diffusion 的模型文件放在 Hugging Face 上,常见的几个基础模型:

  • stable-diffusion-v1-5:经典基础模型,约 4GB,通用性最好
  • sdxl-base-1.0:新版基础模型,约 7GB,画质更好但显存要求更高
  • sdxl-turbo:优化版 SDXL,生成速度更快,适合低显存设备

搜索热词里出现了 “stable diffusion 模型网”,说明很多人不知道去哪找模型。我常用的渠道是 Hugging Face 官网以及国内的镜像站,直接在搜索框输入stable diffusion,找下载量高的模型就对了。Mac 上跑 SD 1.5 模型是最稳妥的,等基本流程跑通了再尝试 SDXL,避免一上来就卡在资源不足的坎上。

4.2 模型下载与放置技巧

模型下载完成后,把.safetensors文件放到models/Stable-diffusion/目录。.safetensors格式比老式的.ckpt更安全、加载更快,建议优先选这种格式。

因为模型文件动辄好几 GB,浏览器直接下很容易断。我推荐用命令行下载,支持断点续传,也更稳定:

curl -L -o models/Stable-diffusion/v1-5-pruned.safetensors \ https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors

模型放好后,记得也配一下 WebUI 的模型路径参数。实际上默认路径就是上面的目录,但为了可维护性,也可以在webui-user.shCOMMANDLINE_ARGS里显式指定:

COMMANDLINE_ARGS="... --ckpt-dir /Users/xxx/sd/stable-diffusion-webui/models/Stable-diffusion"

5. 首次启动与出图验证

5.1 启动 WebUI

现在正式启动。回到项目目录,激活虚拟环境:

cd ~/sd/stable-diffusion-webui source venv/bin/activate ./webui.sh

第一次启动会比较慢,因为 WebUI 会对模型做 hash 计算和元数据解析,期间控制台会滚动大量日志。看到Running on local URL: http://127.0.0.1:7860就说明启动成功。

然后打开浏览器访问http://127.0.0.1:7860,就能看到 WebUI 的漂亮界面了。

5.2 首次出图与参数验证

第一次出图建议直接使用默认参数,只修改提示词。比如输入:

a cute corgi dog, sitting on the grass, morning sunlight, high detail, 4k

然后点击 Generate。M1 Pro 16GB 跑 512x512 的图大概 20 到 40 秒一张,比你想象中慢,但能接受。跑完图看一下生成的质量,如果颜色正常、轮廓清晰,说明部署成功。

如果出图是灰色或者全是噪点,回到 3.3 节检查启动参数;如果模型加载报错,检查模型文件是否放在正确路径。

5.3 界面功能快速上手

WebUI 界面里的核心参数:

  • Prompt:正向提示词,描述你想画的东西
  • Negative prompt:反向提示词,告诉模型不想要什么
  • Sampling method:采样器,推荐 Euler a 或 DPM++ 2M Karras
  • Sampling steps:采样步数,20 到 30 比较均衡
  • Width/Height:画面宽高,Mac 上建议先 512x512 跑通

这里有个 Mac 特有的建议:内存 16GB 以下时,别一上来就调 1024x1024,一是生成时间暴增,二是 MPS 内存不足直接崩。先从 512 开始,跑通了再慢慢往上调。

6. 常见问题排查与优化实测

6.1 Mac 部署高频报错与解法

我把实际踩过的坑整理成了一张速查表,基本覆盖了新手阶段的绝大部分问题:

报错信息原因解决方案
Torch is not able to use GPUtorch 装成了 CPU 版TORCH_COMMAND指定重新安装 torch
RuntimeError: MPS out of memory内存不足降低分辨率/减小 batch size;关掉其他内存大程序
AttributeError: module 'torch' has no attribute 'mps'torch 版本过旧pip install --upgrade torch
ImportError: cannot import name 'clean' from 'diffusers'diffusers 版本冲突pip install --upgrade diffusers transformers
subprocess.CalledProcessError某组件编译失败确认已安装 Xcode Command Line Tools
No module named 'pygit2'缺版本检查库pip install pygit2

其中MPS out of memory是 Mac 用户最容易踩且最烦的。我的解决办法是:往下调分辨率、关闭网页后台多余标签页、重启 webui 进程。如果还不行,就再加一个启动参数:

--medvram

这个参数会把部分计算挪到 CPU 上,用一点速度换稳定性,对小内存 Mac 很有效。

6.2 参数优化与加速心得

接下来是 Mac 上提升出图速度的几条实测经验。

第一,采样步数不需要太高。很多人迷信 50 步、60 步,其实 20 到 30 步足矣,步数提高对画质提升非常有限,但耗时几乎翻倍。在 Mac 上这叫“花钱买罪受”。

第二,用xformers优化注意力计算。不过要注意,新版 WebUI 对 xformers 在 MPS 上的支持还有点看运气。我实测 M1 Pro 上装 xformers 有时候反而会报错,所以如果默认配置能跑,就别乱加。

第三,Small memory 用户的终极方案是用--medvram配合--precision full --no-half,牺牲速度换稳定性,出图不会崩。

第四,如果一次生成多张图,把 batch count 调小、batch size 保持 1。很多人一次性生成 4 张、8 张,小内存机器直接爆。老老实实一次一张,最多两张。

6.3 使用 LoRA 与额外模型文件

部署只是第一步,真正有意思的是玩 LoRA 和风格模型。你下载的 LoRA 文件(也是.safetensors格式)放在models/Lora/目录,然后在 WebUI 界面的 Prompt 区域下面找到额外的模型选择按钮,点选后会自动在提示词里追加类似<lora:模型名:0.8>的文本。这个0.8就是权重,数值越大影响越强。

Mac 上跑 LoRA 我没有遇到过额外的瓶颈,因为 LoRA 的参数量很小,对显存的影响可以忽略。真正的瓶颈还是基础模型的采样过程。

6.4 外接 SSD 管理与多版本共存

最后说一个偏进阶但很实际的技巧——管理多个模型。我的models/Stable-diffusion/目录里有六七个模型,为了不把硬盘塞满,之前提到过可以用--ckpt-dir参数指向外接 SSD:

COMMANDLINE_ARGS="... --ckpt-dir /Volumes/SD-Models/stable-diffusion"

把模型放外接 SSD 上,WebUI 需要启动时扫描模型目录,USB 3.0 以上接口的速度完全够用,不会拖慢加载速度。搭配一个models/Stable-diffusion的软链接做兼容,也不影响以后切换模型。

根据我个人实际操作的经验,Mac 上部署 Stable Diffusion 最值得记住的一条原则是:别照搬 Windows 教程,也别盲目贪新。版本选老不选新,模型选通用不选复杂,参数先稳定再追求速度。整个部署流程走一遍之后,你基本就摸清了这套工具链的脾性,之后再尝试更复杂的 ControlNet、风格化微调,都会顺利很多。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 12:11:28

从oqc0514.zip看OQC出货检验:数据规范与改善价值

简介&#xff1a;这份压缩包是一套制造执行系统&#xff08;MES&#xff09;基础版的完整前后端项目&#xff0c;面向工厂信息化实施人员、工业软件开发者及MES初学者&#xff0c;适合用于二次开发、功能定制或学习生产管理流程的落地实现。包体共80个文件&#xff0c;总大小约…

作者头像 李华
网站建设 2026/9/1 12:10:25

超级机器人大战zop资源处理:从镜像到存档的工程化指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/1 12:09:40

LVGL嵌入式GUI实现灵动岛:非侵入式实时信息展示方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/1 12:09:13

基于DeepSeek Harness框架构建Obsidian专属AI智能体实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/1 12:09:07

C/C++循环语句全解析:从while/for到嵌套与流程控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华