一句话定义
X/Y/Z Plot(custom node,Comfyroll/Easy 等提供)= 固定 seed 与其他参数,把 2-3 个参数各取多值,一次队列生成参数网格图——像科学实验的对照矩阵,让"哪个 sampler 好""LoRA 权重多少合适"从玄学变成看图说话。
为什么重要
它是建立个人参数基线的最快路径:新模型到手、新 LoRA 到手、出问题想定位,一张网格图胜过二十次盲试;也是社区评测图(XYZ 对比墙)的标准生产方式。
前置知识
KSampler 全参数解剖:seed/steps/cfg/denoise(参数语义)、队列、种子与可复现性(种子纪律)。
核心概念
- 网格结构:X 轴参数×取值列表、Y 轴参数×取值列表、(可选 Z 轴=第三维,如 seed);
- 常用组合:
- sampler × scheduler(选型实验,采样器与调度器选型指南); - steps × cfg(找质量拐点); - LoRA strength 单轴扫掠(LoRA:轻量插件的加载与叠加); - shift × 分辨率(Flux 大图调优,模型采样补丁:ModelSampling/RescaleCFG/FreeU); - 提示词行 × seed 列(选图)。
- 关键纪律:网格实验必须 seed 固定(Randomize 会毁掉可比性,队列、种子与可复现性)。
原理与机制
实现方式有两派:
- 改写型(Comfyroll XY Plot):用一个包装节点接管 KSampler 的参数输入,X/Y 条目按网格展开成多次采样,输出拼接大图;
- 调度型(API/脚本):外部循环改参数提交队列(工作流 JSON 与 API 自动化 的 Python 方式),更灵活、可接入自动化。
共同内核:单变量原则的批量版——每格唯一差异即所测参数,其余全部锁定。
cfg=5 cfg=6 cfg=7 cfg=8
dpmpp_2m [图] [图] [图] [图]
euler [图] [图] [图] [图]
euler_a [图] [图] [图] [图]
uni_pc [图] [图] [图] [图]
→ 一眼看出: 该模型在 dpmpp_2m+cfg6 下最佳(示例结论)直观类比
X/Y/Z 是试吃拼盘:与其点二十道菜挨个吃(逐次调参),不如让厨师把四种火候×三种咸度的拼盘一次端上来,对比着挑——省时,且"同一锅底"(同 seed)保证可比。
实例与案例
- 新模型上手三连测:① sampler×scheduler 网格;② steps 扫掠(10/15/20/25/30);③ 提示词风格对比;三张网格后参数基线即定。
- LoRA 权重标定:0.4/0.6/0.8/1.0 扫掠 + 固定 seed,选出"风格到位且不崩"的最大值。
- 复现社区结论:看到"shift 2.5 更好"的帖子,自己跑一张 shift×分辨率网格验证(模型采样补丁:ModelSampling/RescaleCFG/FreeU)。
常见误区
- seed 没固定:网格图每格本质不同,比较无意义;XYZ 的第一检查项就是 seed。
- 一次测太多变量:三维网格(10×10×10)既慢又难读;二二维为主,Z 轴留给 seed。
- 网格结论直接搬给别的模型:参数甜点与模型强相关(采样器与调度器选型指南);换模型重测。
- 只看美观不看问题:网格是诊断工具——明确"我在测什么"(构图稳定性?细节密度?),否则看完只剩"都挺好看"。
自测题
- XYZ 实验有效性的两个前提?
- 新模型参数基线的"三连测"是哪三组?
- 为什么不建议 10×10×10 三维网格?
- 如何用 XYZ 验证一条社区参数结论?
参考答案
- seed 固定;除被测参数外全部锁定(单变量原则)。
- sampler×scheduler、steps 扫掠、提示词风格对比。
- 组合数爆炸(千张图)且难以目视比较;控制在二维,Z 轴仅作 seed 维。
- 复刻其实验设置(seed/分辨率/prompt),把结论参数做成单轴扫掠,与原值对比。
与其他知识点的关系
- 工作流 JSON 与 API 自动化 的脚本化扩展(生产级参数扫描)。
- 采样器与调度器选型指南/LoRA:轻量插件的加载与叠加/模型采样补丁:ModelSampling/RescaleCFG/FreeU 的推荐参数都应经本页方法自证。
- 必装自定义节点包盘点 中 Comfyroll/Easy Use 提供节点实现。
延伸阅读
- Comfyroll 节点包文档(XYZ Plot 用法)
- 社区 XYZ 对比图示例:r/StableDiffusion 搜索 "XY plot"
前置知识
KSampler 全参数解剖:seed/steps/cfg/denoise队列、种子与可复现性