你在深红色墙前布置一张人像,出来后人物皮肤泛粉、白衬衫透着玫瑰色、头发上还挂着一层红反光——参考里完全没有的颜色。这就是”背景色渗到主体上”:模型的注意力层在 latent 空间里没把前景和后景干净地分开,高饱和的背景色就漏进了主体。强原色背景(红、蓝、绿)和复杂花纹背景最容易触发。
修法有三条思路:用蒙版重绘把主体区域重新生成、用分区提示词把主体和背景放到独立注意力区、或者两步走——先在中性背景上出主体,再合成背景。
常见原因
按命中率从高到低:
1. 一个 Prompt 同时管主体和背景
portrait of a woman against a red brick wall 这种写法,red、woman、wall 全坐在同一个注意力窗口里。cross-attention 没法完全区分”red 只对应 wall 不对应皮肤”。皮肤就会染上一点红。
如何判断:一句 Prompt 同时描述主体和背景。背景用强原色。
2. 背景高饱和
低饱和的灰背景、米色背景几乎不会渗。纯红、纯蓝、纯绿墙几乎一定渗。模型把这种饱和度解读成全局光照,给所有地方都铺一层色彩。
如何判断:背景饱和度 80%+,主体上能看到对应的微弱色偏。
3. pipeline 里没有分割或蒙版
一气呵成生成、没有主体 mask 时,模型缺少空间约束。没有信号告诉它”这块是主体、那块是背景、属性别混”。
如何判断:工作流里没有分割节点、没有 inpaint、没有 regional prompter。
4. 风格化 LoRA 放大串色
某些绘画风或风格化 LoRA 本身就在强化色彩统一(它们训练数据里追求”统一色板”),会放大串色。
如何判断:同 Prompt 去掉这个 LoRA 串色减轻,加上反而更严重。
5. refiner 把颜色二次混合
SDXL refiner 在 denoise 0.4+ 时会重新平均相邻区域,把颜色串回去。串色严重时降低或跳过 refiner。
如何判断:base 输出干净、refiner 跑完反而串了。
最短修复路径
Step 1:蒙版重绘主体区域
最外科手术式的修法:
- 正常生成图片
- 送去 inpaint
- 只蒙住主体(皮肤 + 衣服),mask blur 8
- Prompt 改成只描述主体:
clear skin tone, natural complexion, white cotton shirt, no color cast - 负向 Prompt:
red tint, pink skin, color cast, ambient color spill - Inpaint denoise: 0.4
- Inpaint area: “Only masked”
主体被重新生成时看不到背景颜色的影响。
Step 2:从一开始就用分区提示词
Automatic1111 的 Regional Prompter 扩展(或 ComfyUI 的 regional 节点):
ADDCOMM
soft daylight, photograph, 35mm film
ADDBASE(上半区:图像的 0.35)
red brick wall, weathered texture, urban background
ADDROW(下半区:图像的 0.65)
portrait of a woman, natural skin tone, white cotton shirt,
clean colors, no color cast from environment
每个区域拿到独立的注意力预算,墙的 red 没法漏进对女人的描述。
Step 3:两步生成——先主体后背景
需要完全掌控时:
- 先在中性灰 / 白背景上生成主体
- 用分割工具(rembg、Photoshop 选择主体、Affinity 智能选择)抠出主体
- 单独生成背景
- 在任意图像编辑器里合成
这彻底杜绝了串色,因为主体从来没在 latent 空间里靠近过有色背景。
更快的做法:
ComfyUI: 用 SAM (Segment Anything) 节点 + InpaintModelConditioning 换背景
后期工作流: rembg 抠主体 → 在 img2img 里以主体覆盖层生成背景 → 最后一道低 denoise 0.15 的 refiner
Step 4:refiner 只在蒙版区域跑
如果必须一次性生成:
SDXL base: 全图常规 denoise
SDXL refiner: 只在主体 mask 上跑,denoise 0.15-0.2(不能 0.3+)
背景跳过 refiner
这样 refiner 不会跨越蒙版边界把串色再带回来。
预防建议
- 人像默认用中性 / 低饱和背景,需要彩色背景时后期再加
- 高饱和背景永远规划两步走 + 分割工作流
- 把”背景上 + 主体下”的 Regional Prompter preset 存好,环境人像直接调
- 人像 Prompt 模板里默认加
clean colors, no color cast, isolated subject - 出货前 100% 缩放检查皮肤区色偏,缩略图看不出来