SD-Forge X Y Z plot 脚本学习笔记


X/Y/Z plot 脚本

一个多功能的替换脚本,能够一次性出多个不同的图片。

各个选项含义解释

以此图为例:
SD-Forge X Y Z plot 脚本学习笔记
包含图例注释 (Include legend)

  • 作用: 在生成的网格图下方或旁边,添加文字说明,标注 X 轴和 Y 轴(如果使用了 Z 轴,则会为每个 Z 值生成一张带图例的网格图)分别代表什么参数和值。
  • 为什么重要: 强烈建议始终勾选。没有图例的网格图就像一张没有坐标轴的图表,你将无法分辨哪张图对应哪个参数。这对于后续的分析和分享至关重要。

包含次级图像 (Include sub-images)

  • 作用: 除了生成一张包含所有结果的大网格图(Grid Image)外,还会将网格图中的每一张小图单独保存为独立的图像文件。
  • 为什么重要: 当你在网格图中发现一张效果绝佳的图片时,你无需从大图中手动裁剪。勾选此项后,你可以直接在输出文件夹中找到那张独立、未经压缩的高清原图,方便后续使用或精修。

包含次级网格图 (Include sub-grid images)

  • 作用: 这个选项主要与两阶段生成过程(如 高分辨率修复 Hires. fix)配合使用。勾选后,它不仅会生成最终高分辨率结果的网格图,还会生成一张第一阶段低分辨率结果的网格图。
  • 为什么重要: 这是个强大的调试工具。有时,一些奇怪的构图或瑕疵是在 Hires. fix 阶段引入的。通过比较“次级网格图”(低清)和主网格图(高清),你可以清晰地判断问题出在哪个阶段,从而针对性地调整 Hires. fix 的参数(如重绘幅度)。

保持种子随机 (Keep seed random)

  • 作用: 默认情况下,X/Y/Z plot 会使用一个固定的种子(你在主界面设定的种子,或-1代表的随机种子生成的第一个值)来生成网格中的所有图片,以确保变量是唯一影响结果的因素。勾选此项后,网格中的每一张图片都会使用一个全新的随机种子。
  • 为什么重要: 在进行参数对比时,99% 的情况下你都应该保持此项不勾选。你需要固定种子来科学地比较不同模型、提示词或采样器的效果。只有当你不在乎对比,只想用不同的参数组合快速生成大量多样化图片时,才会考虑勾选它。

Vary seeds for X / Y / Z (为 X / Y / Z 轴变更种子)

  • 作用: 这是一个更精细的种子控制。勾选 Vary seeds for Y 意味着,当 Y 轴的参数值改变时(即换行时),种子会跟着改变(+1)。但在同一行内,无论 X 轴参数如何变,种子都保持不变。
  • 为什么重要: 这提供了一种“分组控制变量”的测试方法。
  • 示例:
    • X 轴: 采样器 (Sampler)
    • Y 轴: 提示词 (Prompt S/R)
    • 勾选 Vary seeds for Y
    • 结果: 第一行的所有采样器会使用同一个种子(比如 1000)来生成第一句提示词。第二行的所有采样器会使用另一个种子(1001)来生成第二句提示词。这样,你可以比较不同提示词在各自独立种子下的表现,同时又能公平地比较同一提示词在不同采样器下的效果。

禁用下拉菜单, 使用文本输入 (Disable dropdown, use text input)

  • 作用: 对于某些轴类型(如 Checkpoint, LoRA, Hypernetwork),通常会提供一个下拉菜单让你选择。勾选此项后,下拉菜单会变成一个纯文本输入框。
  • 为什么重要:
    1. 处理长文件名: 当你的模型文件名很长,在下拉菜单中显示不全时,可以用文本框完整输入。
    2. 批量选择: 这是最强大的功能。你可以在文本框中使用通配符 *。例如,如果你想测试所有名为 style-A 开头的 LoRA 模型,只需在文本框中输入 style-A* 即可,脚本会自动找到所有匹配的文件并加入测试队列。
    3. 精确路径: 可以输入文件的绝对或相对路径,而不是依赖 WebUI 的扫描结果。

网格图边框 (单位: 像素) (Grid margin)

  • 作用: 在生成的网格图中,为每张小图之间添加指定像素宽度的黑色边框。
  • 为什么重要: 纯粹为了视觉清晰度。当图片背景复杂或颜色接近时,一个小的边框(例如 2-5 像素)可以让网格图的布局更分明,更易于观察和比较。默认是 0,即图片紧挨在一起。

X/Y 轴互换 / Y/Z 轴互换 / X/Z 轴互换 (Swap Axis)

  • 作用: 快速交换两个轴的设置(包括“轴类型”和“轴值”)。例如,点击 X/Y 轴互换 会将你为 X 轴配置的所有内容与 Y 轴的配置互换。
  • 为什么重要: 优化网格图的最终布局。通常,我们习惯将参数选项较多或标签文字较长的变量放在 Y 轴(行),参数选项较少或标签较短的放在 X 轴(列),这样生成的网格图会是比较舒适的纵向矩形,而不是一个很宽的长条。如果你设置完后发现布局不理想,无需手动修改,一键交换即可。

小贴士

你需要注意循环顺序, x, y, z 是从外到内的,如果你需要切换模型这种非常消耗资源的操作,将切换模型放在 x 上,这样可以避免频繁的切换模型。

类型: Prompt order

这是用来调整提示词顺序的。
举例:你的 prompt 有 A, B, C, D
在 "Prompt order" 当中填写 A, C, D
你会收到以下结果:
A, B, C, D
C, B, A, D
C, B, D, A
D, B, C, A
D, B, A, C
A, B, D, C

类型: Prompt S/R

这个是用来查找替换提示词的。
举例: 你的 prompt 有 A, B, C, D
你在 "Prompt S/R" 当中填写 A, E, F
你会收到以下结果:
A, B, C, D
E, B, C, D
F, B, C, D

对于想要一口气替换一个含有多个提示词的方法,你需要使用到英文的引号" 进行包裹,否则脚本遇到第一个逗号就会开始隔断 ,同时推荐默认查找词使用一个简单的单词用来占位降低冲突。
举例:占位词:standing
具体内容填写:

standing,"long hair,grey hair,green eyes,","short hair,pink hair,red eyes"

参考文章:

订阅评论
提醒
用户头像

0 评论
最旧
最新 最多投票