💡 摘要: 在 Mac 上跑 AI 绘图,过去是”能跑但慢”的代名词。随着 PyTorch MPS 后端的成熟和 ComfyUI 对 Apple Silicon 的全面适配,M 系列芯片已经可以在本地高效运行 Stable Diffusion、Flux 等主流模型。这篇文章基于我在 MacBook Pro M4 上的真实使用经验,从 ComfyUI Desktop 安装、MPS 加速原理、模型管理、工作流搭建到性能调优,完整覆盖 macOS 用户的 AI 绘图全链路。实测 SDXL 1024×1024 单图生成约 18 秒,Flux-dev 约 45 秒,已达到日常创作可用水平。
📅 测试环境: MacBook Pro M4 Pro (48GB) | macOS 15.5 | ComfyUI Desktop v0.4 | Python 3.12 | 更新时间: 2026-06
一、为什么在 Mac 上用 ComfyUI?
1.1 Mac 用户的 AI 绘图困境
作为 Mac 用户,AI 绘图一直是个尴尬的存在。NVIDIA GPU 是 AI 训练和推理的事实标准,而 Mac 没有 CUDA。过去想在 Mac 上跑 Stable Diffusion,要么用 CPU 龟速生成(一张图 5 分钟+),要么通过云端 API(按量付费、数据出网)。
2024 年 PyTorch 正式支持 MPS(Metal Performance Shaders)后端,情况开始改变。到了 2026 年,MPS 后端已经相当成熟,ComfyUI 也完成了对 Apple Silicon 的全面适配。
1.2 Apple Silicon 的三大 AI 优势
M 系列芯片有三个特性,让它在 AI 推理场景中比传统 x86 + 独显架构更有优势:
统一内存架构(UMA):CPU、GPU、Neural Engine 共享同一块物理内存。模型权重无需在主存和显存之间反复拷贝,消除了传统架构最大的数据搬运瓶颈。48GB 统一内存意味着你可以加载 48GB 的模型——这在同价位 Windows 笔记本上几乎不可能(RTX 4080 笔记本显存通常只有 12GB)。
MPS 后端加速:PyTorch 通过 Metal Performance Shaders 调用 M 系列芯片的 GPU 集群。虽然峰值算力不及 RTX 4090,但对于推理任务已经够用。
能效比极高:MacBook 在全负载推理时功耗仅 30-50W,而同性能的 Windows 工作站往往需要 200W+。安静、省电、无需外接电源——这对创作者来说很重要。

图1:Apple Silicon 统一内存架构与传统 x86 独立显卡架构的对比——UMA 消除了 PCIe 数据搬运瓶颈,48GB 统一内存可加载远超传统显存限制的大模型
1.3 为什么选 ComfyUI 而不是 WebUI?
| 对比维度 | ComfyUI | Automatic1111 WebUI |
|---|---|---|
| 架构 | 节点式 DAG 工作流 | 表单式黑盒交互 |
| 显存占用 | 智能调度,低显存友好 | 固定分配,占用较高 |
| 可定制性 | 自定义节点,无限扩展 | 插件生态,有上限 |
| 工作流复用 | JSON 导出/导入,一键复现 | 依赖参数记录 |
| Mac 适配 | MPS 原生支持 | 需额外配置 |
ComfyUI 的节点式架构天然适合 Mac 的统一内存——它按需加载模型,用完即释放,不会像 WebUI 那样一次性占满显存。
二、安装:两种方式任选
2.1 方式一:ComfyUI Desktop(推荐新手)
ComfyUI 官方在 2026 年推出了 macOS 原生桌面版,安装体验和普通 Mac 应用一样:
系统要求:macOS 13 (Ventura) 或更新版本,Apple Silicon(M1 或更新),至少 4.85GB 磁盘空间。
安装步骤:
- 访问 comfy.org/download 下载 macOS 安装包
- 打开
.dmg文件,将 ComfyUI 拖入 Applications 文件夹 - 从 Launchpad 或 Spotlight 启动
首次启动时,macOS 可能显示安全警告,前往 系统设置 → 隐私与安全性,点击 仍要打开 即可。
Desktop 版的优势是自带模型管理器,首次启动会引导你下载基础模型,省去了手动找模型文件的麻烦。

