AI 图片系列风格不一致:6 类原因 + 6 步修复路径

想做 5 张一致的图,结果像 5 个不同画师画的?固定一个 Midjourney 数字 sref 码(或一张 IP-Adapter 参考图)、锁 seed、冻结模型。2026 年 6 月核实。

你做一个系列:5 张博客插画、10 张商品图、20 张绘本分镜。每张单看都不错,但放一起像 5 个不同画师画的。一张水彩、一张写实、一张动漫色、一张扁平插画,完全不成体系。

最快修复(60 秒):最强的单一杠杆取决于你用的工具。

  • Midjourney(截至 2026 年 6 月默认版本为 V8.1):先用 --sref random 跑一条 Prompt,挑到喜欢的风格后,把它打印出来的那个数字码(如 --sref 579955689 --sw 100)用在系列里每一条 Prompt 上。数字码比图片 URL 稳得多。
  • Stable Diffusion / ComfyUI:把一张参考图加载进 IP-Adapter(Style 模式,权重 0.7-0.9),每次生成都喂同一张。
  • Flux:用 Flux Redux,每次都用同一张参考图(强度 0.6-0.8)。
  • ChatGPT(Images 2.0 / gpt-image-2):在一条消息里一次性要整批(“8 张同风格、同线条粗细、同配色”),让模型的多图一致性来兜底;换镜头角度时再把风格段落重贴一遍。

风格一致不是”模型做不到”,而是”你没约束它”。模型每次按 Prompt 挑一种风格;你不锁,它每次挑不同的。下面把完整诊断和长效修复走一遍。

常见原因

按命中率从高到低排列。先用下表对号入座,再跳到对应的步骤。

你看到的症状最可能的原因跳到
每张图风格词都不一样(或没写)没有共用风格锚Step 1
锚句一样,但风格味还在漂没用参考图 / 没锁 seedStep 2-3
个别图换了模型或”纹理不对”中途换了模型或 samplerStep 4
Midjourney 系列有创意但散stylize 太高,或用了图片 URL srefStep 2 与 5
30+ 张,手动锁太脆没训风格 LoRAStep 6

1. 没有跨 Prompt 复用的风格锚

每个 Prompt 自己写一套风格词(watercolorphotographillustration),或干脆不写。没有一句”全系列共用的风格句”钉在所有 Prompt 上,模型就漂。

如何判断:把 5 个 Prompt 并排看。风格词是不是逐字一致?通常不是。

2. 没锁 seed

即使有同样的风格锚,不同 seed 出的”风格味”也不同。锁 seed 让模型用相似的笔触。

如何判断:工具 seed 是 “random” 或每张不同。

3. 没把同一个风格参考喂给每次生成

最强的一致性杠杆,就是把同一个风格参考挂到每次生成上。不挂,风格必漂。

Midjourney 上有个细节:数字风格码(--sref 579955689)比图片 URL 稳,因为数字指向 Midjourney 风格空间里一个固定的向量,而 URL 每次都被模型重新解读一遍。这类码大约有 42 亿个;--sref random 会随机抽一个并把它打印在结果下方,你照抄锁定即可。

如何判断:没用 --sref(Midjourney)、IP-Adapter / Style 模式(Stable Diffusion,在 Flux 上现已改名 Redux)、Flux Redux。在 Midjourney 上每次贴的是不同图片 URL,而不是一个存好的数字码。

4. 系列中途换模型 / sampler

从 SDXL 换到 Flux 必然不一致。连 sampler 不同(Euler vs DPM++)出的纹理也明显不同。

如何判断:查每张图的生成元数据。不同模型 / sampler → 就是这个。

5. 同一 Prompt 里风格词自相矛盾

"painterly watercolor photograph in the style of anime"

这一句里 4 个矛盾风格,模型取平均,平均还不稳定。

如何判断:任何 Prompt 风格描述无法用 3-5 个词说清楚 → 信号噪音太大。

6. Midjourney 创意自由度过宽

Midjourney 默认 --stylize 100 本身就有创意余量,再往上拉(--stylize 500+)会让模型对每条 Prompt 的发挥更自由,伤系列一致性。系列工作要把 stylize 压低,并加 --style raw 关掉 Midjourney 的自动美化。

还有一个 Midjourney 专属坑:风格引擎在 2025 年 6 月 16 日被重写过,所以你在那之前找到的任何 --sref 码,现在出图会不一样。如果一个老码突然看起来不对,在末尾加 --sv 4 回退到旧算法。

如何判断:你在 Midjourney 上 --stylize 偏高,或在复用 2025 年年中之前的 sref 码却没加 --sv 4

最短修复路径

Step 1:写一句”风格锚句”,钉到每个 Prompt

用 3-7 个具体词定义风格。例子:

# 软粉彩插画
"soft pastel illustration, gentle line work, muted color palette,
storybook style, watercolor textures, hand-drawn aesthetic"

# 电影感照片
"35mm film photograph, kodak portra 400, available natural light,
cinematic muted colors, 50mm lens, shallow depth of field"

# 扁平矢量
"flat vector illustration, bold simple shapes, limited 5-color palette,
no gradient, no texture, modern design aesthetic"

把这段一字不改贴到每个 Prompt 的开头(或结尾)。

Step 2:把同一个风格参考钉到每次生成

