尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Mac 本地部署 Stable Diffusion WebUI 完整教程

Mac 本地部署 Stable Diffusion WebUI 完整教程 简介一份面向Mac用户本地部署Stable Diffusion的保姆级教程代码包适合希望深入研究AI绘图并掌握本地环境搭建的开发者、研究人员。内容从Stable Diffusion与Midjourney的优缺点对比切入明确其更贴合专业使用场景并提供Mac硬件配置要求和网络环境准备清单帮助用户提前规避部署障碍。压缩包共3个文件包含HTML说明页、inscode脚本配置和gitignore规则整体仅5KB轻量易用。教程覆盖Homebrew、Python、stable-diffusion-webui及模型文件的下载与安装国内和国外源方案均有说明同时详细讲解运行webui.sh的步骤及常见报错排查方法并附SD界面预览与后续使用注意事项帮助用户快速上手并顺利跑通全流程。已有104人学习此代码包适合按图索骥式完成部署实践。 Mac 上跑 Stable Diffusion搁两年前还是个挺折腾的事。那时候想在本地玩 AI 绘图基本是 Linux 或者 N 卡 Windows 的天下Mac 用户要么去薅在线服务的羊毛要么看着教程里一行行 CUDA 相关的报错干瞪眼。后来 Apple 的 M 系列芯片带着自家 GPU 强势入场PyTorch 的 MPS 后端也逐步成熟Mac 才慢慢成了跑 SD 一个相当可行的平台。这篇教程就针对 Mac 用户从零开始把 Stable Diffusion WebUI 的部署流程完整走一遍。你会看到完整的代码命令、安装步骤、环境配置细节以及我在实际部署中踩过的坑和最终沉淀下来的可用方案。不管你用的是 M1、M2 还是 M3 芯片的 MacBook 或者 Mac mini只要系统是 macOS 12 以上照着这份流程走基本都能顺利跑起来。先说清楚这东西能干什么以及为什么值得折腾Stable Diffusion 是一个开源的大规模文本生成图像模型也就是俗称的“本地部署大模型”里的一个典型代表。部署在自己电脑上之后你不需要联网、不需要按张付费、不需要排队随时可以生成高质量的图片还能自由训练风格化模型、调整采样参数、搞图生图、修复老照片之类的进阶玩法。对于设计师、内容创作者、程序员甚至只是对 AI 绘感兴趣的人来说自己的 Mac 上能跑 SD意味着创作自由度和隐私安全都上了一个台阶。写这篇教程的另外一个目的是替大家把碎片化的资料整理清楚。Mac 部署 SD 的资料网上不少但很多都是截几张图、丢几条命令缺上下文也缺解释。真正部署过的朋友都知道卡壳的地方往往不是那几条命令本身而是命令背后缺失的依赖环境、版本匹配、路径配置这些细节。所以这篇文章里我不只把代码贴出来还会把每一步的“为什么这么做”讲清楚顺带把我试错过程中总结出的经验教训放进去。适合看这篇教程的朋友主要是三类人一是想在 Mac 上本地跑 SD 但被各种教程劝退的新手二是在其他平台已经部署过 SD、刚换到 Mac 需要快速上手的开发者三是对 AI 绘画感兴趣、想深入了解本地部署完整流程的技术爱好者。无论你是哪种这篇文章都会给你一套直接可用、可复现的方案。1. 部署前的准备与整体思路在动手输入命令之前我建议你先花五分钟了解一下整件事的大致轮廓。Mac 上部署 Stable Diffusion本质上做的事情就三件装好基础运行环境、把 WebUI 项目代码拉下来、下载模型权重文件。听起来简单但每一步都有不少细节值得先说清楚。1.1 为什么选择 WebUI 而不是纯代码调用你可能在 GitHub 上见过 Stable Diffusion 的原始代码仓库里面全是 Python 脚本和模型加载逻辑。理论上你确实可以只靠原始代码库生成图片只要写一段 Python 脚本调用模型接口就行。但实际使用中这种方式的体验很糟糕——参数调整靠改代码生成过程看不到直观进度想对比不同参数的效果更是费劲。所以我个人强烈推荐使用 AUTOMATIC1111 开发的 stable-diffusion-webui这也是目前社区里最成熟、功能最完整的 SD 图形化界面之一。它把模型加载、提示词输入、参数调节、图片预览、历史记录这些功能全部集成到一个网页界面里。你在浏览器里操作界面友好功能强大而且对新手和老手都很友好。简单说原版代码库是引擎WebUI 是仪表盘你要日常开车肯定选仪表盘齐全的。Mac 上跑 WebUI 还有一个特别大的优势它借助了 PyTorch 的 MPSMetal Performance Shaders后端可以直接调用 Apple 芯片的 GPU 进行加速计算。相比 CPU 计算生成速度能提升好几倍而且显存和内存统一架构的设计让大模型的载入和推理过程在这里反而没那么捉襟见肘。实际体验下来8G 统一内存的 Mac 也能勉强跑起来16G 以上的体验就比较流畅了。1.2 Mac 芯片差异对部署的影响Mac 目前主流的芯片就是 M 系列M1/M2/M3 家族部署步骤基本一致。不过有一些细节差异我这里直接明确一下免得你卡在奇怪的报错上芯片类型部署差异注意事项M1 / M2 / M3 系列全部支持 MPS 加速部署步骤完全一致建议 macOS 12.3 以上PyTorch 2.0 以上Intel 芯片 Mac不支持 MPS 加速只能用 CPU 计算生成速度极慢一张 512x512 图可能需要几分钟8G 内存机型可运行但容易内存吃紧建议开启--medvram或--lowvram参数16G 以上内存体验较好可尝试更大分辨率、同时开多个任务如果你手里是 Intel 芯片的 Mac这篇教程的操作步骤依然适用但你要有心理准备生成速度会比较感人。我自己的主力机是 M1 Pro16G 内存生成一张 512x512 的图片大约 10 到 15 秒这个速度已经基本可用了。1.3 部署的整体流程预览整个部署过程可以拆成五个阶段安装基础依赖工具Homebrew、Git、Python 3.10/3.11创建独立的 Python 虚拟环境避免污染系统环境克隆 stable-diffusion-webui 项目代码安装项目依赖配置模型文件启动 WebUI在浏览器中开始使用五个阶段走完你就能拥有一个属于自己的本地 AI 绘画服务了。后续还涉及到模型切换、参数调优、插件安装等内容这些在文章第四部分也会提到。在开始之前我建议你先确认一下 Mac 上的磁盘剩余空间。完整部署下来基础环境加大约 1GB 的依赖库加模型文件轻松超过 10GB。如果装了多个模型占用的空间会更多。磁盘不够的话后续下载模型会很痛苦所以提前清理出来一点空间会比较稳妥。2. 环境搭建实操Homebrew、Git 与 Python这个阶段是整条链路里最容易出问题的地方因为 Mac 系统自带的 Python 版本和 Git 工具往往不符合要求而且系统的 Python 环境非常宝贵不适合直接装包。我自己的做法是用 Homebrew 安装独立的 Python 版本再用 Python 自带的venv创建虚拟环境把 SD 的依赖全部隔离在里面。2.1 安装 HomebrewHomebrew 是 Mac 上的包管理器可以把它理解为 macOS 平台的“应用商店”只不过它是命令行版的。安装它只需要一行命令/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)这个命令会下载并执行 Homebrew 的安装脚本。整个过程可能需要几分钟取决于你的网络状况。安装完成后系统会提示你配置环境变量通常是让你执行两行echo命令把 Homebrew 的路径加到 shell 配置里。这一步容易忽略但很重要不配置的话后续brew命令会提示找不到。安装完成后用brew --version验证一下。如果输出版本号说明安装成功。2.2 安装 GitGit 是代码版本管理工具拉取 WebUI 项目代码需要用到它。macOS 系统通常自带 Git但版本可能较旧。我建议直接通过 Homebrew 安装最新版brew install git装完后运行git --version验证。如果之前已经装过重新安装一次也只是覆盖更新不会有副作用。2.3 安装 Python 3.10 或 3.11Stable Diffusion WebUI 目前对 Python 版本的兼容性并不是无限制的。我实测过Python 3.10 和 3.11 是最稳妥的选择3.12 目前还有部分依赖包编译报错的风险。用 Homebrew 装 Python 3.11brew install python3.11安装完之后Homebrew 会把 Python 3.11 安装到一个独立目录并且在你的 PATH 里添加python3.11命令。验证方式python3.11 --version如果你是第一次安装可能还需要手动把 Python 的路径加到 shell 配置里。在终端执行echo export PATH/opt/homebrew/bin:$PATH ~/.zshrc source ~/.zshrc注意Apple Silicon 的 MacHomebrew 的安装路径是/opt/homebrewIntel 芯片则是/usr/local如果你的 Mac 是 Intel记得替换路径。我第一次在这上面吃过亏路径写错导致后面很多命令找不到排查了好一会儿。2.4 创建虚拟环境虚拟环境是 Python 项目隔离依赖的机制。每个项目有自己的依赖库互不干扰。这个好习惯能避免很多依赖冲突的坑。这里我创建一个专门放 SD 的目录然后在里面初始化虚拟环境mkdir -p ~/sd-webui cd ~/sd-webui python3.11 -m venv venv source venv/bin/activate执行完source venv/bin/activate后终端命令行开头会出现(venv)字样表示你已经进入虚拟环境。之后的python和pip命令都会在这个虚拟环境内生效不会再污染系统 Python。虚拟环境这一步虽然只是多打几条命令但价值非常大。WebUI 的依赖里有不少涉及编译的包如果直接装到系统 Python 里一旦跟其他项目冲突或者哪天想卸载就会很麻烦。隔离之后出问题直接把整个目录删掉重来就行干净利落。3. 克隆 WebUI 项目与安装依赖环境准备好之后就进入正题了把 WebUI 的项目代码拉下来然后安装依赖。这是整个部署流程中最消耗时间的一步也是报错最集中的区域。我会把安装过程中最常见的坑一个个拆开讲。3.1 克隆 stable-diffusion-webui在虚拟环境激活的状态下直接克隆 AUTOMATIC1111 的仓库cd ~/sd-webui git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git cd stable-diffusion-webui克隆完成后你会得到一个完整的项目目录。里面包含了 WebUI 的全部源码、启动脚本、依赖配置等。不需要看懂每一行代码但最好大致知道几个关键目录目录/文件作用webui.sh启动脚本Mac/Linux 用webui.pyPython 启动入口models/Stable-diffusion/存放模型文件的目录后续下载的大模型都放这里outputs/生成图片的输出目录repositories/存放 Stable Diffusion 核心代码及相关仓库requirements.txtPython 依赖列表3.2 手动安装依赖而不是依赖启动脚本自动安装WebUI 的启动脚本webui.sh在第一次运行时会自动检测依赖并安装但自动安装的过程在 Mac 上经常因为各种原因失败。所以我更推荐先把依赖手工装好再启动 WebUI这样出错了也更容易定位。WebUI 的依赖主要分为两部分一是requirements.txt里列出的直接依赖二是项目运行时会用到的各个 Git 子仓库也就是repositories/目录下的那些代码仓库。第一次运行时WebUI 会尝试拉取这些子仓库并安装它们的依赖这个环节也是网络问题的重灾区。手工安装时先更新 pip 并安装基础依赖python3.11 -m pip install --upgrade pip pip install torch torchvision torchaudio在 Mac 上安装 PyTorch默认会安装支持 MPS 的版本。安装完后可以用一行 Python 代码验证 MPS 是否可用import torch print(torch.backends.mps.is_available())如果输出True说明你的 Mac 可以正常使用 GPU 加速。这一步非常关键建议安装完就验证。然后安装 WebUI 的 requirements 依赖pip install -r requirements.txt这个过程中有几个包是需要编译的比如tokenizers、grpcio等。如果你的 Xcode Command Line Tools 没装完整编译阶段可能会报错。所以我在前面准备阶段特别强调要装好基础开发工具。确保你的 Mac 上执行过xcode-select --install如果弹出安装窗口正常安装即可这是 Mac 上编译工具链的基础。3.3 首次启动与模型下载依赖安装完成后可以尝试启动 WebUI 了。这里我建议先用下面这个命令python webui.py --skip-torch-cuda-test --no-half首启动时WebUI 会检查并拉取它需要的 Git 子仓库比如stable-diffusion-stability-ai、k-diffusion、CLIP等。这个过程可能需要几分钟视你的网络而定。如果中途报错多半是网络问题重试几次一般能过。重点来了WebUI 本身并不自带模型权重文件。首次启动后你还得手动去下载一个 Stable Diffusion 模型。社区最常用的基础模型是Stable Diffusion v1.5原版也有各种基于它微调的风格化模型比如二次元风格的 Anything V5、写实风格的 ChilloutMix 等。模型文件的下载渠道通常是 Hugging Face。以 SD v1.5 为例下载命令cd ~/sd-webui/stable-diffusion-webui/models/Stable-diffusion curl -L -o v1-5-pruned-emaonly.safetensors https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors注意两个细节一是模型后缀是.safetensors而不是.ckptsafetensors 格式更安全加载速度也更快这是目前社区的主流推荐二是下载文件的体积不小v1.5 的 pruned 版本大约 4GB提前准备好磁盘空间。下载完成后重新启动 WebUI模型就能被自动识别到了。4. 核心配置与性能优化找到适合 Mac 的启动参数很多人安装完 SD 之后发现生成一张图要等两分钟就以为自己的电脑不行。实际上很可能只是没配置好启动参数。对于 Mac 机型合理的参数配置能让生成速度提升数倍也能避免很多内存相关的报错。4.1 Mac 专属的启动参数组合我在 M1 Pro16G上反复测试过最终常用的启动命令是这样的python webui.py --skip-torch-cuda-test --no-half --use-cpu all --medvram --precision full --no-half-vae这里逐个解释每个参数的含义这很重要因为你得知道自己在调什么参数作用说明--skip-torch-cuda-test跳过 CUDA 检测Mac 上没有 CUDA必须加这个参数否则启动直接报错--no-half禁用半精度推理Mac 上半精度支持不完善禁用后图片质量更稳定--use-cpu all指定所有模块用 CPU这个看情况——如果你 MPS 报错或图片出现黑图就加上--medvram中等显存优化8G/16G 内存的 Mac 建议加上减少内存占用--precision full全精度计算配合--no-half使用避免生成图片出现噪点--no-half-vaeVAE 也用全精度解决图片发灰、色彩异常的问题实际踩坑经验一开始我在 M1 Pro 上不加--use-cpu all虽然 MPS 能跑但偶尔会出现生成图片偏黑或者色彩失真的情况尤其是用过一些社区模型之后更明显。后来查了很多资料发现这个跟部分算子在 MPS 上的兼容性有关。在 Mac 上用 CPU 跑虽然牺牲了一点速度但胜在稳。如果你对生成速度有刚需可以试一下只去掉--use-cpu all并保留 MPS 加速生成的图如果质量没问题也可以接受。4.2 内存不足问题的应对方案内存不足是 Mac 部署 SD 最常见的坑尤其是 8G 内存的机型。如果你在生成图片时看到类似RuntimeError: MPS backend out of memory的报错说明内存已经撑不住了。几个缓解方案按推荐程度排序开启--medvram或--lowvram在显存优化模式下模型会被分块加载显著降低峰值内存占用。其中的原理是SD 的推理过程分为采样循环和图像解码等若干阶段不是所有模型权重都要同时驻留在内存里优化模式会智能地按需加载。调低图片分辨率512x512 是主流选择尝试 1024x1024 时内存会翻好几倍。关闭其他大内存应用浏览器标签页、视频剪辑软件等在生成图片前最好关掉。增加系统 swap 空间不推荐治标不治本频繁交换数据会拖慢速度而且伤 SSD。如果你的 Mac 是 8G 内存我会建议你在跑 SD 的时候不要开别的重型应用生成速度虽然会慢些但至少能稳定运行。4.3 WebUI 界面中的关键参数建议部署完成、界面正常打开后网页端的参数设置也很关键。几个直接影响出图效果的参数参数建议范围说明Sampling methodEuler a、DPM 2M Karras前者速度快后者质量高Mac 上性能差距不大Sampling steps20~30太高不会明显提升质量只增加耗时CFG Scale7~10默认 7 起步数值越大越贴近提示词但容易过曝Batch count / Batch size都先设为 1Mac 上多图并行容易内存失控这里特别提醒一点不要盲目追求高步数。很多人以为步数越高图越清晰其实 20 步和 50 步在视觉上差别很小但耗时差了将近一倍。在 Mac 上效率就是生命能省则省。5. 常见问题与实战排查技巧部署过程中几乎每个人都会遇到至少一两个报错。这里把我在 Mac 上折腾 SD 时遇到的高频问题整理成一份排查表附上解决方案希望你能少走弯路。5.1 按启动阶段整理的报错速查表错误现象可能原因解决方案No module named torch虚拟环境未激活先执行source venv/bin/activateCUDA not available没加启动参数启动命令加--skip-torch-cuda-testRuntimeError: MPS backend out of memory显存不足加--medvram或--lowvram降低分辨率生成图片全黑/全灰VAE 不兼容或半精度问题加--no-half-vae或用 CPU 模式ImportError: cannot import name softmax依赖版本冲突重新安装 requirementspip install -r requirements.txt --upgrade启动卡在Downloading...网络问题检查网络或配置代理后重试git clone失败网络问题多试几次或用镜像仓库源生成图片速度极慢MPS 未启用验证torch.backends.mps.is_available()必要时重装 PyTorch这些坑里最让我印象深刻的是“生成图片全黑”那个问题。当时我换了模型后生成出来的图片全部是纯黑色一度以为是模型文件损坏。查了一个多小时最后发现是半精度计算的问题。自那以后我就老老实实加上了--no-half和--no-half-vae再没出现过类似情况。5.2 模型文件相关的高频问题模型下载和放置也是新手踩坑重灾区。常见的有这几种情况模型放置后界面不显示检查文件是否放在models/Stable-diffusion/目录下后缀是否为.safetensors或.ckpt。如果没问题点击 WebUI 界面左上角的刷新按钮或者完全重启 WebUI。模型加载后图片风格不对不同模型的侧重点完全不同有的模型专攻写实摄影有的专攻二次元转绘。加载模型后记得在提示词里加一些风格相关的触发词模型页面一般会说明否则效果可能跟预期差距很远。磁盘空间不够一个大模型动辄 4GB 到 7GB多个模型叠加起来非常占空间。建议保留一个基础模型加一两个风格化模型就够用了别贪多。清理不用的模型时直接删除对应文件即可。5.3 排查思路从日志中找到真凶最后分享一个通用排查思路。WebUI 启动时会在终端输出大量日志信息很多人看到英文日志就慌了其实只要抓住几个关键词就行error/Error/Traceback错误的核心位置RuntimeError运行时错误后面通常会跟着具体原因ImportError/ModuleNotFoundError缺依赖CUDA/MPS跟硬件加速相关Downloading/Connection跟网络相关遇到问题不要慌先把最后一行报错信息复制下来去搜索引擎或者 GitHub Issues 里搜基本都能找到解决方案。社区的力量是巨大的你踩过的坑八成之前就有人踩过了。我在实际使用中还发现一个特别实用的排查技巧备份记录。每成功运行一次的启动命令、模型文件组合、使用的参数方案我都会记录到本地备忘里。这样一旦后续调整某样东西导致出问题可以快速回滚到之前稳定可用的状态。这个习惯帮我省下了很多来回折腾的时间。6. 从部署到创作进阶玩法与实际体验当 WebUI 正常运行、模型也加载成功后你可能会想“接下来呢”这一步就从能跑到会用。SD 并不是一个简单输入一句话就出图的玩具它的上限很高但需要一些调校技巧和想象力。6.1 提示词书写的基本逻辑Stable Diffusion 是靠提示词驱动的提示词的质量直接决定出图质量。这里有个核心原则让模型理解你的意图越具体越好。比如你想生成“一只猫在窗台上晒太阳”不要只写a cat可以写a fluffy white cat sitting on a windowsill, warm sunlight, cozy atmosphere, photorealistic, high detail。负面提示词同样重要它告诉模型不要出现什么。不想让图片模糊、变形、多余肢体就写上blurry, deformed, extra limbs, bad anatomy。这组负面提示词几乎可以作为通用模板。Mac 上生成一次图需要一定时间所以建议在输入提示词之后先小尺寸、低步数跑一张预览图调整满意后再放大尺寸精修可以节省不少时间。6.2 图生图与进阶功能WebUI 的功能远不止文生图。图生图img2img可以让你上传一张参考图让模型在此基础上进行修改例如改变画风、修复瑕疵、变换场景等。你只需要调整“Denoising strength”这个参数值越低越接近原图越高越接近重新生成根据需求灵活调节即可。如果你是设计师可能还会用到“局部重绘”Inpaint功能。你可以用画笔在图片上框住某个区域然后单独对这块区域重新生成内容实现类似 Photoshop 的局部修复效果。这个功能在修复老照片、移除路人、更换背景时特别实用。6.3 加速生成的小技巧虽然 M 系列芯片已经很强但在 SD 推理这种高计算量任务上依然没法跟高端 N 卡硬碰硬。不过几个小技巧还是能把速度提上来一截尽量保持 512x512 分辨率用Hires. fix放大功能提升大图质量而不是直接用高分辨率生成。因为高分辨率生成本身在采样阶段就非常吃内存和算力而低分辨率生成再加放大速度和效果都能兼顾。调整采样器。在 Mac 上实测Euler a比DPM 2M Karras快 10% 到 20%且质量差距不大。如果只是快速出图预览用Euler a更划算。控制批量任务。不要一次开启Batch count大于 1 的生成任务Mac 上多任务并行会导致内存急剧膨胀反而拖慢整体速度。需要多图的时候可以调成一个个串联生成。6.4 生态扩展插件与模型社区WebUI 之所以强大除了核心功能之外还因为它有庞大的插件生态。比较值得装的有ControlNet通过对图像进行边缘检测、姿势估计等方式精确控制生成图像的构图和内容是进阶玩家必装插件。LoRA一种轻量级的模型微调方式可以在不换大模型的前提下为图片添加特定角色、风格或元素。社区里有很多公开的 LoRA 模型可以直接下载使用。Textual Inversion将特定概念或风格“教”给模型类似 LoRA 但更加轻量。这些插件的安装方式很简单在 WebUI 的Extensions标签页里粘贴插件的 Git 仓库地址点击 Install 就行。安装完成后重启 WebUI 即可。模型社区的推荐首选自然是 Hugging Face 和 Civitai 这两个平台。Civitai 上有大量风格化模型和示例图你可以在上面参考别人的提示词和参数组合然后拿到本地实测。不过需要注意版权问题商用时要看模型的具体授权协议。整个 Mac 部署 Stable Diffusion 的流程走下来你会发现其实并没有想象中那么复杂。核心就三件事环境、代码、模型。环境用 Homebrew 解决代码用 Git 拉取模型从 Hugging Face 下载。但每件事背后的细节和坑确实需要有人提前踩一遍、整理出来。我个人在实际部署中体会最深的一点是保持耐心学会看日志。SD 的报错信息虽然多但绝大多数都不是致命的很多只是网络问题或者依赖缺失多查查、多试试总能解决。另外不要总是追求最新版本有时候稳定版本反而用得更省心。最后再分享一个小技巧第一张图生成成功之后记得把 WebUI 整个目录备份一份到移动硬盘。之后万一系统出问题或者误删文件直接把备份恢复就能用免去重新下载 4GB 模型和配置环境的时间。这个习惯我一直在用相当省心。你在自己的 Mac 上部署成功后不妨从自己感兴趣的风格开始玩起比如用 SD 生成一套手机壁纸、给朋友做一张生日贺卡或者尝试把老照片修复一下。当亲手生成的图片打印出来或者发给朋友的那一刻你会觉得之前所有的折腾都是值得的。本文还有配套的精品资源点击获取
返回列表