Comfy Agent 管调度、ComfyUI 管执行 / 先分清谁改参数

文章导读
看到 Comfy Agent 的对话里写着「把 KSampler 的 steps 改成 30」,切回 ComfyUI 界面发现 KSampler 上的数字确实变成了 30——这时候最容易下的结论是「Agent 改了参数」,但这个判断往往站不住。Comfy Agent 和 ComfyUI 都能让一个数值发生变化:Agent 可能是发出了建议、也可能是替你把值写进了工作流;ComfyUI 侧可能是有人
📋 目录
  1. 壹 在 ComfyUI 工作流里标出节点参数名
  2. 贰 记录 Comfy Agent 对话里建议改动的参数
  3. 叁 用两次运行对照谁真正改了参数
  4. 肆 把调度职责和执行职责写成检查表
  5. 伍 给出不依赖代码的验证记录方式
A A

看到 Comfy Agent 的对话里写着「把 KSampler 的 steps 改成 30」,切回 ComfyUI 界面发现 KSampler 上的数字确实变成了 30——这时候最容易下的结论是「Agent 改了参数」,但这个判断往往站不住。Comfy Agent 和 ComfyUI 都能让一个数值发生变化:Agent 可能是发出了建议、也可能是替你把值写进了工作流;ComfyUI 侧可能是有人手动改了,也可能是某个节点的输入被连线覆盖、或者节点在运行时按自己的逻辑重算了。要分清责任,先别急着看结果图,先把「参数名、建议值、实际执行值」三条线各记一遍。

判断谁改了参数,靠的是参数基线而不是界面截图:先在 ComfyUI 工作流里记录节点名与参数名及当前值,再从 Comfy Agent 对话里摘出被建议的参数与建议值,最后用「保持原参数运行一次、只改建议项再运行一次」的两次对照定位变化来源。若第二次运行参数未变,说明 Agent 只停留在调度建议层;若变了,还要确认这次改动是 Agent 写入、人工写入还是节点覆盖,可用参数快照与控制台文本留下记录。适用边界是能读取工作流配置与运行日志的环境,具体行为需结合你的部署方式确认。

在 ComfyUI 工作流里标出节点参数名

这一步的目的不是「看界面上写的是多少」,而是建立一份可以反复比对的参数基线。ComfyUI 界面上的数值有两类来源:一类是节点自带的 widget 默认值,另一类是被上游节点连线覆盖的输入。后者的界面显示值可能只是残留的默认值,真正进入计算的是连线上游的输出。所以记录时必须同时写清楚「这个参数能不能手动改」,凡是输入端口已被连线的,通常不能靠改数字生效。

建议至少记录四列,节点名和参数名用工作流里的原始命名,别用「那个采样器」这种指代:

节点名参数名当前值是否可手动修改
KSamplersteps20是
KSamplercfg8是
CLIPTextEncodetext(一段提示词)否,由上游文本节点连线输入
EmptyLatentImagebatch_size1是

如果条件允许,直接导出工作流 JSON 作为基线更稳,因为 JSON 里写的是被保存下来的参数结构,而不是界面渲染出来的数字。导出后不要改动它,留作对照件。

Comfy Agent 管调度、ComfyUI 管执行 / 先分清谁改参数

记录 Comfy Agent 对话里建议改动的参数

Agent 的对话内容需要分两类看待:一类是「建议」,一类是「已执行动作」。判断标准很朴素——对话里有没有回传执行结果,比如返回了节点标识、执行状态、队列信息或输出图片。只说了「建议把 cfg 调到 7」而没有后续执行痕迹的,通常属于调度建议层,它本身没有改动工作流。

对话中的参数名建议值是否附带执行结果
KSampler.steps30未附带,仅文字建议
KSampler.cfg7未附带
EmptyLatentImage.batch_size2附带一次执行返回

摘录时保留 Agent 原始措辞里的参数名,不要自行翻译成你以为的节点名。如果你不确定「batch_size」指的是哪个节点上的参数,就先按原文记下,再去第 1 步的基线表里找对应项。找不到对应项的,通常说明这条建议落不到当前工作流,先放一边。

用两次运行对照谁真正改了参数

这是把「建议」和「实际变化」分开的关键动作。做法是控制变量:

Comfy Agent 管调度、ComfyUI 管执行 / 先分清谁改参数
  1. 第一次运行:完全保持原参数,不改任何数值,记录运行前的参数快照和运行后的参数快照。两次快照应当一致;如果不一致,说明有节点在运行期间自行改写了参数,这一点要单独记下来。
  2. 第二次运行:只改 Comfy Agent 建议里提到的那些参数,其他一律不动,同样记录运行前后的快照。
  3. 把两次的运行前快照做差异比对,差异项就是你真正想找的「被改动的参数」。
参数项第一次运行前第一次运行后第二次运行前第二次运行后
KSampler.steps20203030
KSampler.cfg8877
EmptyLatentImage.batch_size1122

读表方式:如果第二次运行前该参数已经是你手动改成的建议值,那这只证明你改了,不证明 Agent 改了。要区分这一点,可以在第二次运行前不手动改、只让 Agent 触发一次执行,再看快照是否变化。若快照没变,说明 Agent 在当前配置下只是调度层,没有写参数的权限;若变了,还要排查是否有别的节点覆盖了它。这个结论跟你的部署方式、是否有人工确认环节有关,需要结合环境确认。

把调度职责和执行职责写成检查表

下面这张表用来快速判断责任边界,判断不清时按「谁产生计算、谁产生数值」来分:

动作Comfy Agent 侧ComfyUI 侧
给出参数建议是,通常以文字或结构化建议出现不参与
人工确认可能提供确认入口不参与
触发一次执行可能负责提交任务执行队列消费任务
写入节点参数取决于是否接入了写参数能力,需按配置确认工作流本身持有参数值
节点计算与输出不参与是,节点负责计算、生成输出

排查时按顺序问三个问题:这条建议有没有对应的执行返回?参数值是在运行前就变了,还是运行中变的?变的这个参数是不是被连线覆盖的输入?三个问题答完,责任归属基本就清楚了。

Comfy Agent 管调度、ComfyUI 管执行 / 先分清谁改参数

给出不依赖代码的验证记录方式

不会写脚本也能完成上面的对照,只要保证记录可复现。建议每次运行前做三件事:

  • 截图:工作流画布上相关节点的参数区域,截到节点名和数值,别只截局部数字。
  • 参数快照:把参数表按固定格式抄一份文本,或者导出工作流 JSON 存档,文件名带上运行次序,例如 run1_before.json、run1_after.json。
  • 控制台文本:把 ComfyUI 控制台里这次运行输出的那几行复制下来,包括提交任务和完成提示;如果 Agent 侧有返回文本,一并留存。

快照文本可以用一个固定的小结构,字段别随意增删,方便两次直接比对:

{
  "run": "run1_before",
  "nodes": [
    {"node": "KSampler", "param": "steps", "value": 20, "manual": true},
    {"node": "KSampler", "param": "cfg", "value": 8, "manual": true},
    {"node": "EmptyLatentImage", "param": "batch_size", "value": 1, "manual": true}
  ]
}

这个结构只是记录格式示例,字段名和层级可以按你的习惯替换,重点是每次都用同一套字段。等到两次运行的快照放在一起,哪一项变了、是运行前变的还是运行中变的,一眼就能看出来,也就不必再靠回忆 Agent 说了什么来判断是谁改的参数。