# Midjourney(2026 年 6 月默认 V8.1)—— 优先用数字码,而不是 URL
"第 N 张的 Prompt" --sref 579955689 --sw 100
#   --sw 是风格权重:默认 100,范围 0-1000,越大风格越强。
#   找码:先用 "--sref random" 跑一次,再照抄它打印出来的数字。
#   复用 2025-06-16 之前的码且看起来不对?加 "--sv 4" 用旧引擎。
#   想同时锁内容和风格:把 "--oref [角色 URL] --ow 100" 和 --sref 一起用。

# SDXL Forge / ComfyUI
- IP-Adapter,Style 模式(ComfyUI 里是 Style Transfer 节点)
- 每次生成都加载同一张参考图
- 权重 0.7-0.9

# Flux dev
- Flux Redux(即改名后的 Flux IP-Adapter)
- 同一张参考图,强度 0.6-0.8
- 想让某个角色在多次编辑里保持一致,Flux Kontext 守得更好,
  但在多样化风格转换上偏弱

# ChatGPT(Images 2.0 / gpt-image-2)
- 在一条消息里一次性要整批:"生成 8 张同风格、同线条粗细、同配色的图"
  —— 模型大约能保持 8 帧一致
- 或上传一张风格参考,说"后面每张都按这个风格"
- 换镜头角度时,把风格段落重贴一遍;它不会自动延续

Step 3:锁 seed

# Midjourney
"... --seed 42"

# SDXL / Flux
- seed 固定一个整数(如 42)
- 取消 "randomize"

# ComfyUI
- KSampler seed:固定,control_after_generate:fixed

注意:同 seed + 同模型 + 同 sampler 出的风格高度相似。光锁 seed 不够。

Step 4:同模型、同 sampler、同设置

写下技术配方,系列每张都用:

- Model: Juggernaut XL v9(不换)
- Sampler: DPM++ 2M Karras(不换)
- Steps: 30(不变)
- CFG: 6(不变)
- 分辨率: 1024×1024
- Seed: 42(或每张钉死)
- LoRAs: <lora:style_X:0.6>(同列表)

Step 5:Midjourney stylize 调紧

# 系列工作选一种
"--style raw --stylize 50"    # 最严,最忠实
"--style raw --stylize 100"   # 默认 stylize,关掉 raw 美化
"--stylize 250"               # 较严

把 stylize 压低,并搭配一个数字 --sref。注意 Midjourney 虽然一次能接受多个风格参考,但做系列时两个是实际上限;再多就会被平均成谁都不像的中间态。

Step 6:30+ 系列训风格 LoRA

如果系列超过 30 张:

1. 跑或收集 15-25 张目标风格的样本
2. 训 LoRA:1500-2500 步,lr 1e-4
3. 每个 Prompt 加触发词
4. 任何 Prompt + 任何主体,风格都被锁住

Civitai、Replicate、Astria 都有一键训练。

怎么确认修好了

别只盯着一对图看。出图交付前先跑一遍这套检查:

  1. 缩略图条测试。把所有图缩成一行小图排开。成体系的一组即使看不清细节也会读成”一套”;不一致的在小尺寸下一眼就跳出来。
  2. 盲挑测试。把这一条图给没看过的人,问”这里面有没有哪张像是另一个画师画的?“如果对方能挑出”异类”,那张就用锁好的配方重抽。
  3. 元数据核对。本地出图时,确认每张图的 PNG 元数据里模型、sampler、CFG(以及按需固定的 seed)都一致。Midjourney 上确认每个 job 下方的数字 --sref--sw 相同。
  4. 配色核对。把两三张图丢进任意取色器,比对主色块。一致的系列主色应在几个色相步以内。

如果还有一张在漂,只用锁好的配方(同锚句、同参考、同模型同 sampler)单独重生成那一张,别重跑整批。

预防建议

  • 任何系列项目开始时先写下”风格规格”:锚句、数字 sref 码或参考图 URL、模型、sampler、CFG、seed 策略
  • 风格锚句钉在每个 Prompt 的同一位置(永远末尾或永远开头,选一,别混用)
  • 30 张及以上的系列,前期投入训风格 LoRA 很划算
  • 把规格文件和项目一起存,未来想接着画时还能找回
  • 把常用的 Midjourney sref 码存进一个笔记,附上样图缩略和你用过的 --sw

FAQ

为什么我的图两两看着一致,整个长系列却在漂? 每条 Prompt 的细小差异会累积。共用风格锚解决的是措辞,但 seed、模型、sampler 仍会让纹理变化。超过约 10 张时,把四样都锁死(锚句、参考、seed、模型 + sampler),或训一个 LoRA,让风格不再依赖措辞。

Midjourney 用图片 URL 还是数字 sref 码做系列更好? 数字码(--sref 579955689)更一致。它指向一个固定的风格向量,而 URL 每次都被重新解读。用 --sref random 抽一个,复制它打印出来的数字,到处复用即可。

ChatGPT 能在多张图之间保持风格一致吗? ChatGPT Images 2.0(gpt-image-2)在你一条消息里要整批时大约能保持 8 帧一致。超过这个数量,或换镜头角度时,要把完整风格段落重述一遍;它不会跨多个回合自动延续风格。

我的旧 Midjourney sref 码突然变样了,发生了什么? Midjourney 在 2025 年 6 月 16 日重写了风格参考引擎。那之前找到的码在新引擎下会出不同结果。加 --sv 4 回退旧算法,或在当前引擎下重新找一个新码。

只锁 seed 能让系列一致吗? 不能。固定 seed 只有在模型、sampler、steps、CFG 也完全相同时才有意义。同一个 seed 配不同模型或 sampler,出来的是毫不相关的图。先锁配方,再钉 seed。

相关阅读

标签: #图像生成 #排查 #排查 #一致性