AI 图片批量风格漂移:把整组风格锁死

一组活动图出来像 20 个摄影师分别拍的?这篇给一套 2026 年 6 月最新的锁风格批量流程:sref、Omni Reference、Flux Redux、LoRA、色板后期统一。

你要给一个活动出 20 张图:同品牌、同情绪、同色板。一周内陆陆续续出完,可能跨两个场景,拼成 contact sheet 一看,简直像 20 个摄影师分别拍的。灯光漂、色温漂、清晰度漂,连构图逻辑都漂。原因很简单:扩散模型没有”持续的风格状态”,每次生成都是从模型里重新采样,所以光靠文字永远不可能两次出一样的观感。

最快的修法: 别再用文字描述风格,改成每次生成都传同一张参考图。Midjourney 里就是固定的 --sref 图片 URL 加固定的 --sw;ComfyUI / Flux 里是 Flux Redux(IP-Adapter 改的名);Gemini 的 Nano Banana 里就是每次请求都附上同一张参考图。再把模型版本锁到一个,最后用一个共用的调色 preset 在后期把残余漂移收掉。光这几步就能搞定大多数批量。剩下的内容是完整的排查思路和高量级方案(训风格 LoRA)。

先定位你属于哪一类

大多数漂移的批量都只命中下面一两条原因。在表里找到你的症状,再跳到对应步骤。

你看到的症状大概率原因跳到
prompt 里写了”风格一致”,每次出图还是变没传图片参考Step 2
一半图一个样、另一半另一个样中途换了模型或版本Step 1
产品图和生活图互相打架,但各自内部还行不同场景的 prompt 不同Step 3
竖图和方图像两个品牌比例变了,构图和光也变Step 3
风格很接近,但色调在小幅抖模型残余漂移Step 5
只有一两张明显离群后期不均或某张 seed 不好Step 6

1. 没有传任何风格参考

光靠文字要”风格一致”,跨 seed 必漂。模型对风格词每次解读都略有差异。这是最常见的单一根因。

如何判断:批量都只用文字 prompt?是 = 根因就在这。

2. 不同场景的 prompt 结构本来就不同

产品 hero 和生活方式场景需要的 prompt 不同。prompt 不一样,模型起点就不一样,即使风格修饰相同也会漂。

3. 模型或模型版本漂了

一半在 Midjourney V8.1 上出、一半在老的 --v 7 上。或者一半 FLUX.2 [pro]、一半 [dev]。即便同一家族,版本之间行为也会变。云端模型还会静默更新:Midjourney 在 2026 年 6 月 10 日把默认版本切到 V8.1,所以 5 月开工、6 月收尾的一批,如果你没显式锁版本,就会横跨两个默认。

4. 分辨率和比例不同

竖海报和方形社交卡片,同 prompt 出来风格”看起来”不同,因为模型对不同比例的拟合策略不一样。比例变了,灯光感和景深感也变。

5. 不同 seed 放大 prompt 的微小差异

两条 prompt 只差一个形容词,同 seed 出来也不同。再叠 seed 变化,漂就累积了。

6. 后期处理不均

有些图升采了、有些没;有些调色了、有些没。AI 出图本来一致,后期也会带来漂移。

动手前先确认

  • 把风格 brief 写具体。“暖色编辑感、黄金时刻、浅景深、低饱土色板”是具体的;“高级感”不是。
  • 选或者出一张 anchor 图作为整组的目标风格基准。
  • 把 anchor 的 seed、prompt 模板、模型存下来。
  • 确认整批能用同一个模型版本。版本号显式锁住。

需要收集的信息

  • anchor 图本身(你的风格北极星)。
  • 风格 brief:色板、光向、镜头感、情绪。
  • 模型和精确版本。Midjourney 写版本号(如 --v 8.1);SDXL 记 checkpoint 哈希;Flux 写明确变体:FLUX.2 [pro][flex][dev] 还是 [klein]
  • 这一批要覆盖的所有场景清单,每个场景的目标比例。

一步步修复

按 ROI 排序。Step 1 + Step 2 能解决大多数批量一致性问题。

Step 1:锁模型和版本

整批用同一模型 + 同一版本。把版本号写下来。云端供应商会静默更新,所以记得截一下版本选择器的图。

  • Midjourney:每条 prompt 都显式写同一个版本,例如 --v 8.1,不要让它跟着默认走——默认在 2026 年 6 月 10 日已经切到 V8.1。如果你复用的是 2025 年 6 月之前发现的 --sref 代码,还要用 --sv 4 锁住风格版本;当前默认是 --sv 7,对老代码的解读不一样。
  • SDXL:同一个 checkpoint 文件,记哈希,方便日后核对。
  • Flux:每条 prompt 同一个 FLUX.2 变体:[pro][flex][dev][klein]。别混变体,也别把 FLUX.1 和 FLUX.2 混用。
  • Nano Banana / Imagen(Gemini):整批用同一个模型(例如 Nano Banana Pro,即 Gemini 3 Pro Image 模型)。

Step 2:每次生成都传风格参考

把”用词描述风格”换成”用图描述风格”,整批每条 prompt 都用同一张参考图。

  • Midjourney:加 --sref <anchor URL> 并固定 --sw--sw 取值 0 到 1000(默认 100),批量的实用甜区大约在 65 到 175。整批用完全相同的 sref URL 或代码。(只有当你还需要同一主体或角色出现在每一帧时,才用 --oref <URL> --ow 100;Omni Reference 目前是 V7 功能,且耗 2 倍 GPU。)
  • SDXL:用 IP-Adapter,风格强度 0.6 到 0.8。整批同一张 anchor。
  • Flux:ComfyUI 里用 Flux Redux(Black Forest Labs 把 IP-Adapter 改名为 Redux)。每次渲染同一张 anchor。要在多个变体间保持编辑一致,FLUX.1 Kontext 也很强。
  • Nano Banana(Gemini):每次请求都附上同一张参考图。Nano Banana 模型单次请求最多接受 14 张参考图,并能保持风格与最多 5 个人物的一致性,是批量活儿的快捷选项。

