19 10 月 2026
如果 SD WebUI 是"美颜相机",ComfyUI 就是"专业修图台"——参数全透明、工作流可保存可分享、显存利用率更高、能通过 API 全自动出图。这篇带你从部署走到节点流实战。基础篇见Stable Diffusion 绘图服务搭建。

一、ComfyUI 强在哪:三个 WebUI 给不了的理由

  1. 工作流 = 一个 JSON 文件:整条出图流水线(模型→采样→放大→后处理)保存成一个文件,换机器、换人、换模型,导入即复现。WebUI 的参数散落在几十个输入框里,没法整体迁移
  2. 显存效率更高:按需加载、用完即释放,同样 8G 显存能跑 WebUI 跑不动的流程
  3. 原生 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/controlnet

ComfyUI 的模型目录结构和 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 comfyui

Manager 提供:一键装自定义节点、装缺失模型、工作流分享。界面右侧出现 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(画布尺寸)───────────────────────┘

动手改三个地方建立体感:

  1. CheckpointLoader 里换模型:下拉选你下载的 SDXL/SD1.5 模型
  2. 正面提示词写:1girl, white shirt, coffee shop, soft lighting, masterpiece
  3. 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质量和速度的甜点
steps25–30再多收益递减
CFG7SDXL 对 CFG 敏感,别超 10
放大Latent,1.5 倍再上 Ultimate SD Upscale 分块
--lowvram 启动参数按需加显存吃紧时牺牲速度保运行

六、API 自动化:工作流即代码

ComfyUI 的杀手锏。把工作流导出为 API 格式:

  1. 界面右上角打开 Settings → Enable Dev mode Options
  2. 点 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 缺 inputJSON 里引用了不存在的节点/模型用 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 机型省一半以上。

延伸阅读
  1. Homepage 个人仪表盘:把散落各处的服务收进一个首页
  2. SSL 证书完全指南:免费证书、自动续期与不过期监控
  3. 数据备份体系完全手册:从随手拷到 3-2-1,让数据永远丢不了
  4. 压测与容量规划:上线前就知道你的服务器能扛多少人
  5. AdGuard Home 内网 DNS:全家去广告、防劫持、内网解析一站解决
  6. Hugo 静态博客搭建:秒开的博客,部署只要一个目录
  7. 安全应急响应完全手册:服务器被入侵后,按这个流程走
  8. 游戏服运营完全手册:从开服到停服,把一台服务器运营成百年老店
更多阅读
  1. 上一篇:Stable Diffusion 绘图服务搭建:从选型到出图,把 AI 画图搬上云服务器
  2. 下一篇:RAG 知识库搭建:让 AI 读懂你的文档,私有问答系统完整方案
发表评论 2