刚开始用 AI 出图的人,几乎都会先撞上同一件怪事:把刚才那句提示词原封不动再发一次,出来的却是另一张图。人的脸变了,构图变了,连色调都变了。用久了很容易得出一个判断——这东西全靠运气。
“运气”这个说法不够准确。同一句提示词每次出图不同,不是模型不听话,而是生成过程里有一个明确的随机环节。这篇文章只解决两个问题:这份随机性到底出现在哪一步;随机种子(seed)和提示词的具体程度这两个你能控制的东西,各自在影响什么。搞清楚之后,“碰运气”就会变成“知道自己在调什么”。
模型不是“照着描述画”,是“从噪声里擦出来”
先纠正一个默认的想象。模型出图,不像画师看着你的描述在白纸上落笔;它一开始手上根本没有白纸,只有一团纯随机噪声——可以想成电视机的雪花屏,每个像素都是随机取的数。
然后它反复做同一件事:看一眼当前的画面和你的提示词,判断“这堆东西里哪些是噪声”,把噪声减掉一点。减一次,画面清楚一点。重复几十步,最后剩下的就是一张图。
顺序很关键。研究这个过程的论文发现,前面几步就把整张图的骨架定下来了:主体在画面哪个位置、占多大、背景怎么分布;后面的大部分步骤只是往这个骨架上填细节——纹理、光影、材质。所以一张图的构图,本质上是生成最开头几步的产物,提示词的信息也是在这个阶段被用上的。
随机性只有一个来源:起点
那团噪声从哪来?由随机数发生器生成,而随机数发生器需要一个编号来启动,这个编号就是随机种子(seed)。
种子本身不包含任何图像信息。它不含构图,不含风格,它只是从无数种可能的噪声里挑出一种。真正决定这团噪声最后变成什么的,是提示词、模型和那几十步推算。但起点不同,后面每一步都会沿着不同路线走,终点自然不同。
这就回答了开头那个问题:同一句提示词每次出图不同,是因为默认情况下每次运行都会用一个新种子,于是起点那团噪声不一样。你的提示词一次都没变,变的是抽签的结果。
把种子固定下来,你会看到什么
大多数工具都允许你手动指定种子,比如在提示词末尾加上 --seed 1234。固定种子之后,同一句提示词在同一平台、同一模型版本下再跑一次,你会拿到构图高度接近的图——不是逐像素相同,但一眼能认出来是“同一张”。
这件事的用处不是“省事”,而是 让改动变得可解释。平时你改了提示词、又换了参数、还赶上新种子,最后看到差别,根本不知道是哪一处造成的。锁定种子以后一次只改一处,看到的差别才能归因到你改的那一处。这是从“碰运气”走到“调试”的关键一步。
不过种子能锁住的东西比想象中少,几个边界值得先记住:
- 跨平台不复现。 官方文档明确说,即使是 CPU 和 GPU 之间,同一个种子也未必给出相同结果;跨版本、跨设备更不保证。种子是一张“本机存档”,不是通用密码。
- 换分辨率、改步数、换模型版本都会失效。 起点噪声的形状变了,后面的推算路线也变了,同一个数字会指向完全不同的东西。Midjourney 官方文档还专门提醒,种子只适合用来做对比实验,并不可靠:隔一段时间再回来,同一个种子可能就不再按预期工作,模型更新也会改变它的效果。
- 种子不保证好图。 有一项研究在固定提示词下试了 1024 个种子,用自动评分衡量,最好的种子明显优于最差的种子——差距大到不能当成噪声。同一句提示词多抽几次再挑,本身就是在挑起点,这是正常做法,不是作弊。
提示词的具体程度,决定的是“可落的地方有多大”
种子决定这一抽落在哪里,提示词决定的是 能落在多大一片地方。
一句提示词对应的不是一个画面,而是一片画面:所有“符合这句描述”的图都算合格。描述越模糊,这片区域越大;越具体,区域越小。区域越小,不同种子之间的差别自然越有限。
一个很直观的例子来自一项研究。它用 DALL-E 3 比较了两句提示词,一句是 orange ball against white background,另一句是 a matte orange ball in the center against a pure white background。第一句里,orange 是水果还是颜色?球多大?摆在哪儿?光从哪边来?这些模型每次都只能自己选一种理解,于是同一句提示词的不同种子给出的是几种不同的画面。第二句把颜色、材质、位置、背景都定死了,可选空间小得多。研究者让每句提示词跑多个随机种子,再比较同一组内部的图像相似度:写得具体的那组是 0.99,写得笼统的那组只有 0.68。
这项研究还找到了几个方向一致的规律:抽象词比具体词波动大(“尊严”比“房子”散),多义词比单义词波动大(一个词有几种视觉解释,模型就会选几种),而形容词、位置限定词、更长的句子会把范围收窄——因为它们在不断加条件。
两个旋钮,两层作用
把上面两件事放在一起,整幅图景就清楚了:
- 种子管的是“这一抽落在哪”。 它决定这一张图的构图起点,换一个种子就换一次抽签。
- 提示词管的是“可落的那片地方有多大”。 它不改变抽签的随机性,只改变结果能散开多少。
由此可以推出几种常见组合。提示词笼统、种子随意,你每次都会拿到模型对这句话的另一种解释,几乎不可能用;提示词笼统、种子固定,你每次会拿到同一个解释,但那个起点好不好,全靠当初抽到了什么;提示词具体、种子随意,每次都在你划定的那片小区域里,差别有限,可直接用。
所以日常最省力的做法是:先用一句尽量具体的提示词多抽几个种子,从一批里挑出构图最合适的那张,然后锁定它,一次只改一处继续微调。要判断“到底哪句话起了作用”,靠的就是那个锁住的种子。
还有一件事值得记在心里:种子再好也不能把一句话的空洞补上,提示词再具体也压不掉起点带来的差异。两者是两层作用,谁也代替不了谁。
至于视频,情况还要多一层——同一句提示词连跑两次,变的不只是构图,动作怎么走、走多快、在什么时候发生,也都会变。这层额外的随机性从哪来、怎么压住,是下一篇要讲的内容。