Step 3:建一个 prompt 模板,整批都用它

写一条带占位的统一 prompt,每张只填场景相关的部分,其余逐字保持完全一致。

[场景描述], warm editorial photography, golden hour side-light,
shallow depth of field, muted earth palette, slight film grain,
shot on 35mm lens, ar [比例], --sref [anchor URL] --sw 150

如果不同场景确实需要不同 prompt(产品 hero vs 生活方式),就让风格块(场景描述之后的所有内容)保持一致,只改场景和比例。比例一变,灯光感和景深感就变,所以审图要把不同裁切并排看,别单张看。

Step 4:高量级活儿训风格 LoRA

整批 50 张以上、或活动跨好几个月,就训一个风格 LoRA:跨场景大变化下它比 sref 锁得更紧。

  • 收 20 到 50 张都明确共享目标风格的图。
  • 开训。截至 2026 年 6 月,AI-Toolkit(OstrisAI 出品,带 Web UI)是 FLUX.2 [dev][klein] 的标准训练器;Kohya SS 仍覆盖 SDXL 和 FLUX.1;也可以在 fal.ai 或 Replicate 上云端训。注意:FLUX.2 [pro][flex] 是闭源权重、不支持 LoRA 训练,所以要针对 [dev][klein] 训。
  • 每次生成都挂 LoRA,强度 0.7 到 1.0。

Step 5:后期统一色板

挂了 sref / LoRA 也会有小幅色板漂。每张都过一次色板锁定后期:

  • Lightroom 里把调色存成 preset,整批应用。
  • Photoshop 里用 Color Lookup 调整图层 + 固定 LUT。
  • Davinci Resolve 里搭一组节点,对静帧逐张应用。

这能把模型锁不住的最后 10% 漂移收回来。

Step 6:交付前过一次审

整批按交付尺寸排成 contact sheet,看:

  • 色温有没有跳出来的(一张比其他偏暖或偏冷)。
  • 清晰度有没有跳出来的(一张明显偏软或偏硬)。
  • 构图有没有跳出来的(一张三分法明显不同)。

挑出来要么重出、要么后期修。

怎么确认已经修好

  • 按交付尺寸做一张 contact sheet。风格离群点应该一眼可见。
  • 用颜色取色器在多张图里采同一处颜色,delta-E 应在小范围内。
  • 把 contact sheet 给没参与生成的人看,问他哪张不一样,理论上没有。
  • 在实际投放表面(网页 / 印刷 / 社交)上检查整组观感。

长期预防

  • 活动级别的活儿,先建 anchor + sref / LoRA,再开始批量出。
  • 给项目维护一份 prompt 模板文档。brief 改一次就改文档,不要散着改单条 prompt。
  • 显式锁模型版本并记下来(Midjourney --v、Flux 变体、SDXL checkpoint 哈希)。供应商发了新默认就先回测 anchor,再决定要不要切。
  • 整批跑同一套后期 recipe,存成 preset。
  • 长跑的活动训一个项目专属 LoRA,长期复用。

常见坑

  • 相信 prompt 里写 “consistent style” 就够了。不够。
  • 让 Midjourney 跟着默认版本走,结果活动中途被切到 V8.1。
  • 一批里混用 FLUX.2 变体([pro] vs [dev]),或者把 FLUX.1 和 FLUX.2 混着用。
  • 忘了比例本身就影响风格观感。
  • 跳过统一后期,直接相信模型输出已经”调过色”。
  • 跨好几天出图却没回头核对供应商版本更新。

FAQ

Q:Midjourney 里 --sref--oref 有什么区别? A:--sref(风格参考)复制的是观感:色彩、灯光、镜头、情绪。--oref(Omni Reference)复制的是某个具体主体,比如角色或产品,把它放进画面。批量锁风格要用 --sref;只有当同一主体也必须出现在每张图里时才加 --oref。截至 2026 年 6 月,Omni Reference 是 V7 功能,且耗时约为普通任务的 2 倍。

Q:--sw 该设多少? A:--sw 取值 0 到 1000(默认 100)。批量一致性的实用甜区是 65 到 175。只有当风格几乎没生效时才往上调;数值太高会和场景 prompt 打架,结果变得不可预测。

Q:训一个风格 LoRA 需要多少张参考? A:SDXL 或 FLUX.2 上 20 到 50 张高质量参考足够。质量比数量重要:挑那些明确共享目标风格的图。要针对 FLUX.2 [dev][klein] 训,因为 [pro][flex] 不支持 LoRA 训练。

Q:风格参考能跨非常不同的场景(室内产品 vs 室外生活)吗? A:风格能迁过去,主体不行。anchor 决定风格遵循(色彩、灯光、镜头感),但不会逼着主体长成 anchor 的样子。场景差异很大时,训好的 LoRA 比单张 sref 锁得更紧。

Q:sref 已经拉到最大权重,为什么还会漂? A:--sw 拉满有时会和场景 prompt 打架、两边都垮。降回 100 到 150,并在 prompt 里显式写风格描述,再确认模型版本已锁(复用老 sref 代码的话还要锁 --sv)。

相关阅读

标签: #ai-image #排查 #style #batch