一句话结论:搭工作流最高效的路径不是从空白画布开始,而是先加载一份能跑通的图,从输出端倒着读懂它,再只改需要改的那几个参数。从零造图是最后手段,因为你要同时对齐十几个节点的类型和命名。
学 ComfyUI 到第三天,几乎都会撞上同一堵墙:默认工作流能出图了,但想做一个自己的流程——加个放大、换个模型、插个 ControlNet——就不知道从哪下手。网上找的工作流一加载,半屏节点变红,提示缺这个缺那个。
为了解决这个问题,ComfyUI 提供了一套"图即文件"的机制:工作流可以存成 JSON 或连同 PNG 一起保存,别人跑通的结构能原样加载到你的画布。这意味着你不必从零设计一条数据流,只需要在一个已验证的结构上做局部修改。理解这件事,搭工作流的时间会从几小时缩到几分钟。
本文讲四件事:三条搭图路径怎么选、怎么读懂一份陌生的图、从零造图的五步法、以及怎么把改参数这件事从"手拖"变成"改一个字段"。最后给一份改图检查清单,照着过一遍能避开大部分红框。
一、三条路径,按成本从低到高选
| 路径 | 怎么做 | 适合 | 风险 |
|---|---|---|---|
| 加载现成图 | 别人给的工作流 JSON,或带工作流的 PNG 直接拖进画布 | 想做常见任务(放大、换脸、视频) | 依赖的节点/模型你未必有 |
| 改官方模板 | 从内置模板库选一个,在它上面加分支 | 大多数生产场景 | 要读懂原结构,否则改崩 |
| 从零造图 | 空白画布逐个放节点 | 结构特殊、要精确控制 | 类型不匹配、漏连,全靠自己排 |
结论很清楚:优先改图,其次改模板,从零造放在最后。原因不是"省事",而是从零造图时你同时在犯三种错——节点选错、参数填错、连线类型不对——报错信息只告诉你最后一个,前面两个要靠猜。
再说一句实操的:工作流最靠谱的来源是"跑通过的人"。网上随手存的图,作者用的模型版本、节点版本可能和你不一致,加载后必然一堆红。所以拿到图的第一件事不是点运行,是看它要什么。
二、读懂一份陌生的图:从输出端倒着走
这是本文最值钱的方法。新手读图习惯从左往右看(从加载模型开始),结果看到第三个节点就迷路。正确方向是倒着走:
- 先找输出节点。找"保存图像""保存视频""预览图像"这类节点。它们是这条数据流的终点,也是"这个工作流到底在干什么"的答案。
- 顺着它的输入往上追。保存图像的输入是什么?解码。解码的输入是什么?采样器。采样器又吃了什么?一路往上,直到加载节点。
- 分清主干和分支。主干是从加载到输出最直的那条线;分支是旁挂在主干上的(比如放大、换脸、二次采样)。先只理解主干,分支等用到了再看。
走完这三步,你会得到一张心里的小地图:这条流有几个入口、几个出口、主线上有几道处理。这时候再动它,就知道改哪不会伤到别的部分。
举个具体的例子。一个带放大的文生图流程,倒着读是这样:
保存图像 ← 放大解码 ← 二次采样 ← 放大模型 + 第一次解码结果 ↑ 第一次解码 ← 第一次采样 ← 加载模型 + 空 Latent看清结构后你会发现,所谓"高清修复"就是在第一次解码之后,把图再编码回潜空间、用小一点的降噪强度重采样一次。知道它在干什么,就不会把降噪强度当成整数去填。
三、从零造图的五步法
真要造图,按这个顺序,别跳:
| 步 | 做什么 | 为什么这个顺序 |
|---|---|---|
| 1 | 先放加载和输出两端 | 两端定住,中间的缺口一眼能看出来 |
| 2 | 补主干:空 Latent → 采样 → 解码 | 这是最短可跑路径 |
| 3 | 加条件:正面/负面文本编码 | 有了条件,采样器才能工作 |
| 4 | 加辅助:LoRA、放大、ControlNet | 在能跑的基础上加,坏了知道是谁坏的 |
| 5 | 清理:分组、命名、颜色标注 | 给下一次的自己留条路 |
第 5 步最容易被跳过,但它决定了这份图能不能复用。一份自己都读不懂的图,等于一次性的。具体做法:把主干节点框成一组(选中后右键建组),给组起个名字;用备注节点写下"这里改什么";给关键节点换个显眼的颜色。
四、改参数不要手拖:把它变成改一个字段
在网页上拖滑块适合调效果,不适合批量。一旦你要跑 50 个提示词、20 个 seed,手改就废了。这时候要做的是"注入"——把可变的部分写成参数,用脚本改 JSON。
好消息是 ComfyUI 天生支持:它的 API 格式本身就是一张参数表(上一篇讲过),提交接口就是一个 POST。
import json import requests BASE = "http://127.0.0.1:8188" # 关键:绕开系统代理。开着代理软件时,发往 127.0.0.1 的请求常被劫持成 502 s = requests.Session() s.trust_env = False wf = json.load(open("workflow_api.json", encoding="utf-8")) def inject(wf, node_id, **kv): """改某个节点的入参,等价于在界面上改那个框""" wf[node_id]["inputs"].update(kv) return wf inject(wf, "3", seed=42, steps=30) # 采样器 inject(wf, "6", text="a glass flask on a lab bench") # 正面提示词 inject(wf, "5", width=1024, height=1024, batch_size=1) # 空 Latent r = s.post(f"{BASE}/prompt", json={"prompt": wf}) r.raise_for_status() print(r.json()) # 里面有 prompt_id,用它查进度和取产物三个必须提醒的点:
trust_env = False不是可选项。开着代理软件时,Python 的 requests 会读系统代理设置,把127.0.0.1的请求也发给代理,结果就是一个毫无道理的 502。这个坑我们排查了很久,最后发现请求根本没到 ComfyUI。- node_id 是字符串,别写成数字。API 格式里最外层的键就是 id。
- 提交成功不等于出图成功。
/prompt返回的是"已入队",产物要靠prompt_id去查历史。写脚本时这两步必须分开,否则失败会被吞掉。
拿到prompt_id之后,轮询/history/{prompt_id}取产物文件名。这一步的细节放到做视频那篇讲,因为视频的产物问题比图片多。
五、改图检查清单:加载别人的图前先过一遍
这是可以照着做的一份清单。拿到一份陌生工作流,按顺序核:
| # | 检查项 | 怎么查 | 不通过的表现 |
|---|---|---|---|
| 1 | 节点类型是否都装了 | 变红的节点会标出类型名 | 半屏红框,提示找不到节点 |
| 2 | 模型文件是否都有 | 节点上的模型下拉框是否为空或报错 | Value not in list |
| 3 | 是不是 API 格式 | 看文件里有没有class_type | 加载后画布空白 |
| 4 | 有没有写死本机路径 | 搜C:\、/home/之类 | 加载图片/视频节点报错 |
| 5 | 分辨率与显存是否匹配 | 看空 Latent 的宽高 | 一跑就 out of memory |
| 6 | 采样步数与模型是否匹配 | 看 KSampler 的 steps/cfg | 出糊图或过曝 |
| 7 | 输出节点是否存在 | 有没有保存/预览节点 | 跑完什么都没有 |
| 8 | 有没有多余的 Mute 节点 | 灰色的节点是关闭状态 | 某一步被跳过,效果异常 |
第 3 条特别容易误判:把 API 格式的 JSON 当工作流拖进画布,界面会一片空白,因为 API 格式里没有坐标和连线信息,只有参数表。遇到"加载了但什么都没有",先看文件里有没有class_type。
六、三个真实的搭图习惯
这几条不是规范,是踩出来的:
- 改图前先另存一份。原图跑通过,是你的对照组。改崩了能退回去,比重新找图快得多。
- 一次只改一处。同时改模型、改尺寸、改采样器,出问题无法定位是哪一项导致的。这条在调效果时尤其重要。
- 把"能跑"和"好看"分开。先用小尺寸、低步数确认结构通不通,通了再加分辨率、加步数。反过来做,一次失败要等好几分钟才知道。
下一篇进参数:文生图的五个核心节点各自有哪些参数,哪些必须调、哪些别动,以及一张按场景选参数的对照表。
总结
搭工作流的正确顺序是"加载 → 读懂 → 局部改 → 再考虑从零造"。读懂一份陌生图靠倒着走:先找输出节点,再顺输入往上追,分清主干与分支。从零造图按"定两端 → 补主干 → 加条件 → 加辅助 → 清理"五步走。参数要批量化就别手拖,用 API 格式的 JSON 改字段提交,注意trust_env = False和"提交成功≠出图成功"这两点。最后那份八项检查清单,加载任何外来工作流前过一遍。
关于我
13 年 IT 全栈,.NET、Python、Office 自动化(VSTO/VBA/Python)都做,也做 AI 应用实操(智能体开发),主业是帮企业和团队把重复劳动自动化——报表一键生成、数据对接、文档批量处理、工具定制。
本科物理化学、硕士计算机化学,在一线实验室待过 13 年(9 年制药 + 4 年第三方检测),现在主要服务药企、检测机构和实验室:SOP、合规、样本流、仪器数据接口这些词不用你解释。
这几年做得比较多的是这几类:Office 自动化(VSTO/VBA/Python)工具定制、数据对接与 LIMS 咨询、技术陪跑。
不是外包码农,是听得懂业务的自己人。有同类场景的朋友欢迎评论区聊聊,先聊清楚再动手不迟。