Windows 上部署 ComfyUI 的性能调优要点
一 基础环境优化
- 组件版本匹配优先:建议使用 Python 3.10.x、PyTorch 2.7.0+,CUDA 选择 11.8 或 12.1;显卡驱动需支持所选 CUDA(如驱动版本过低会报 “CUDA driver version is insufficient”)。安装后用下列脚本自检:
import torch; print(torch.__version__, torch.cuda.is_available(), torch.version.cuda, torch.cuda.get_device_name(0))
若 CUDA 不可用,先升级驱动,再按驱动支持的上限安装对应 PyTorch 与 CUDA 版本。
- 虚拟环境隔离:使用 venv/conda 管理依赖,避免插件与包冲突导致性能异常或崩溃。
- 路径与权限:模型与缓存放在高速盘(如 NVMe SSD),避免网络盘/重定向路径引发 I/O 抖动。
二 GPU 与 WSL2 加速
- 启用 WSL2 并合理分配资源:在用户目录创建 %USERPROFILE%.wslconfig,示例:
[wsl2]
memory=16GB
swap=8GB
processors=8
执行 wsl --shutdown 后重启生效;用 wsl cat /proc/meminfo | grep MemTotal 验证。内存过小会导致大模型加载慢或 OOM。
- Windows 与 WSL 双端驱动:安装最新 NVIDIA 驱动(建议 ≥ 535.54.01),确保支持 WSL-GPU。在 WSL 中安装 nvidia-container-toolkit 并重启 Docker,运行
docker run --rm --gpus all nvidia/cuda:12.2-base-ubuntu22.04 nvidia-smi
能正常显示 GPU 信息即打通 GPU。
docker run -d --name comfyui -p 8188:8188 ghcr.io/comfyanonymous/comfyui:latest
如需挂载模型目录,使用 -v 将 Windows 模型盘映射到容器内(避免跨系统频繁 I/O)。
- 原生 Windows 路径注意:若不使用容器,尽量将模型放在本机磁盘而非 /mnt/c(网络挂载风格路径)以减少文件访问延迟。
三 多 GPU 与显存优化
- 指定可见 GPU:在启动前设置环境变量(示例为多卡)
Windows:set CUDA_VISIBLE_DEVICES=0,1,2,3
Linux/WSL:export CUDA_VISIBLE_DEVICES=0,1,2,3
用 nvidia-smi 确认 GPU 编号与负载分配。
- 显存与稳定性:大模型/高分辨率时优先使用 FP16 推理;必要时启用 --lowvram(会降低并行效率,多卡场景谨慎)。
- 模型拆分与分配:使用 SplitVAE 等插件将 VAE 模块分摊到不同 GPU,缓解单卡显存压力;将大模型(如 UNet/CLIP)优先放在显存更大的卡上。
- 性能预期:多卡并行效率取决于模型与节点实现,复杂工作流通常可获得 50%–80% 的速度提升;先从 2 卡 验证再扩展。
四 常见瓶颈与快速排查
- “Torch not compiled with CUDA enabled”:说明装了 CPU 版 PyTorch。先查驱动支持的 CUDA 上限,再卸载 CPU 版并安装带 CUDA 的对应版本(如 cu118/cu121),确保与 Python 版本/架构匹配(如 cp312 对应 Python 3.12)。
- “CUDA driver version is insufficient”:驱动过旧,升级到支持目标 CUDA 的版本后重启。
- 依赖冲突与构建失败:如 NumPy 编译失败或包哈希不匹配,优先使用官方源或离线 whl 安装,确保 torch/torchvision/torchaudio 版本一致;必要时在虚拟环境中重装依赖。
- WSL2 OOM/卡顿:提高 .wslconfig 的 memory/swap,关闭占用内存的无关进程,或将模型迁移到 WSL 内本地磁盘以减少跨系统 I/O。
五 进阶场景与平台选择
- AMD ROCm(WSL):若使用 AMD Radeon,在 WSL Ubuntu 22.04/24.04 中安装 Adrenalin ≥ 25.6.1 与 ROCm,通过 rocminfo 验证 GPU 识别,再安装适配 ROCm 的 PyTorch 运行 ComfyUI。
- Apple Silicon:在 macOS 上优先使用 MPS(Metal Performance Shaders)加速;跨平台工作流可导出 JSON 在 Windows/Linux 复现,但 GPU 后端不同需确认设备可用性。
- 容器与工作流一致性:使用 Docker 镜像可在不同设备上快速还原相同环境,减少“在我机器上能跑”的依赖差异问题。