你写 35mm film photograph of a coffee shop,结果出来一张干净得离谱的图:渐变完美平滑、零颗粒、阴影区是大块纯色。看起来像”照片的 CG 渲染”,不是真照片。这是模型默认值的问题。SDXL、Flux(包括 FLUX.2)、Midjourney 全都偏向干净渲染,因为训练集里大量是修干净的图库照片和数字图像。真实的颗粒——卤化银晶体或高 ISO 传感器带来的随机亮度噪点——必须显式召唤出来。
最快修法: 锚定一种具体的胶片型号(别只写 “film”),加上带权重的颗粒词,再把 CFG/guidance 调低一档。Midjourney 上加 --style raw。如果这样之后图还是干净的,说明颗粒是在下游被吃掉了——要么是放大器,要么是低质量 JPEG 导出,直接跳到 Step 4-5。
先判断你属于哪一类
| 症状 | 最可能的原因 | 跳到 |
|---|---|---|
Prompt 写了 film 但没具体型号 | 笼统的胶片词被平均成干净 | Step 1 |
| 1:1 放大看也是干净的 | 干净渲染偏向,没给颗粒加权 | Step 1-3 |
| 预览有颗粒、放大后没了 | 放大器把颗粒当噪点抹掉 | Step 4 |
| 编辑器里有颗粒、导出文件没了 | 低质量 JPEG 把颗粒量化掉 | Step 5 |
| Midjourney 把一切都自动美化 | 默认 stylize 太强 | Step 1(--style raw) |
常见原因
按命中率从高到低排。
1. 只写了 “film” 或 “analog” 没给型号
film photo、analog、vintage photograph 太宽。模型在”修干净的老照片扫描件”和”真带颗粒的负片”之间取平均,干净那边一般会赢。
如何判断:Prompt 里有 film,但没有 Kodak Portra、Fuji Pro 这种具体胶片名。
2. Guidance / CFG 太高
高 guidance 会把模型狠狠推向它以为你想要的”完美干净照片”,把微观纹理磨掉。截至 2026 年 6 月,对颗粒友好的范围大致是 SDXL 的 CFG 5-7、Flux 的 guidance 3.0-3.8。跑得更高,颗粒会第一个消失。
如何判断:SDXL CFG 高于 8,或 Flux guidance 高于 4。降一档重渲一次。
3. 渲染分辨率太低
768x768 及以下的渲染,颗粒细节会在 latent 压缩里丢掉。模型在这个尺寸下没法干净地表征噪声 pattern,干脆”四舍五入”掉了。
如何判断:同 Prompt 在 1024x1024 有颗粒,768x768 没有。
4. 后处理放大器把颗粒磨掉了
ESRGAN、4x-UltraSharp,尤其是 SwinIR_4x,放大时会激进抹平颗粒。它们被训练成把颗粒当噪点去除。SUPIR 这类扩散式修复器还可能在真颗粒上糊一层自己脑补的平滑纹理。
如何判断:放大前有颗粒、放大后没了。
5. JPEG 导出质量太低
Quality 75 以下保存 JPEG,颗粒会被量化成块状 8x8 伪影,视觉上读成”没纹理”。
如何判断:看文件大小。1024x1024 的照片 JPEG 小于 200KB,就是压得太狠了。
最短修复路径
Step 1:用具体的胶片型号
训练集里对具体型号有强关联。把 film photo 替换为下面其中一个:
Kodak Portra 400(暖肤色、柔颗粒、经典编辑风)
Kodak Tri-X 400(经典黑白、颗粒明显)
Fujifilm Pro 400H(冷调、细颗粒、婚礼摄影最爱)
Fujifilm Velvia 50(高饱和、极细颗粒、风光)
Cinestill 800T(钨丝灯白平衡、梦幻光晕、霓虹夜景)
Ilford HP5(黑白、粗砺、新闻摄影感)
Kodak Gold 200(暖调、轻颗粒、度假快照)
这些在训练集里都有各自鲜明的颗粒特征。在 Midjourney V7/V8.1 上再追加 --style raw,它会关掉自动美化那一遍,是保住纹理最有效的一根杠杆(V8.1 自 2026 年 6 月 10 日起为默认模型,V7 仍可在设置里选)。一个能跑的写法:kodak portra 400, 35mm, slight film grain, natural imperfections --style raw。
Step 2:给 grain 加权重(SDXL / SD 系)
Prompt 里加:
(film grain:0.8), (visible grain:0.7), (analog noise:0.6),
35mm film, slight noise in shadows, organic grain pattern, ISO 800
权重 0.6-0.8 足以让模型注意到、又不会喧宾夺主。超过 1.0 颗粒会变成视觉伪影而不是纹理。
语法提示:(term:weight) 这种注意力加权是 SDXL / Automatic1111 / ComfyUI 的特性。Flux 会忽略带权重的括号,所以对 Flux 直接把颗粒词写成自然语言就行:35mm film, heavy organic film grain, ISO 800, visible noise in shadows。
Step 3:负向 Prompt 拦”干净”(仅 SDXL)
digital, clean, smooth, noise-free, CGI, 3d render, ultra clean,
no grain, perfect smooth gradient, plastic, oversharpened
主动排斥”干净渲染”偏向。Flux 不像 SDXL 那样用负向 Prompt(它是 flow-matching 模型,不是 classifier-free guidance),所以这一步只适用于 SDXL / SD 系。对 Flux,改成降低 guidance(见 Step 2 的原因)并加载一个写实或胶片颗粒 LoRA。
Step 4:换掉激进放大器
ESRGAN 或 SwinIR 换成对颗粒友好的:
4x_NMKD-Siax(保颗粒效果更好)
4x_RealisticRescaler(专为写实照片设计、保纹理)
4x_foolhardy_Remacri(温和、保住微观细节)
这些可以在 OpenModelDB 上找到并下载。或者直接用 img2img 低 denoise(0.2-0.3)+ 同样 Prompt 做放大,相当于让扩散模型再过一遍,能重新引入颗粒而不是抹平。在 ComfyUI 里也可以放大后用 BetterFilmGrain 节点重新补颗粒,而不是跟放大器硬刚。
Step 5:实在不行后期补颗粒
都救不回来时,后期加上:
Photoshop:Filter > Camera Raw > Effects > Grain。Amount 25,Size 25,Roughness 50
Lightroom:Develop 模块 > Effects 面板 > Grain。Amount 25,Size 25,Roughness 50
Affinity Photo:Filters > Noise > Add Noise,2.5% Gaussian,单色
DaVinci Resolve(视频用):Effects > ResolveFX Texture > Film Grain
在 Lightroom 和 Camera Raw 里,Roughness 要大于等于 Size。Roughness 比 Size 小的时候,颗粒会显得块状、很假。免费的 GIMP HSV Noise 滤镜跑 5% 仅明度噪点也行。后期补颗粒,总比一张全干净的图当”胶片照片”出货强。
怎么确认修好了
- 在中间调区域(皮肤、灰墙这种)放到
100%(1:1像素视图)。应该看到细密的随机亮度噪点,而不是一片平滑死面。 - 看阴影:真颗粒在阴影里也看得到,不是只在高光。死平的纯黑阴影块说明颗粒丢了。
- 导出最终文件后,重新打开导出的那个文件(不是编辑器里的预览)再放大看一遍。这能抓到 Step 5 / JPEG 那种”软件里有、一存就死”的情况。
预防建议
- 维护一份 5 种常用胶片型号清单,按情绪轮换。
- 人像 preset 里默认带颗粒:
(film grain:0.7)(SDXL),或者胶片颗粒 LoRA 挂0.4-0.6(Flux)。 - 想要颗粒感的图永远别用 ESRGAN 或
SwinIR放大,换NMKD-Siax或Remacri。 - 照片类 Prompt 最低
1024x1024起渲染,不要再低。 - 最终 JPEG 质量
92+,或者带颗粒的图直接存 PNG,避免被压扁。
常见问题
Prompt 里明明写了 “film grain”,为什么 AI 照片还是干净的?
光一个 film 会和训练集里数百万张干净数字图被平均掉。把它锚到具体型号(Kodak Portra 400),在 SDXL 上给颗粒词加权((film grain:0.8)),Midjourney 上加 --style raw。笼统的词几乎总是输给干净渲染偏向。
Flux 上负向 Prompt 能拦颗粒缺失吗?
不能。Flux 是 flow-matching 模型,不像 SDXL 那样支持 classifier-free 负向 Prompt。对 Flux,把 guidance 降到大约 3.0-3.8,颗粒词写成自然语言,再加载一个写实或胶片颗粒 LoRA。负向 Prompt 只在 SDXL / SD 系上有用。
Midjourney 哪个版本、哪个参数颗粒最足?
在 V7 或 V8.1 上用 --style raw 关掉自动美化那一遍,再写上胶片型号和 ISO。截至 2026 年 6 月 10 日 V8.1 是默认模型;V7 仍可在设置里选,喜欢它的纹理也可以继续用。
放大之后颗粒就没了,为什么?
大多数放大器(ESRGAN、4x-UltraSharp、SwinIR_4x)被训练成把颗粒当噪点去除。换成对颗粒友好的型号(4x_NMKD-Siax、4x_foolhardy_Remacri),用 img2img 在 denoise 0.2-0.3 下放大,或者放大后再补颗粒(ComfyUI BetterFilmGrain 或后期一步)。
颗粒权重多大算太多?
SDXL 上权重超过 1.0,颗粒就从纹理变成可见伪影(点状、扎眼),保持在 0.6-0.8。Lightroom / Camera Raw 里 Amount 大约 25 是自然胶片感,50+ 就开始像刻意的风格化了。