你要给一个活动出 20 张图——同品牌、同情绪、同色板。一周内陆陆续续出完,可能跨两个场景,拼成 contact sheet 一看,简直像 20 个摄影师分别拍的。灯光漂、色温漂、清晰度漂,连构图逻辑都漂。扩散模型没有”持续的风格状态”,每次生成都是从模型里重新采样。修复方式是用参考图、sref、LoRA、色板后期把风格锁死。
常见原因
按命中率排序。
1. 没有传任何风格参考
光靠文字要”风格一致”,跨 seed 必漂。模型对风格词每次解读都略有差异。
如何判断:批量都只用文字 prompt?是 = 根因就在这。
2. 不同场景的 prompt 结构本来就不同
产品 hero 和生活方式场景需要的 prompt 不同。prompt 不一样,模型起点就不一样,即使风格修饰相同也会漂。
3. 模型或模型版本漂了
一半在 Midjourney v7 上出、一半在 v6.1 上。或者一半 Flux Pro、一半 Flux Dev。即便同一家族,版本之间行为也会变。
4. 分辨率和比例不同
竖海报和方形社交卡片,同 prompt 出来风格”看起来”不同,因为模型对不同比例的拟合策略不一样。比例变了,灯光感和景深感也变。
5. 不同 seed 放大 prompt 的微小差异
两条 prompt 只差一个形容词,同 seed 出来也不同。再叠 seed 变化,漂就累积了。
6. 后期处理不均
有些图升采了、有些没;有些调色了、有些没。AI 出图本来一致,后期也会带来漂移。
动手前先确认
- 把风格 brief 写具体。“暖色编辑感、黄金时刻、浅景深、低饱土色板”是具体的;“高级感”不是。
- 选或者出一张 anchor 图作为整组的目标风格基准。
- 把 anchor 的 seed、prompt 模板、模型存下来。
- 确认整批能用同一个模型版本。版本号显式锁住。
需要收集的信息
- anchor 图本身(你的风格北极星)。
- 风格 brief——色板、光向、镜头感、情绪。
- 模型和精确版本。Midjourney 写版本号;SDXL 记 checkpoint 哈希;Flux 写 Pro / Dev / Schnell。
- 这一批要覆盖的所有场景清单,每个场景的目标比例。
一步步修复
按 ROI 排序。Step 1 + Step 2 能解决大多数批量一致性问题。
Step 1:锁模型和版本
整批用同一模型 + 同一版本。把版本号写下来。云服务用户截一下版本选择器的图。
- Midjourney:每条 prompt 都加同样的
--v。 - SDXL:同一个 checkpoint 文件,记哈希。
- Flux:每条 prompt 同档位(Pro / Dev / Schnell)。
- DALL-E 3 / Imagen 3:同一家、尽量同一周(供应商会静默更新)。
Step 2:每次生成都传风格参考
把”用词描述风格”换成”用图描述风格”:
- Midjourney:每条 prompt 都加
--sref指向 anchor 图,--sw 100-200走强风格遵循。整批同一个 sref URL。 - SDXL:用 IP-Adapter,风格强度 0.6-0.8。整批同一张 anchor。
- Flux:ComfyUI 里用 Flux Redux 或 IP-Adapter 等价物。同一张 anchor。
- DALL-E 3:没有 sref 等价物,相对不稳。把 anchor 的风格特征显式写进 prompt。
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, ratio {比例}, --sref {anchor URL} --sw 150
每张只填”场景描述”和”比例”这两个占位,其他保持不变。
Step 4:高量级活儿训 LoRA
整批 50 张以上、或活动跨好几个月,就训一个风格 LoRA:
- 收 20-50 张代表目标风格的图。
- 在 Replicate / OstrisAI / 本地 Kohya 上训 SDXL 或 Flux LoRA。
- 每次生成都挂 LoRA,强度 0.7-1.0。
- LoRA 在跨场景大变化下也比 sref 锁得更紧。
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。
- 显式锁模型版本,记下来。供应商更新就回测 anchor,再决定要不要切。
- 整批跑统一的后期 recipe,把它存成 preset。
- 长跑的活动训一个项目专属 LoRA,长期复用。
常见坑
- 相信 prompt 里写 “consistent style” 就够了。不够。
- 批量中途换模型版本(因为新版本上线了)。
- 忘了比例本身就影响风格观感。
- 跳过统一后期,直接相信模型输出是”已调色”的。
- 跨好几天出图却没回头核对供应商版本更新。
FAQ
Q:训一个风格 LoRA 需要多少张参考? A:SDXL 或 Flux 上 20-50 张高质量参考足够。质量比数量重要——挑那些明确共享目标风格的图。
Q:sref 能跨非常不同的场景(室内产品 vs 室外生活)吗? A:风格能迁过去,主体不行。anchor 决定风格遵循——色彩、灯光、镜头感——但不会逼着主体长成 anchor 的样子。
Q:能用多张 sref 吗? A:Midjourney 支持多 sref。挑 2-3 张共享同样风格的 anchor,能降低对任何单张 anchor 的怪癖依赖。
Q:sref 已经拉到最大权重,为什么还会漂? A:sref 拉满有时会和场景 prompt 打架、两边都垮。降到 100-150 并显式写风格描述。再检查模型版本是不是锁住了。