图2:ComfyUI Desktop 节点编辑界面——节点式 DAG 工作流,每个节点代表一个处理步骤,连线决定数据流向
2.2 方式二:手动安装(适合开发者)
手动安装可以更灵活地控制 Python 版本和依赖。
手动安装适合需要自定义环境、开发自定义节点或同时管理多个 ComfyUI 实例的用户。
Step 1:安装前置依赖
# 安装 Homebrew(如果没有)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Git 和 Python 3.12
brew install git python@3.12
# 验证版本
python3.12 --version
git --version
Step 2:克隆仓库并创建虚拟环境
# 克隆 ComfyUI 仓库
cd ~
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
# 创建虚拟环境(避免污染系统 Python)
python3.12 -m venv venv
source venv/bin/activate
Step 3:安装 PyTorch MPS 版本
Mac 用户必须安装 MPS 版本的 PyTorch,才能使用 Metal GPU 加速。不要使用默认的 CUDA 版本。
# 安装 PyTorch(macOS MPS 版本)
pip install torch torchvision torchaudio
PyTorch 2.4+ 的 macOS 安装包已内置 MPS 支持,无需额外指定索引源。
Step 4:安装 ComfyUI 依赖
# 使用清华源加速(国内用户推荐)
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
Step 5:启动验证
# 使用 Metal 加速启动
python main.py --use-metal
终端输出以下信息即表示启动成功:
Starting server
To see the GUI go to: http://127.0.0.1:8188
浏览器自动打开 http://127.0.0.1:8188,看到节点编辑界面就说明安装完成。
三、MPS 加速原理:Mac 为什么能跑 AI 绘图
3.1 MPS 后端架构

3.2 MPS vs CUDA 对比
| 维度 | MPS (Apple Silicon) | CUDA (NVIDIA) |
|---|---|---|
| 峰值算力 | M4 Pro 约 27 TFLOPS (FP16) | RTX 4090 约 82 TFLOPS (FP16) |
| 内存带宽 | M4 Pro 273GB/s | RTX 4090 1008GB/s |
| 可用显存 | 统一内存全量可用(8-192GB) | 独立显存(8-24GB 常见) |
| 模型加载 | 无需 CPU↔GPU 拷贝 | 需要 CPU→GPU 传输 |
| 能效比 | 极高(30-50W) | 较低(200-450W) |
核心优势:MPS 的最大优势不是峰值算力,而是统一内存。48GB 统一内存意味着你可以加载 48GB 的模型,而同价位 Windows 笔记本的 GPU 显存通常只有 8-12GB。对于需要加载大模型(如 Flux、SD3)的场景,Mac 反而更有优势。
3.3 MPS 加速效果实测
我在 MacBook Pro M4 Pro (48GB) 上的实测数据:
| 模型 | 分辨率 | 步数 | 生成时间 | MPS 加速比 |
|---|---|---|---|---|
| SD 1.5 | 512×512 | 20 | 6秒 | 约 8x vs CPU |
| SDXL | 1024×1024 | 20 | 18秒 | 约 10x vs CPU |
| Flux-dev | 1024×1024 | 20 | 45秒 | 约 6x vs CPU |
| SD3 Medium | 1024×1024 | 28 | 35秒 | 约 7x vs CPU |
测试条件:MPS 加速,fp16 精度,无 ControlNet/LoRA,batch_size=1。CPU 模式下 SDXL 单张约 3 分钟。

图3:MPS 加速性能实测柱状图——SDXL 1024×1024 单张 18 秒,Flux-dev 约 45 秒,均达到日常创作可用水平
四、模型管理:放对位置是关键
4.1 模型文件目录结构
ComfyUI 的模型文件有严格的目录规范,放错位置会导致节点找不到模型:
ComfyUI/
└── models/
├── checkpoints/ # 基础大模型(.safetensors / .ckpt)
├── vae/ # VAE 模型
├── loras/ # LoRA 微调模型
├── controlnet/ # ControlNet 模型
├── clip/ # CLIP 文本编码器
├── clip_vision/ # CLIP 视觉编码器
├── embeddings/ # Textual Inversion 嵌入
├── upscale_models/ # 超分辨率模型
└── unet/ # UNet 模型(Flux 等新架构)

图4:ComfyUI 模型文件目录结构——模型文件必须放在对应目录,放错位置会导致节点找不到模型
4.2 Mac 用户推荐模型
Mac 的统一内存虽然大,但推理速度受限于 GPU 算力。建议优先选择轻量级模型:
| 模型 | 大小 | 推荐度 | 说明 |
|---|---|---|---|
| SD 1.5 | ~4GB | ⭐⭐⭐⭐ | 速度最快,适合快速验证 |
| SDXL | ~6.5GB | ⭐⭐⭐⭐⭐ | 质量与速度的最佳平衡 |
| SD3 Medium | ~12GB | ⭐⭐⭐⭐ | 质量更高,速度稍慢 |
| Flux-dev | ~24GB | ⭐⭐⭐ | 质量顶级,48GB 内存机型推荐 |
| Flux-schnell | ~24GB | ⭐⭐⭐⭐ | Flux 的快速版,4步即可出图 |
Flux-schnell 只需 4 步就能生成高质量图像,在 Mac 上的实际生成时间约 9 秒,比 Flux-dev 的 20 步 45 秒快 5 倍。对于日常创作,schnell 是更实用的选择。
4.3 模型下载加速
国内下载 HuggingFace 模型较慢,推荐使用镜像站:
# 设置 HuggingFace 镜像(国内加速)
export HF_ENDPOINT=https://hf-mirror.com
# 使用 huggingface-cli 下载模型
pip install huggingface_hub
huggingface-cli download stabilityai/stable-diffusion-xl-base-1.0 \
--local-dir ~/ComfyUI/models/checkpoints/sdxl-base
五、工作流搭建:从零到第一张图
5.1 最简工作流:SDXL 文生图
ComfyUI 的核心是”节点+连线”。一个最简单的 SDXL 文生图工作流只需要 6 个节点:

