分割遮罩到底是什么
输出是一张和输入同尺寸的图,每个像素上的值表示这个像素属于哪个区域。实际会用到三种形态:
- 二值遮罩。 一个区域和「其他所有」。抠背景和带遮罩的编辑吃的就是这种。
- Alpha 蒙版。 取值是 0 到 1 之间的小数,一根头发可以是 40% 的主体。凡是边缘发虚或半透明的东西都需要它。
- 类别图 / 实例图。 每个像素都带标签,于是你可以单独指定天空、地面,或者第二个人。
二值遮罩和 alpha 蒙版之间的差别,是抠图质量最大的单一变量,也正是头发、毛发、烟、玻璃、运动模糊被公认为难例的原因。
分割在生成管线里的位置
很多看起来是「一步」的编辑功能,其实都是两步:先分割,再生成。
- 抠背景 = 分割 + 一个透明通道,整个过程没有任何内容被生成。
- 物体移除 = 分割找到物体、遮罩外扩给模型留余量、再用局部重绘补出它背后的东西。
- 定向编辑(换外套颜色、给人脸补光、换天)靠遮罩把其余部分保护起来,不让模型碰。
- 合成和按深度插入图层,都必须先知道区域归属才谈得上分层。
因为「生成」这一步的上限就是它收到的遮罩,所以大多数看起来是模型出错的编辑,实际上是遮罩不行。先把遮罩放到原始分辨率看一遍,再去怀疑模型。
两个真正改变结果的遮罩处理
送进局部重绘前先外扩。 严格停在物体轮廓上的遮罩,会把物体自身的颜色和贴边阴影留在受保护的一侧,模型只能绕着它画,结果是一圈鬼影轮廓。先把遮罩往外扩几像素,让边界本身也被重建。
羽化是给合成用的,不是给填充用的。 把抠像叠到新背景上时,柔和边缘很有用。但当遮罩要交给局部重绘模型时,柔边意味着一批「条件只给了一半」的像素,出来就是糊的过渡带。
用提示词做分割,以及它的边界
现在的模型允许你点一下或者说一句话来指定区域,不必手涂。对孤立、名字清楚的物体又快又准。它失效的地方也很固定:同类物体互相重叠、反射和投影(车的倒影算不算车)、透明物体、电线栏杆这类细结构,以及你那句话本身对范围说得不清楚的时候。如果文字提示总是选错范围,换成点选或框选通常比反复改措辞更快。