SeFi-Image 出图效果不稳、先固定变量再做参数对照

文章导读
同一句提示词跑两次差别很大,通常不是模型在“随机发挥”,而是这次请求里还有没被锁住的随机项:种子没指定或被界面重置、分辨率随默认值变化、采样步数被预设覆盖、提示词被模板拼接后实际内容变了。判断方向是先固定随机源,再做单变量对照——每轮只改一项,其余全部写死,否则无法判断差异来自哪里。
📋 目录
  1. 一 列出所有会改变输出的可调项并排序
  2. 二 固定种子后只改采样步数
  3. 三 固定种子与步数改分辨率与画面比例
  4. 四 只改提示词,观察文本侧的波动幅度
  5. 五 固化一份能稳定复现的参数记录
A A

同一句提示词跑两次差别很大,通常不是模型在“随机发挥”,而是这次请求里还有没被锁住的随机项:种子没指定或被界面重置、分辨率随默认值变化、采样步数被预设覆盖、提示词被模板拼接后实际内容变了。判断方向是先固定随机源,再做单变量对照——每轮只改一项,其余全部写死,否则无法判断差异来自哪里。

SeFi-Image 出图不稳,先按“种子 → 分辨率/宽高比 → 采样步数 → 提示词文本”的顺序锁变量:第一轮固定种子和步数只调尺寸,第二轮固定种子和尺寸只调步数,第三轮同步锁定提示词原文(含负面提示词与模板前后缀)。验证方式是每次改动只产生一组对照图并记录完整参数;如果重跑同一组参数仍不一致,需要先确认随机种子是否真正生效、模型文件与采样器是否同一份,而不是继续调参。

列出所有会改变输出的可调项并排序

先把可调项分成两类再看优先级。随机项只要不固定,同一提示词两次结果必然不同;确定性项写死时输出一致,但改动其中任何一项,输出就会变。

  • 随机项:种子未填或填 -1、批次内种子分配方式、默认开启的随机后处理(裁剪、增强)。
  • 确定性项但会改变结果:采样步数、分辨率与宽高比、采样器与调度器、CFG 引导、模型与精度。

四类高频项的区分:种子是随机源,固定后其他项一致才谈得上复现;步数是采样迭代次数,影响收敛程度和细节量;分辨率同时改变潜空间尺寸,等价于换了一张初始噪声,会改构图,且常与宽高比绑定;提示词是文本输入,必须逐字一致才算固定,空格、标点、模板自动拼接的前后缀变化都算改了输入。

排查优先级从高到低:种子 → 分辨率/宽高比 → 采样步数 → 提示词文本(含负面提示词)→ 采样器与 CFG → 后处理与放大。理由是随机项和尺寸项会整体重排画面,步数和 CFG 更多改细节强度,后处理只影响最终像素。把基线写成可复制的配置,后续每轮只改其中一个字段:

{
  "model": "sefi-image-base",
  "prompt": "...",
  "negative_prompt": "...",
  "seed": 123456789,
  "steps": 20,
  "width": 768,
  "height": 768,
  "sampler": "默认采样器",
  "cfg_scale": 7,
  "batch_size": 1
}

字段名按你实际使用的接口或界面替换,关键约束是每轮只允许一个值变化。

SeFi-Image 出图效果不稳、先固定变量再做参数对照

固定种子后只改采样步数

这一轮回答的是“步数带来的差异有多大”。种子、尺寸、提示词、采样器、CFG 全部沿用基线,只把 steps 设成一组梯度,例如 10、20、30、40;如果模型默认值偏低,可以从 8 起。梯度跨度不要太大,否则同时混入了收敛变化和风格变化,难以归因。

输出的对比方式:每张图存成带参数的文件名,例如 seed123456789_s10_768x768.png,同一屏并排看。差异描述只写可观察到的现象,不写“更好”:

  • 构图骨架:主体位置、朝向、画面分割方式是否变化;
  • 细节层:边缘、纹理、细小结构是否出现或消失;
  • 稳定层:同一区域是否出现结构性错误,例如多指、断层、模糊块;
  • 整体层:明暗、对比、色彩偏移。

