A
返回 經驗
經驗2026/04/20 君澤智庫研究員 Bryan Chan8 分鐘閱讀

在 Mac M2 上部署 ComfyUI 踩坑記錄

記錄在 Apple Silicon Mac 上從零部署 ComfyUI 的全過程,包括 PyTorch MPS 配置、模型下載、常見報錯和解決方案。

環境

  • MacBook Pro M2 Max, 32GB RAM
  • macOS 15 Sequoia
  • Python 3.11

步驟 1:安裝 ComfyUI

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

踩坑 1:PyTorch MPS 報錯

第一次啟動時出現:

RuntimeError: MPS backend out of memory

原因:MPS 的內存管理不如 CUDA 成熟,大模型容易 OOM。

解決:在啟動命令加上 --lowvram

python main.py --lowvram

或者限制 MPS 緩存:

export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.5

踩坑 2:模型路徑

ComfyUI 默認從 models/ 讀取。放置模型時注意子目錄結構:

ComfyUI/
└── models/
    ├── checkpoints/     # SD 基礎模型 (.safetensors)
    ├── vae/             # VAE 模型
    ├── clip/            # CLIP 模型
    ├── loras/           # LoRA 權重
    └── controlnet/      # ControlNet 模型

踩坑 3:HuggingFace 下載慢

使用 huggingface-cli + 鏡像加速:

pip install huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download stabilityai/stable-diffusion-xl-base-1.0 --local-dir models/checkpoints/

最終配置

我的啟動腳本 start.sh

#!/bin/bash
source venv/bin/activate
export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.3
python main.py --lowvram --listen 0.0.0.0 --port 8188

效能數據

模型 分辨率 耗時 內存
SD 1.5 512×512 ~15s ~6GB
SDXL 1024×1024 ~45s ~14GB
SDXL + LoRA 1024×1024 ~50s ~16GB

實際使用場景

場景一:電商產品圖生成 你需要為 100 個 SKU 生成不同背景的產品圖。配置 ComfyUI 工作流:輸入產品白底圖 → ControlNet 提取輪廓 → 提示詞描述場景("product on a marble desk, soft lighting, studio quality")→ 批量生成。一張 SDXL 圖約 45 秒,100 張約 75 分鐘,比用雲端服務節省大量費用。

場景二:UI 設計靈感板 設計師需要快速生成不同風格的 mockup。使用 ComfyUI + LoRA 模型(如 midjourney-style),輸入簡短提示詞即可得到高質量參考圖。相比手動搜索,效率提升 10 倍以上。

進階優化:使用 ComfyUI-Manager 管理插件

# 安裝 ComfyUI-Manager
cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
pip install -r ComfyUI-Manager/requirements.txt

# 重啟 ComfyUI,在 Manager 中一鍵安裝常用節點:
# - ControlNet 預處理器
# - IPAdapter(風格遷移)
# - WAS Node Suite(圖像處理工具集)
# - ComfyUI-Impact-Pack(自動檢測)

性能調優:自定義啟動參數

#!/bin/bash
# start-optimized.sh
source venv/bin/activate
# MPS 內存控制
export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.3
# 使用 fp16 減少內存
export PYTORCH_ENABLE_MPS_FALLBACK=1
python main.py \
  --lowvram \
  --fp16-vae \
  --force-fp16 \
  --listen 0.0.0.0 \
  --port 8188 \
  --front-end-version Comfy-Org/ComfyUI_frontend@latest

結論

Mac M2 跑 ComfyUI 是可行的,但需要合理的記憶體管理。7B LLM + SD 同時跑會爆 RAM,建議分開使用。MPS 的生態還在改進,但日常使用已經足夠。

推薦閱讀