ComfyUI 工作流与本地生图指南 · Dylan AI Agent Nexus

Node-Graph Workflows for Image/Video Generation

定位与价值

ComfyUI 是基于“节点图”的可视化工作流引擎,主要用于 Stable Diffusion 生态的图像/视频生成与编辑。其优势是:高度可组合、可重复、可追溯,便于沉淀标准化的企业视觉工作链路,并符合我们“本地化部署、安全可控”的平台定位。

本页不提供安装步骤,聚焦原理、用法与集成;安装与环境请参考“部署与配置”。

核心概念

  • 节点/连线图:每个节点完成特定功能(如文生图采样、VAE 解码、保存图像),通过连线组织成完整工作流。
  • 模型资产:Checkpoint(权重)、VAE、LoRA、Textual Inversion(Embeddings)等,决定生成风格与质量。
  • 控制增强:ControlNet/T2I-Adapter 等提供结构引导(姿态、边缘、深度)。
  • 采样与调度:Sampler 与 Scheduler(如 DPM++ 2M Karras)影响细节与速度。
  • 批处理与种子:Batch、Seed 控制产出数量与可重现性。

运行与插件(概念)

  • 服务监听:默认 Web UI 与 API 在 http://127.0.0.1:8188(可配置)。
  • 扩展管理:ComfyUI-Manager 等可便捷安装社区节点与模型工具。
  • 工作流文件:支持导出/导入 .json;建议为关键流程建立版本化模板。

常用工作流(思路)

  • 文生图(T2I):CLIP 文本编码 → KSampler(主干)→ VAE Decode → SaveImage。
  • 图生图(I2I):LoadImage → 噪声强度/控制 → KSampler → VAE Decode → SaveImage。
  • ControlNet:预处理器(如 Canny/Depth/OpenPose)→ ControlNet → 主干采样。
  • LoRA/风格迁移:在主干模型上加载 LoRA,权重控制风格强度。
  • 超分/修复:放大(ESRGAN/4x-UltraSharp 等)与人像修复链路。

视频与动画(概念)

  • AnimateDiff:基于扩散序列的运动先验,适合短视频片段。
  • 工具链:如 VideoHelperSuite 等,用于帧处理/合成;注意帧率、插帧与压缩参数。

API 基础与调用

  • 提交工作流POST /prompt,载荷为图节点 JSON;返回 prompt_id
  • 查询进度/结果GET /history/<prompt_id>;队列:GET /queue
  • 进度推送:WebSocket ws://127.0.0.1:8188/ws 可订阅执行事件。
curl -X POST http://127.0.0.1:8188/prompt -H "Content-Type: application/json" -d '{"prompt":{"1":{"class_type":"KSampler","inputs":{"seed":12345,"steps":25,"cfg":7,"sampler_name":"dpmpp_2m","scheduler":"karras","denoise":1,"model":"MODEL_NODE","positive":"POS_CNDS","negative":"NEG_CNDS","latent_image":"LATENT_NODE"}}}}'

实际使用时请用图中的节点 ID 与输入替换示例里的占位符(如 MODEL_NODE)。

参考实现:Python requests

import requests

payload = {
  "prompt": {
    "1": {
      "class_type": "KSampler",
      "inputs": {
        "seed": 12345,
        "steps": 20,
        "cfg": 7,
        "sampler_name": "dpmpp_2m",
        "scheduler": "karras",
        "denoise": 1,
        "model": "MODEL_NODE",
        "positive": "POS_CNDS",
        "negative": "NEG_CNDS",
        "latent_image": "LATENT_NODE"
      }
    }
  }
}
res = requests.post("http://127.0.0.1:8188/prompt", json=payload, timeout=300)
res.raise_for_status()
print(res.json())

性能与 GPU 建议

  • 分辨率与显存:分辨率、批量与上下文直接影响显存;必要时降分或分块。
  • 半精度与优化:优先使用半精度权重;根据节点选项启用高效注意力/分块等优化。
  • 预热与缓存:常用模型常驻显存以减少冷启动延迟。

安全与合规注意事项

  • 网络边界:建议仅在可信网段开放;对外暴露需网关鉴权与审计。
  • 资产治理:模型/LoRA/Embeddings 统一目录与版本管理;明确许可与来源合规。
  • 数据最小化:避免在提示词/素材中包含敏感信息,必要时使用脱敏素材。

与本平台的集成

  • 统一配置:在平台中配置 ComfyUI 服务地址(默认 http://127.0.0.1:8188)。
  • 工作流模板:将业务工作流固化为 JSON 模板,按需填充 Prompt 与参数后提交。
  • 产出回收:读取 /history 结果或监听 WebSocket,统一写入媒资库。

故障排查(思路)

  • 无法连接:核对监听地址与端口、防火墙策略;确认进程已启动。
  • 显存不足:降低分辨率/批量或切换更小模型;必要时升级显存。
  • 结果异常:检查采样器/调度器、CFG 与步数;替换 VAE 或调整负面提示。
已模拟提交:数据已缓存到本地(等待后端 API 接入)