# 同一句提示词，为什么每次出图都不一样

从随机种子和提示词的具体程度，拆开 AI 出图的随机性

> 随机种子 · 提示词 · 扩散模型 · 约 7 分钟 · 09 月 29 日

## 本篇要点

1. 同一句提示词每次出图不同，是因为生成从一个随机起点开始：模型默认每次都用新的随机种子生成起点噪声，起点不同，后续每一步的推算路线都不同。
2. 模型出图不是在白纸上作画，而是从一团随机噪声出发，反复判断并减掉一部分噪声，重复几十步后得到图像；前几步就定下了整体构图，后面的步骤主要填细节。
3. 随机种子不包含任何图像信息，它只决定起点噪声；固定种子能复现相近构图，但跨平台、跨版本、改分辨率或步数后就不再复现，模型更新也可能让旧种子失效。
4. 种子本身有好坏之分：固定提示词下试 1024 个种子，自动评分显示最好的种子明显优于最差的，因此多抽几个种子再挑选是正常做法，而非碰运气。
5. 提示词的宽窄决定“合格的图”有多少种：提示词越笼统，同一句在不同种子下的结果差别越大；把材质、颜色、位置、背景写死后，同一组图的相似度显著提高。
6. 提示词里的抽象词和多义词会放大差异，形容词、位置限定词和更长的句子会收窄差异。
7. 两个旋钮分属两层：种子决定这一抽落在哪里，提示词决定可落的那片地方有多大，谁也代替不了谁。
8. 实用做法是先跑几个种子挑出好构图，再锁死种子，一次只改提示词的一处，这样看到的差别才能归因到改动本身。

---

刚开始用 AI 出图的人，几乎都会先撞上同一件怪事：把刚才那句提示词原封不动再发一次，出来的却是另一张图。人的脸变了，构图变了，连色调都变了。用久了很容易得出一个判断——这东西全靠运气。

“运气”这个说法不够准确。同一句提示词每次出图不同，不是模型不听话，而是生成过程里有一个明确的随机环节。这篇文章只解决两个问题：这份随机性到底出现在哪一步；随机种子（seed）和提示词的具体程度这两个你能控制的东西，各自在影响什么。搞清楚之后，“碰运气”就会变成“知道自己在调什么”。

## 模型不是“照着描述画”，是“从噪声里擦出来”

先纠正一个默认的想象。模型出图，不像画师看着你的描述在白纸上落笔；它一开始手上根本没有白纸，只有一团纯随机噪声——可以想成电视机的雪花屏，每个像素都是随机取的数。

然后它反复做同一件事：看一眼当前的画面和你的提示词，判断“这堆东西里哪些是噪声”，把噪声减掉一点。减一次，画面清楚一点。重复几十步，最后剩下的就是一张图。

顺序很关键。研究这个过程的论文发现，前面几步就把整张图的骨架定下来了：主体在画面哪个位置、占多大、背景怎么分布；后面的大部分步骤只是往这个骨架上填细节——纹理、光影、材质。所以一张图的构图，本质上是生成最开头几步的产物，提示词的信息也是在这个阶段被用上的。

```mermaid
flowchart LR
  A["随机种子 seed"] --> B["随机数发生器"]
  B --> C["起点：一团噪声"]
  D["提示词"] --> E["每一步朝描述的方向推一点"]
  C --> E
  E --> F["前几步：定下构图和布局"]
  F --> G["后面几十步：填细节"]
  G --> H["成图"]
```

## 随机性只有一个来源：起点

那团噪声从哪来？由随机数发生器生成，而随机数发生器需要一个编号来启动，这个编号就是随机种子（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。

