Stable Diffusion 的种子有什么用?

作者 更新于 2 分钟阅读

种子是一个整数,用来初始化每次生成起始的随机噪声。相同的种子、提示词、模型、设置和软件下,Stable Diffusion 会输出相同的图像;换一个种子,同一提示词就会得到另一种构图。在 Automatic1111 和本站,-1 表示每次随机选一个种子。

种子为什么重要

扩散从噪声开始,每张图都是这份噪声加上你的设置的确定性结果。种子就是噪声的配方。这使它成为最有用的学习工具:固定种子,只改一处,再对比。这正是本站画家风格对比的方法:1,731 位画家、四条固定提示词、每条提示词一个固定种子。只有画家名在变,所以你看到的差异完全来自画家名本身。同样的方法也适用于比较两个模型、两种采样器或两个 CFG 值:只要种子不变,画面上的每一处差异都来自你改动的那一项。

实际用法

  1. 用种子 -1 生成,直到出现你喜欢的构图。
  2. 在图像信息里读取种子(Automatic1111 会写进 PNG 元数据和图片下方),粘贴到种子框。
  3. 现在逐词调整提示词或负面提示词:构图通常保持不变,细节随之变化。
  4. 使用非祖先采样器(Euler、DDIM、DPM++ 2M)时,改变步数或 CFG,同一种子仍会给出相近的图像,便于公平地比较设置。Euler a 这类祖先采样器每一步都会加入新的噪声,结果会漂移。

本站的提示词示例为几乎每张图都标注了种子,你可以从已知结果出发。

什么会破坏可复现性

  • 换模型或 LoRA:噪声相同但去噪器不同,图像会随之改变,权重低的 LoRA 只带来细微变化,换模型则完全不同。
  • 换图像尺寸:噪声张量的形状变了,即使种子相同,图像也毫无关联。
  • 换显卡或软件版本:微小的浮点差异会移动细节;换了显卡品牌,Automatic1111 连生成的噪声都不一样,除非把它的随机数来源设为 CPU。
  • Automatic1111 还有一些会改变结果的额外设置,例如 variation seed、Clip skip 和 Eta noise seed delta;要精确复现,请让它们保持一致。

围绕一个种子做变化

Automatic1111 有 variation seed 和 variation strength 滑块:设为 0.1 到 0.3 时,会得到同一张图的「姐妹版」,姿势和色调相同、细节略有不同,适合挑选最好的手或脸。用 X/Y/Z plot 把种子放在一个轴、提示词的某个词放在另一个轴,一次运行就能得到一张对比网格。把出过好图的种子记下来,它们是之后生成同风格图像的可靠起点。

常见问题

种子越大越好吗?

不是。种子只是噪声模式的标签,不是画质设置;7 和 4,294,967,295 一样好。唯一重要的是它可以重复。

在别的网站用同一种子能得到同一张图吗?

只有当那个网站使用相同的模型、尺寸、采样器、步数、CFG 和软件时才行。两个 Automatic1111 安装之间通常可以;不同服务之间几乎不可能。

为什么在本站的工具里同一种子会得到不同的图?

公开工具会给每个请求套用自己的负面提示词、细节 LoRA、步数和采样器,局部重绘还会把你的图像缩放到 1024 px 以内,所以结果与你本地生成的不同。在本站内部,相同的请求配相同的种子是可以复现的。