如果 SD WebUI 是"美颜相机",ComfyUI 就是"专业修图台"——参数全透明、工作流可保存可分享、显存利用率更高、能通过 API 全自动出图。这篇带你从部署走到节点流实战。基础篇见Stable Diffusion 绘图服务搭建。
一、ComfyUI 强在哪:三个 WebUI 给不了的理由
- 工作流 = 一个 JSON 文件:整条出图流水线(模型→采样→放大→后处理)保存成一个文件,换机器、换人、换模型,导入即复现。WebUI 的参数散落在几十个输入框里,没法整体迁移
- 显存效率更高:按需加载、用完即释放,同样 8G 显存能跑 WebUI 跑不动的流程
- 原生 API 设计:服务启动就带 API,把工作流 JSON 往
/prompt一 POST 就能跑,自动化流水线的天然入口
代价是学习曲线陡:第一次打开面对的是满屏节点和连线。但按本篇路径走一遍,半小时能上手。
二、部署:Docker + 共享模型目录
ComfyUI 的依赖同样是 PyTorch/CUDA 深坑,一律 Docker:
docker run -d --name comfyui \
--restart unless-stopped \
--gpus all \
-v /data/comfy/models:/app/ComfyUI/models \
-v /data/comfy/output:/app/ComfyUI/output \
-v /data/comfy/user:/app/ComfyUI/user \
-p 127.0.0.1:8188:8188 \
-e CLI_ARGS="--listen" \
ghcr.io/ai-dock/comfyui:latest和 SD WebUI 共用模型目录(如果两个都装了):ComfyUI 的 models/checkpoints 对应 WebUI 的 models/Stable-diffusion,用软链接打通,一份模型两处用:
# 假设两个服务的模型根都挂在 /data 下
ln -s /data/sd/models/Stable-diffusion/sd_xl_base_1.0.safetensors \
/data/comfy/models/checkpoints/
ln -s /data/sd/models/Lora /data/comfy/models/loras
ln -s /data/sd/models/ControlNet /data/comfy/models/controlnetComfyUI 的模型目录结构和 WebUI 略有差异(checkpoints vs Stable-diffusion),软链接是最省事的对齐方式。磁盘规划见Linux 磁盘挂载与扩容实战。
必装:ComfyUI Manager
没有 Manager 的 ComfyUI 装插件要手动 git clone,装一半人会放弃。用带 Manager 的镜像或在容器里补装:
docker exec -it comfyui bash -c \
"cd /app/ComfyUI/custom_nodes && \
git clone https://github.com/ltdrdata/ComfyUI-Manager.git"
# 重启容器
docker restart comfyuiManager 提供:一键装自定义节点、装缺失模型、工作流分享。界面右侧出现 Manager 按钮即成功。
三、界面导览:三分钟读懂节点流
打开 http://127.0.0.1:8188,默认是个文生图工作流。认识五个元素就够起步:
| 元素 | 作用 |
|---|---|
| 节点(方块) | 一个处理步骤:加载模型、写提示词、采样、保存 |
| 连线(点与点) | 数据流向:左边的点输出,右边的点输入 |
| 队列提示(右侧 Queue Prompt) | 点一下就按当前工作流出图 |
| 节点颜色 | 蓝=已加载/就绪,黄=未执行,红=报错 |
| Manager 按钮 | 装插件、装模型、导工作流 |
最实用的一招:任何陌生工作流,先看有没有缺失节点(Manager 会标红"Missing Nodes"),点 Install Missing 一键补齐,再跑。
四、第一个工作流:从默认文生图开始
默认工作流就是标准四段式,理解了它后面全通:
Load Checkpoint ──┬─> CLIP Text Encode(正面提示词)─�
├─> CLIP Text Encode(负面提示词)─┼─> KSampler ──> VAE Decode ──> Save Image
Empty Latent Image(画布尺寸)───────────────────────┘动手改三个地方建立体感:
- CheckpointLoader 里换模型:下拉选你下载的 SDXL/SD1.5 模型
- 正面提示词写:
1girl, white shirt, coffee shop, soft lighting, masterpiece - Empty Latent Image 尺寸:SD1.5 用 512×512,SDXL 用 1024×1024——尺寸和模型不匹配是新手第一大报错来源
点 Queue Prompt,右下角出图。进度条走完即成功,图片在 output/ 目录。
五、进阶工作流:SDXL 的标准打法
SDXL 想出好图,业界已经沉淀出标准流水线,用 Manager 搜"SDXL workflow"能搜到大量现成的。核心思路是双阶段 + refiner:
Base 模型出 1024×1024 草稿
└─> Upscale 到 2048(Latent 放大,不吃显存)
└─> Refiner 模型精修细节
└─> 可选:Ultimate SD Upscale(分块放大,低显存友好)给低显存机器的关键参数:KSampler 里 steps 25–30 足够,CFG 7–8;放大走 Latent 模式而不是 Pixel 模式,显存占用差一倍。8G 显存跑 SDXL + 放大流程,参考配置:
| 参数 | 值 | 说明 |
|---|---|---|
| 采样器 | dpmpp_2m / euler | 质量和速度的甜点 |
| steps | 25–30 | 再多收益递减 |
| CFG | 7 | SDXL 对 CFG 敏感,别超 10 |
| 放大 | Latent,1.5 倍 | 再上 Ultimate SD Upscale 分块 |
--lowvram 启动参数 | 按需加 | 显存吃紧时牺牲速度保运行 |
六、API 自动化:工作流即代码
ComfyUI 的杀手锏。把工作流导出为 API 格式:
- 界面右上角打开 Settings → Enable Dev mode Options
- 点 Save (API Format),得到一个 JSON 文件——这就是工作流的"源代码"
然后 POST 给服务:
curl -sS http://127.0.0.1:8188/prompt \
-H "Content-Type: application/json" \
-d @workflow.json | head -c 300返回一个 prompt_id,用 /history/{id} 轮询结果。Python 侧接 CI/批处理:
import json, requests, time
wf = json.load(open("workflow.json"))
# 改提示词节点(节点号按实际工作流)
for node in wf.values():
if node.get("class_type") == "CLIPTextEncode" and node["_meta"]["title"] == "正面提示词":
node["inputs"]["text"] = "a cat astronaut, cinematic lighting"
r = requests.post("http://127.0.0.1:8188/prompt", json={"prompt": wf})
pid = r.json()["prompt_id"]
while True:
h = requests.get(f"http://127.0.0.1:8188/history/{pid}").json()
if pid in h and h[pid].get("outputs"):
print("出图完成,输出在 output/ 目录")
break
time.sleep(2)典型自动化场景:电商批量出商品图、内容农场批量配图、按模板生成社媒素材。接 n8n 可以做成"表格里填关键词 → 自动出图 → 回传图片链接"的完整流水线,见n8n 自动化工作流。
对外暴露 API同样要走反代加鉴权,Ollama 那套 Nginx 配置改个端口即可(注意 WebSocket 支持),见Nginx 反向代理实战。
七、显存优化:从能跑到跑得快
按显存量级选启动参数(改容器的 CLI_ARGS):
| 显存 | 参数 | 效果 |
|---|---|---|
| 24G+ | 默认 | 全速 |
| 12–16G | --use-sage-attention | 注意力计算加速,出图快 20–40% |
| 8G | --lowvram | 模型分块加载,慢但能跑 |
| 6G | --novram + 小图 + SD1.5 | 极限模式,别指望速度 |
新版 ComfyUI 已支持 FP8 量子和 SageAttention,8G 显存跑 SDXL 已经不是天方夜谭。没显卡的机器:CPU 模式能跑(加 --cpu),但一张图几分钟到几十分钟,只适合验证工作流,不适合生产。
内存和磁盘同样别省:进程周转吃内存,16G 起步舒服;模型动辄几十 G,数据盘 100G 起,规划见AI 应用选型指南。
八、常见问题排查
| 症状 | 原因 | 解决 |
|---|---|---|
| 节点一片红、提示 missing | 缺自定义节点 | Manager → Install Missing Custom Nodes |
| 提示 model not found | 模型没放对目录 | 对照 models/ 子目录名,或软链接 |
| 出图花屏/全噪点 | 模型与 VAE 不匹配、尺寸不对 | SD1.5 配 512、SDXL 配 1024;换模型试 |
| CUDA out of memory | 显存爆了 | 加 --lowvram;缩小批量;换低显存模型 |
| API 返回 400 缺 input | JSON 里引用了不存在的节点/模型 | 用 API Format 保存,别用手工改 UI 格式的 JSON |
| 出图慢到怀疑人生 | 没上 GPU / CPU 模式 | nvidia-smi 确认;检查 --gpus all |
诊断三板斧:nvidia-smi、docker logs -f comfyui、界面看红色节点的报错信息。系统化排查见服务器故障排查完全手册。
九、工作流资源从哪来
ComfyUI 生态最大的红利是海量现成工作流:
- ComfyWorkflows / openart.ai:按效果分类,直接下 JSON 导入
- ComfyUI Manager 内置浏览:装插件时装模型,一键补齐依赖
- B 站/YouTube 教程:搜"ComfyUI + 你想要的效果",作者一般会附工作流文件
拿到别人的 JSON,导入(拖进界面即可)→ Install Missing → 把自己的模型名对上 → Queue。换模型名是唯一经常要动手的地方,其余全自动。
结语
ComfyUI 的投入是值得的:一次学习,换来可复现的工作流、更低的显存门槛、全自动的出图流水线。它和 SD WebUI 不是替代关系——快速试效果用 WebUI,定稿生产和自动化用 ComfyUI,两个服务共享模型目录并存,是云服务器上的标准玩法。
需要跑 AI 绘图的服务器,可以看看财富云计算:NAT 型云服务器内存档位全、数据盘大、支持热升级,自用出图、团队共享这类"吃显卡不吃公网 IP"的场景 NAT 型刚好对症,价格比独立 IP 机型省一半以上。
延伸阅读
- Homepage 个人仪表盘:把散落各处的服务收进一个首页
- SSL 证书完全指南:免费证书、自动续期与不过期监控
- 数据备份体系完全手册:从随手拷到 3-2-1,让数据永远丢不了
- 压测与容量规划:上线前就知道你的服务器能扛多少人
- AdGuard Home 内网 DNS:全家去广告、防劫持、内网解析一站解决
- Hugo 静态博客搭建:秒开的博客,部署只要一个目录
- 安全应急响应完全手册:服务器被入侵后,按这个流程走
- 游戏服运营完全手册:从开服到停服,把一台服务器运营成百年老店

[...]}));节点 4:发通知(SMTP / 企业微信 Webhook / Telegram,按你有啥用啥)点右上角 Execute Workflow 手动跑一次,每个节点点开都能看到输入输出数据——调试极其直观。跑通了点 Active 激活,以后每天自动执行。四、核心概念:四类节点走天下类型作用常用节点触发器什么条件下启动Schedule(定时)、Webhook(HTTP 触发)、App 事件(邮件到[...]
2026-10-19 回复
[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-19 回复