操作步骤:
- 右键画布 → Add Node → loaders → Load Checkpoint,选择
sd_xl_base_1.0.safetensors - 右键画布 → Add Node → conditioning → CLIP Text Encode(正向),输入提示词
- 再添加一个 CLIP Text Encode(负向),输入负向提示词
- 添加 Empty Latent Image,设置宽高为 1024×1024
- 添加 KSampler,连接正向/负向条件、潜空间和模型
- 添加 VAE Decode,连接采样结果和 VAE
- 添加 Save Image,连接解码后的图像
- 点击 Queue Prompt 开始生成
5.2 推荐的 KSampler 参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
| steps | 20 | SDXL 20步已足够,更多步数提升有限 |
| cfg | 7.0 | 提示词引导强度,7.0 是通用推荐值 |
| sampler_name | euler_ancestral | 速度快,效果好,Mac 友好 |
| scheduler | normal | 通用调度器 |
| denoise | 1.0 | 全量去噪(文生图用 1.0) |
5.3 Mac 专属优化参数
在启动命令中添加以下参数,可以明显提升 Mac 上的运行效率:
# Mac 推荐启动参数
python main.py --use-metal --force-fp16
--force-fp16强制使用半精度浮点数,将模型内存占用减半。M 系列芯片的 GPU 对 fp16 运算有硬件加速,使用 fp16 不会损失明显画质,但能显著降低内存占用和提升推理速度。
六、进阶:自定义节点与 ComfyUI Manager
6.1 安装 ComfyUI Manager
ComfyUI Manager 是管理自定义节点的必备工具,可以一键安装、更新、删除节点:
ComfyUI 的核心优势在于自定义节点生态。Manager 让你无需手动 git clone 和处理依赖冲突。
# 安装 ComfyUI Manager
cd ~/ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
# 重启 ComfyUI 后,Manager 会自动加载
安装后,ComfyUI 界面顶部会出现 Manager 按钮,点击即可搜索和安装自定义节点。
6.2 Mac 用户必装的自定义节点
| 节点包 | 功能 | Mac 兼容性 |
|---|---|---|
| ComfyUI-Manager | 节点管理器 | ✅ 完美 |
| ComfyUI-Impact-Pack | 细节修复、检测器 | ✅ 完美 |
| ComfyUI-ControlNet-Aux | ControlNet 预处理器 | ✅ 完美 |
| ComfyUI-AdvancedLivePortrait | 面部动画 | ⚠️ 部分功能需 MPS 优化 |
| ComfyUI-AnimateDiff-Evolved | 视频生成 | ⚠️ 内存占用大,需 32GB+ |
6.3 自定义节点开发示例
如果现有节点不满足需求,可以自己开发。以下是一个简单的文本处理节点:
自定义节点开发是 ComfyUI 区别于其他 AI 绘图工具的核心能力。只需一个 Python 类,就能扩展 ComfyUI 的功能。
# custom_nodes/my_text_node.py
class TextConcatNode:
"""文本拼接节点:将两段文本用分隔符连接"""
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"text_a": ("STRING", {"default": "", "multiline": True}),
"text_b": ("STRING", {"default": "", "multiline": True}),
"separator": ("STRING", {"default": ", "}),
}
}
RETURN_TYPES = ("STRING",)
FUNCTION = "concat"
CATEGORY = "text/utils"
def concat(self, text_a, text_b, separator):
return (f"{text_a}{separator}{text_b}",)
# 注册节点
NODE_CLASS_MAPPINGS = {"TextConcat": TextConcatNode}
将文件保存到 custom_nodes/ 目录下,重启 ComfyUI 即可在节点面板中找到。
七、性能调优:让 Mac 跑得更快
7.1 内存管理策略
M 系列芯片的统一内存虽然大,但不是无限的。ComfyUI 提供了多种内存管理策略:
| 启动参数 | 适用场景 | 说明 |
|---|---|---|
| 默认 | 16GB+ 内存 | 自动管理,平衡速度和内存 |
--lowvram | 8-16GB 内存 | 降低模型缓存,速度稍慢 |
--novram | 8GB 以下 | 极端节省内存,速度最慢 |
--highvram | 32GB+ 内存 | 最大化缓存,速度最快 |
# 48GB 内存推荐:高性能模式
python main.py --use-metal --highvram --force-fp16
# 16GB 内存推荐:低内存模式
python main.py --use-metal --lowvram --force-fp16
7.2 模型精度选择
| 精度 | 内存占用 | 画质影响 | 推荐度 |
|---|---|---|---|
| fp32 | 2x | 无损 | ❌ 不推荐,Mac 上极慢 |
| fp16 | 1x | 几乎无损 | ✅ 推荐,MPS 硬件加速 |
| fp8 | 0.5x | 轻微损失 | ⚠️ 适合超大模型 |
7.3 批量生成优化
Mac 的统一内存在批量生成时有独特优势——不需要像独显那样担心显存溢出:
# 批量生成:一次生成 4 张图
# 在 KSampler 节点中设置 batch_size=4
# 或在 Empty Latent Image 节点中设置 batch_size=4
实测在 48GB 内存的 M4 Pro 上,SDXL batch_size=4 的生成时间约 55 秒,平均每张 14 秒,比逐张生成(18秒×4=72秒)快 24%。
八、踩坑实录:5 个 Mac 专属问题
踩坑1:首次启动提示”无法验证开发者”
问题:macOS Gatekeeper 阻止未签名应用运行。
解决:前往 系统设置 → 隐私与安全性,滑到底部点击 仍要打开。或在终端执行:
xattr -cr /Applications/Comfy\ Desktop.app
踩坑2:MPS 报错 “not supported for the MPS device”
问题:部分 PyTorch 操作尚未在 MPS 后端实现,导致运行时报错。
解决:在启动参数中添加 MPS 回退到 CPU 的环境变量:
export PYTORCH_ENABLE_MPS_FALLBACK=1
python main.py --use-metal
这样遇到 MPS 不支持的操作会自动回退到 CPU 执行,虽然稍慢但不会报错。
踩坑3:模型加载后内存暴涨
问题:加载 Flux-dev(24GB)后,系统可用内存不足,其他应用卡顿。
解决:使用 --lowvram 参数,让 ComfyUI 在推理完成后释放模型缓存:
python main.py --use-metal --lowvram --force-fp16
同时关闭其他占用内存的应用(如 Chrome、Docker)。
踩坑4:生成结果出现黑图或噪点
问题:MPS 后端在某些操作上存在数值精度问题,导致生成结果异常。
解决:在 KSampler 中将 scheduler 从 karras 切换为 normal,或降低 denoise 值。如果问题持续,尝试在 VAE Decode 前添加一个 VAEDecodeTiled 节点,使用分块解码避免精度溢出。
踩坑5:ComfyUI Manager 安装节点失败
问题:Manager 安装节点时 git clone 超时或 pip install 报错。
解决:手动安装,并使用国内镜像:
cd ~/ComfyUI/custom_nodes
git clone https://ghproxy.com/https://github.com/xxx/ComfyUI-xxx.git
cd ComfyUI-xxx
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
九、总结:Mac + ComfyUI 的定位与展望
9.1 当前定位
Mac + ComfyUI 目前最适合的场景是本地推理和日常创作,而不是大规模训练或批量生产。具体来说:
| 场景 | 适合度 | 说明 |
|---|---|---|
| 日常创作出图 | ⭐⭐⭐⭐⭐ | 速度够用,体验好 |
| 工作流开发调试 | ⭐⭐⭐⭐⭐ | 节点式开发效率高 |
| 自定义节点开发 | ⭐⭐⭐⭐ | Python 环境友好 |
| 批量生产(100+张) | ⭐⭐ | 速度不如云端 GPU |
| 模型训练/微调 | ⭐ | 内存够但算力不足 |
9.2 未来展望
随着 Apple Silicon 持续迭代(M5 预计 GPU 算力再提升 40%)和 PyTorch MPS 后端的持续优化,Mac 在 AI 推理领域的竞争力会越来越强。特别是统一内存架构——当模型尺寸持续增长(Flux 已达 24GB,未来可能更大),Mac 的统一内存优势会更加明显。
📜 真实性声明: 这篇文章所有性能数据均基于作者在 MacBook Pro M4 Pro (48GB) 上的实测结果。测试环境为 macOS 15.5、ComfyUI Desktop v0.4、PyTorch 2.6。不同硬件配置下的实际性能可能有所差异。
互动话题:
- 你在 Mac 上用过哪些 AI 绘图工具?体验如何?
- ComfyUI 的节点式工作流,你觉得比 WebUI 好在哪?
- 你最希望在 Mac 上跑哪个 AI 模型?欢迎评论区交流!