通常如果低步数时构图就已确定,加大步数多半只改细节层;如果从低到高构图持续在变,说明当前采样器或调度器在该区间尚未收敛,步数就是高影响项,必须写进记录。不要用单张图下结论,至少比较相邻两档。

SeFi-Image 出图效果不稳、先固定变量再做参数对照

固定种子与步数改分辨率与画面比例

固定 seed 与 steps,只改尺寸。建议一次对照四组:基准方形、同面积放大、竖版、横版,例如 512×512、768×768、512×768、768×512。选尺寸时优先贴近模型的出图基准,偏离越多,重复主体和边缘畸变的概率越高。

观察点包括:主体在画面里的占比与位置、留白与裁切、是否出现重复结构(双头、多肢、重复背景元素)、文字或对称结构是否被拉断。宽高比变化时,同一种子对应的初始噪声形状不同,构图变化属于预期结果,不能把它当成“随机波动”来排查。

尺寸对照记录(每行只改尺寸,其余沿用基线)
seed       steps  size      主体占比  构图变化  畸变/重复  备注
123456789  20     512x512   ...       基线      ...        -
123456789  20     768x768   ...       放大细节  ...        -
123456789  20     512x768   ...       竖版重排  ...        -
123456789  20     768x512   ...       横版重排  ...        -

只改提示词,观察文本侧的波动幅度

把文本影响和参数影响分开:种子、步数、尺寸、采样器、CFG 保持基线不变,只改提示词,且一次只改一处。改写方式建议控制在这几种:

  • 加一个主体修饰,例如把“红色夹克”改为“深红色夹克”;
  • 替换一个风格词,例如写实换插画,其余不动;
  • 在负面提示词里增删一项;
  • 调整词序,或去掉一个逗号分隔的短语。

如果只改一个词就出现构图级变化,说明文本权重很高,后续做参数对照时必须把提示词当作固定基线,一字不改地复制;如果文本微调只影响细节,参数对照中的噪声就更容易被辨认出来。

SeFi-Image 出图效果不稳、先固定变量再做参数对照
提示词对照记录
变体  提示词(逐字复制)            负面提示词变化  seed/steps/size      观察
A     基线原文                      无              123456789/20/768²    基线
B     基线 + "深红色夹克"           无              同上                 局部颜色
C     基线,风格词改为"插画"        无              同上                 整体画风
D     基线                          增加"文字"      同上                 结构变化

记录时保存提示词原文,包括空格、标点和模板自动拼接的前后缀;很多所谓“同一句提示词”,其实被模板加上了不同的质量词。

固化一份能稳定复现的参数记录

记录字段至少包含:seed、steps、width×height、prompt(原文)、negative_prompt、采样器与调度器、CFG、模型名称与版本或文件哈希、批次大小、是否开启后处理。如果界面或接口把 seed=-1 解释为随机,或每次请求返回不同的实际种子,要把服务端回传的最终种子一并记下来。

seed:            123456789
steps:           20
size:            768x768
sampler:         默认采样器 / 调度器名称
cfg:             7
model:           sefi-image-base(记录版本号或文件哈希)
prompt:          ...(逐字,含标点)
negative_prompt: ...(逐字)
postprocess:     关闭 / 名称
batch:           1

复现验证步骤:一是用记录里的参数原样重跑一次,与存档图逐项比对构图、细节和明暗;二是确认种子真的生效,可在界面上把同一参数连跑两次,若两次结果不同,先查前端是否覆盖了 seed,而不是继续调步数;三是换机器或换环境时核对模型文件与采样器是否一致;四是确认放大、锐化、缓存这类后处理是否被默认打开。任何一项对不上,都应当先补齐记录,再谈调参。