![同一个提示词分别用多个随机种子生成的结果：上排提示词把材质、位置、背景都写死了，下排只写了“橙色球在白背景上”](https://arxiv.org/html/extracted/6025162/assets/oranges-small.jpg)

这项研究还找到了几个方向一致的规律：抽象词比具体词波动大（“尊严”比“房子”散），多义词比单义词波动大（一个词有几种视觉解释，模型就会选几种），而形容词、位置限定词、更长的句子会把范围收窄——因为它们在不断加条件。

## 两个旋钮，两层作用

把上面两件事放在一起，整幅图景就清楚了：

- **种子管的是“这一抽落在哪”。** 它决定这一张图的构图起点，换一个种子就换一次抽签。
- **提示词管的是“可落的那片地方有多大”。** 它不改变抽签的随机性，只改变结果能散开多少。

由此可以推出几种常见组合。提示词笼统、种子随意，你每次都会拿到模型对这句话的另一种解释，几乎不可能用；提示词笼统、种子固定，你每次会拿到同一个解释，但那个起点好不好，全靠当初抽到了什么；提示词具体、种子随意，每次都在你划定的那片小区域里，差别有限，可直接用。

所以日常最省力的做法是：先用一句尽量具体的提示词多抽几个种子，从一批里挑出构图最合适的那张，然后锁定它，一次只改一处继续微调。要判断“到底哪句话起了作用”，靠的就是那个锁住的种子。

还有一件事值得记在心里：种子再好也不能把一句话的空洞补上，提示词再具体也压不掉起点带来的差异。两者是两层作用，谁也代替不了谁。

至于视频，情况还要多一层——同一句提示词连跑两次，变的不只是构图，动作怎么走、走多快、在什么时候发生，也都会变。这层额外的随机性从哪来、怎么压住，是下一篇要讲的内容。

## 术语表

- 去噪过程：模型从一团随机噪声出发，反复判断并减掉一部分噪声，几十步之后噪声变成图像的过程。
- 随机种子（seed）：启动随机数发生器的那串编号，决定起点那团噪声是哪一种；换一个种子就换一次起点。
- 起点噪声：生成开始时的那团随机画面，一张图的构图主要由它和最初几步决定。
- 提示词的落点范围：一句提示词对应“所有符合它的图”这一片区域，描述越具体，这片区域越小，不同种子之间的结果差别也越小。

## 来源

1. [Hugging Face Diffusers: Create reproducible pipelines — 扩散模型推理中的随机来源、种子与跨设备复现的限制](https://huggingface.co/docs/diffusers/main/using-diffusers/reproducibility)
2. [Midjourney 官方文档: Seeds — 种子取值范围、作用范围与不可靠性的说明](https://docs.midjourney.com/hc/en-us/articles/32604356340877-Seeds)
3. [Words Worth a Thousand Pictures (EMNLP 2024) — 提示词语言特征与同一提示词跨种子变异程度的关系，含橙色球例子与相似度 0.99 / 0.68](https://aclanthology.org/2024.emnlp-main.311.pdf)
4. [Good Seed Makes a Good Crop (WACV 2025) — 种子控制初始潜变量，1024 个种子的质量差异](https://openaccess.thecvf.com/content/WACV2025/papers/Xu_Good_Seed_Makes_a_Good_Crop_Discovering_Secret_Seeds_in_WACV_2025_paper.pdf)
5. [Towards Understanding the Working Mechanism of Text-to-Image Diffusion Model — 去噪过程“先整体形状、后细节”，提示词信息主要在早期阶段起作用](https://ar5iv.labs.arxiv.org/html/2405.15330)
6. [Seeds, Determinism, and Reproducing an Image — 种子初始化伪随机数发生器、不编码图像内容](https://multigrid.ai/learn/image-generation-seeds)
7. [The Illustrated Stable Diffusion — 从噪声到图像的分步生成过程与提示词作为条件的作用](http://jalammar.github.io/illustrated-stable-diffusion/)

---

原文：https://pangzhengboyin.com/articles/why-same-prompt-different-images-seed-55177cb9

> **庞征博引** · 想学的，慢慢都会
>
> 庞征博引是把想学的东西写成连载的 AI 学习工具。说出想学什么，它会先了解你的基础，再把主题写成一篇篇 5–10 分钟能读完的文章；边读边问，接下来学什么跟着你走。这篇就是这样写出来的。
>
> 开始你自己的连载 → https://pangzhengboyin.com
