ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Blend If + AI语义分割:素颜照秒变高定妆容的修图流水线

Blend If + AI语义分割:素颜照秒变高定妆容的修图流水线

拿到一张光线还凑合但完全素颜的照片,能不能在一分钟内做出秀场后台那种高定妆容感?我试了很多偏方之后发现,最稳的答案其实是两个听着有年代感的东西:修图软件里的 Blend If 混合选项,加上一个能识别五官区域的 AI 模型。Blend If 负责控制妆容的落点和过渡,AI 负责找到脸和五官,两者拼起来,就是一条能复用的数字化妆流水线。这篇文章把整个思路、参数和踩过的坑都整理出来,给经常做人像精修、电商模特图、自媒体配图的朋友参考。

很多新手一提“数字化妆”,第一反应是用画笔在屏幕上涂抹高光和阴影,结果不是涂出灰蒙蒙的一块,就是颜色浮在皮肤表面。我自己刚开始也是这样,一张图修一个小时,最后还被说“妆感太假,像贴纸”。后来我换了个思路:化妆的本质不是画颜色,而是控制颜色出现的区域和范围。Blend If 解决“区域和范围”,AI 解决“五官在哪”,组合起来,素颜照变高定妆才能做到又快又自然。

1. 数字化妆术的整体思路:为什么是 Blend If + AI

1.1 传统妆容修图的痛点在哪

传统路径说白了就两种:一种是用套索或魔棒手动圈出脸,然后调色;另一种是直接用液化、磨皮滤镜,把皮肤抹匀。这两种做法的问题都很典型。

手动圈选最大的麻烦是边缘。脸部没有一条清晰的硬边,鬓角碎发、睫毛根、鼻翼暗部,稍微一松弛,选区就把背景带进来了。即便你用带羽化的套索,也很难让粉底和原皮肤自然衔接,因为真实皮肤的高光、阴影、红晕是连续渐变的,不是一条平滑曲线能圈出来的。我最早修一张侧脸,光调颧骨高光就花了四十分钟,最后还是靠蒙版一点一点擦,边缘依旧透着奇怪的灰边。

磨皮滤镜则是另一个极端。它会帮你把皮肤纹理全部磨掉,眉毛、睫毛、唇纹也跟着糊掉。就算你事后把眼睛部位用蒙版擦回来,整体质感也已经不对了。照片里那种“伪透亮”特别明显,放到手机上一眼就能看出来是过度修图。

还有一个很隐蔽的痛点:人的皮肤不是一个均匀色块。额头偏黄、颧骨泛红、嘴角发暗,如果只靠一个整体饱和度和亮度调整,很容易按下葫芦浮起瓢。高定妆容讲究的是“整体色调干净、局部光影立体”,所以必须同时处理颜色不均和明暗结构,传统手动方法很难兼顾。

1.2 Blend If 与 AI 的分工逻辑

后来我把流程拆开,发现化妆修图其实只需要解决两个问题:知道该在哪里画,以及知道怎么把它融进去。这两个问题恰好对应两种工具。

AI 在人脸语义分割上的表现已经很成熟。给它一张正脸或侧脸照片,它能快速输出皮肤、左眼、右眼、眉毛、鼻子、嘴唇、头发、背景的分区结果。这个结果就是一张“位置地图”,告诉我眉毛在哪、嘴唇在哪、眼窝的大致范围在哪。它的价值不是替我做创意,而是把原本需要手工描摹的五官轮廓在几秒内变成蒙版。

Blend If 则负责“怎么融”。它是修图软件图层样式里的一个混合选项,简单说,可以让当前调整图层只对画面中特定亮度范围或特定颜色通道生效。比如我只想让粉底均匀脸部的高光区域,不让眉毛和头发乱入,就直接在 Blend If 里把生效范围限制在“亮度在某一区间”的像素。它和 AI 蒙版正好互补:AI 管空间位置,Blend If 管亮度和颜色分布。

我第一次用这个组合的感觉就像突然开了窍。以前画眼影,我要不断切换画笔并擦除越界的地方;现在只要把 AI 生成的眼睑蒙版选出来,再配合 Blend If 限高光,眼影颜色只会落在眼窝且有渐变的地方,怎么涂都不会糊成一团。这套逻辑对所有化妆步骤都通用,所以从底妆、阴影到唇色,都能用同一套流程去推,效率自然就上来了。

2. 修图前的准备工作:素材与参数基础

2.1 工具版本与 Blend If 面板位置

先说工具。Blend If 这个选项在修图软件的图层样式面板里,和“斜面和浮雕”“投影”这些效果放在一起。图层样式打开后,最下方就是“混合颜色带”,点开可以选择灰色、红色、绿色、蓝色通道。不同版本界面略有差异,但近几代大版本的入口大同小异:先在图层面板双击图层缩略图旁边的小空白区域,或者右键选择“混合选项”,就能进到这个面板。

很多人不知道的是,这个功能不仅在普通图层上能用,在调整图层上同样有效。对调整图层来说,混合颜色带可以限制调整效果所影响的像素明暗范围。这意味着你新建一个“曲线”或“色相/饱和度”调整图层,然后打开它的图层样式,把“本图层”的高光滑块向左拖,调整效果立刻只对画面中的高光部分发生作用。这个是我后面所有操作的基础。

即便你用的是相对旧一点的版本,只要支持图层样式和调整图层,也能完成这套数字化妆。不需要额外插件。AI 部分我建议使用能本地运行的人脸语义分割模型,避免图片上传外部带来的隐私风险。模型格式通常是 ONNX 或类似格式,可以很方便地通过一些小工具转成 PNG 灰度掩码,再导入修图软件。整个流程里,真正必须依赖网络和外部算力的环节很少,一台普通电脑完全跑得动。

2.2 素颜照的拍摄标准:为什么光线比像素更重要

很多同学觉得“素颜照直接随手拍一张就能修”,其实不是。数字化妆不是无中生有,它是在原有皮肤和光影结构上叠加一层颜色和质感。如果原图光线混乱,一只眼睛在亮处一只在暗处,AI 识别形状没问题,但 Blend If 的亮度筛选就会被带偏,后期怎么拉都会显得不自然。

从实操角度,我建议原图至少满足三个条件:

  1. 面部光线均匀。最理想是柔光箱加反光板,或者窗户边的散射光。强烈的顶光和底部补光会导致鼻影和法令纹过重,后期虽然能压,但会损失皮肤质感。
  2. 尽量用 RAW 格式或高解析度原图。数字化妆需要后期对皮肤做局部调整,JPG 压缩太大容易出现色块和噪点,AI 识别的边缘也会抖。我一般控制在 2000px 以上,保证放大到眼睛区域时还有足够的像素给蒙版羽化。
  3. 五官不要被大面积遮挡。头发扫过眼睛、手托下巴、口罩遮脸,AI 都能识别,但边缘会出现不可靠的“猜测”。修图时可以缝补,但会比较耗时。如果你想要真正的一分钟流程,正面或侧 45 度、五官完整是最佳输入。

还有一个容易被忽视的点:拍摄时的肤色色温。我更喜欢让原图稍微偏中性一点,不要过度黄。因为数字化妆里很多混合模式是基于颜色计算的,原图色偏越大,后续要补偿的数值就越多,妆容颜色越容易失真。

3. 理解 Blend If:被忽略的混合控制开关

3.1 混合颜色带的工作机制

Blend If 相当于一个“像素级阀门”。它根据画面里每个像素的亮度或通道值,决定当前图层的效果是否参与到合成结果中。举个例子,你新建了一个纯黑色填充图层,正常情况下整张图都会被盖住。如果打开混合颜色带,把“本图层”栏中的白色滑块向左拖,黑色填充图层的效果就会从高光区域开始“消失”,只保留暗部区域的黑。

这里面的关键是滑块还可以拆分。按住 Alt 键拖动滑块,它会被分成左右两半,中间出现一段过渡区。过渡区意味着像素不是生硬地保留或消失,而是按比例逐步渐隐。这种渐隐正是妆容自然过渡的底层保障。你可以把它理解成水龙头:不只是开关,而是可以微调流量大小。

对修图而言,我最常用的设置是:选择“灰色”通道,把“本图层”滑块或“下一图层”滑块进行拆分。比如我想让某个调整图层作用在中间调以上,避免影响最暗的头发区域,就可以把本图层左侧阴影滑块向右拉到 40,然后按住 Alt 再往右拖出 20 的过渡距离。这样画面亮度 40 以下的像素完全不参与,40 到 60 之间的像素逐渐参与,60 以上完全参与。

3.2 用 Blend If 做肤色的“软选区”

AI 蒙版能划出皮肤区域,但皮肤区域内的亮度差异仍然很大:额头和颧骨亮,鼻翼沟和下颌线暗。如果我直接对整个皮肤蒙版调整,亮部可能过曝,暗部可能显得很脏。Blend If 的作用就是在这个皮肤蒙版内部再做一个亮度分级。

实际操作中,我会先把 AI 生成的“皮肤”掩码载入为图层蒙版,然后新建“曲线”调整图层并右键打开混合选项。接着把“本图层”的阴影滑块向右拖动到大约 30,按住 Alt 再拆分出 20 的过渡,这样曲线调整只作用于皮肤区域内相对亮的部分,暗部完全不受影响。这相当于只给脸部高光打了一层很薄的透明粉底,阴影和立体感被完整保留。

反过来,如果想给法令纹和鼻影补一点反光,就把滑块设置到只作用于中低亮度,过渡区拉长一点,效果会更柔和。Blend If 还可以选择红、绿、蓝通道。比如脸颊泛红,我新建一个“色相/饱和度”调整图层,单独降低红色饱和度,然后在混合颜色带里选择“红色”通道,把高光滑块左移,这样只有原本偏红的区域会被修正,不会连带把嘴唇色泽也改淡。

这个思路特别适合处理肤色不均。皮肤问题很少是“整片都有”,多数是某些区域局部过红、过黄、过暗,而亮度筛选加通道筛选的组合,能做到“只让有问题的像素受到调整”,其他区域完全隔离。相比之下,传统蒙版只能解决空间范围,做不到这种基于图像内容的精细控制。

4. AI 辅助定位:把五官位置变成可编辑的蒙版

4.1 人脸语义分割模型能输出什么

AI 数字化妆里最实用的模型是“人脸语义分割”。你把一张人像图输入进去,模型会逐像素判断每个点属于哪个部位:皮肤、眉毛、眼睛、鼻子、嘴唇、牙齿、头发、背景,有时候还能分出眼镜、衣服。输出通常是一张叠加了彩色标签的可视化图,以及每个类别的独立灰度掩码。

灰度掩码就是黑白的“位置地图”。标签属于某个部位的地方显示为白色,其他地方为黑色。这张灰度图可以直接被修图软件识别为蒙版。我习惯把需要用的部位分别导出:skin、left_eye、right_eye、left_eyebrow、right_eyebrow、nose、mouth、upper_lip、lower_lip,按名字存到同一个文件夹,修图时按需拖入。

有些同学会好奇,直接用修图软件自带的“颜色范围”不也能选出皮肤吗?能,但效果差异很大。颜色范围在肤色背景纯度高的照片上勉强能用,一旦画面里出现和肤色接近的墙壁、头发反光、衣服领口,就容易把背景也选进来。语义分割模型是真的一点点学习过“什么是脸”,所以即便背景有同色系物体,它也能把范围锁定在脸部皮肤区域。它还能区分嘴唇和皮肤,这是颜色范围做不到的。

4.2 如何把 AI 掩码导入为选区与蒙版

我现在的标准做法分三步:

  1. 把模型输出的掩码图保存为和原图同尺寸的灰度 PNG。关键点:尺寸必须严格一致,不然导入后期会错位。
  2. 在修图软件中打开原图,再打开对应的掩码图,“全选”复制,然后回到原图所在文档,在通道面板里新建 Alpha 通道并粘贴。粘贴完成后,按住 Ctrl 或 Cmd 键点击这个通道缩略图,就能把它作为选区载入。
  3. 载入选区后,可以给调整图层添加蒙版,系统会自动把选区转成图层蒙版。如果边缘有锯齿,就在蒙版上执行“选择并遮住”或“调整边缘”,收缩 1 像素并羽化 0.5 到 1 像素,让边界更干净。

这样得到的蒙版是纯空间蒙版,解决了“在哪里画”的问题。用 AI 蒙版配合前面说的 Blend If 亮度筛选,你会发现两个机制各管一层:AI 管“位置对不对”,Blend If 管“边缘融不融”。所以后面调妆时,即使蒙版整体边缘偏硬,只要 Blend If 有足够大的过渡范围,最终效果还是柔和的。

需要注意一点:AI 掩码有时会包含牙齿区域,嘴唇闭合状态下问题不大,张嘴笑时就容易把牙齿也当成嘴唇。我的习惯是导入嘴唇掩码后,立刻和原图叠在一张对比看一遍,如果牙齿位置发白,就在蒙版里用黑色画笔把牙齿部分擦掉。这个小步骤花不了几秒钟,但能避免很多返工。

5. 实操过程:1分钟素颜照改高定妆的完整流水线

5.1 一键生成五官区域蒙版

为了一次跑通整套流程,我建议先把 AI 推理和导入蒙版这些重复操作固定下来。AI 推理这部分不太方便录成修图软件的动作,但可以用一个小脚本把图片统一处理,输出全部分区掩码。每次拿到新照片,我只需运行脚本,然后回到修图软件,把生成的掩码拖入并自动对齐。

蒙版准备好以后,我建议在每个部位蒙版上方建一个组。比如建一个“脸部皮肤”组,组蒙版直接使用 skin 掩码;建一个“眼部”组,蒙版用左眼和右眼合并;再建一个“唇部”组,蒙版用嘴唇掩码。操作时,我只需要在组内新建调整图层,不必每次重新选范围。

如果你经常处理固定机位、固定光源的同系列照片,这一整套蒙版导入和图层创建流程可以录制成动作,一键执行。之后每一张新图,只需要替换原图并点击动作,基础分区和调整层就会自动就位。这个动作的录制顺序要小心:先导入掩码、创建组、再加调整图层,每层命名固定,这样后面批量修图的时候不会乱。

5.2 打底妆:肤色统一与光影重建

高定妆的第一步永远是底妆,而不是眼影和口红。数字打底我的做法是分两层:先均匀肤色,再建立光影结构。

均匀肤色时,我在脸部皮肤组内新建一个“纯色”填充图层,颜色选一个接近成图预期肤色的中间参考色,比较常用的是 R 235、G 210、B 190,这是一个不冷不暖的亮肤色。把混合模式改成“颜色”,不透明度直接先拉到 20% 到 30%。这一步可以迅速中和脸上的泛红、蜡黄和局部色斑,但不会抹掉皮肤纹理。因为启用了脸部皮肤组蒙版,头发、眉毛、背景都不会受到影响。

然后在这个纯色图层上方新建“曲线”调整图层,把整体提亮一点点,再在RGB通道的暗部端做一个轻微的抬升,让阴影不那么重。要注意的是,这个曲线层的生效范围不是整个皮肤,而是通过图层的混合选项里的 Blend If 限制在中高亮度区域,不给法令纹和眼袋加重阴影。具体设置:选择灰色通道,“本图层”左侧滑块拉到 45,拆分过渡 30。这样暗部会被柔和地保留,不会一片死黑。

光影结构是最后一道工序。我在肤色的上方新建一个中性灰图层,混合模式设为“柔光”,然后把这张图调整到灰色蒙版状态。高光刷白,阴影刷黑。我用不带羽化的低流量画笔在颧骨、眉骨、鼻梁刷一点白,在颧骨下方和下颌线刷一点黑。因为中性灰图层本身有蒙版,而且我刻意把不透明度控制在 10% 以下,所以这些刷子笔触会非常含蓄地叠加在皮肤上,妆容立刻有了“骨骼感”。

5.3 眼妆、唇色与眉毛的数字画法

底妆打完之后,五官上色就有把握了。我的顺序是先嘴唇,再眉毛,最后眼影,因为嘴唇颜色最深,最容易观察颜色混合是否自然。

唇色部分,我在唇部组内新建一个“纯色”填充图层,选一个带一点棕调的红色,比如 R 190、G 70、B 60。混合模式选择“正片叠底”,不透明度 55%,这样嘴唇原有的质感和纹理不会被完全盖住。然后在唇峰和嘴角附近用曲线调整层提亮一点,增加立体感。如果不满意唇形轮廓,可以顺手在组蒙版上用黑色画笔压一压边缘,嘴型立刻收窄。

眉毛方面,我会在眉毛组内新建“纯色”填充图层,选深棕,混合模式“柔光”,不透明度 45% 到 60%。柔光模式会在保留眉毛丝状细节的同时加深颜色,看起来像是天生的眉粉效果。如果眉毛有断层,再用小直径画笔在断点处画几笔,同样用柔光模式,颜色会嵌进原眉毛纹理里。

眼妆是用到 Blend If 最明显的地方。新建空白图层,选一支大一点的柔边画笔,颜色选暖棕色,不透明度 8%,沿着眼窝凹线画一条。然后把这个图层的混合模式改成“正片叠底”,不透明度 15%。打开混合选项,把“本图层”的高光滑块左移一点,让眼影效果只在眼窝的高光与中间调过渡区域浮现,不会染到眉骨亮部。最后用眼部组蒙版把眼影限制在上眼皮范围内,一片非常自然的眼窝阴影就出来了。

5.4 质感统一:让妆感像天生皮肤一部分

颜色和光影都到位后,最后一步是质感统一。很多效果图看着很“假”,是因为皮肤纹理和妆容颜色之间完全没有融合感,像是一张贴在皮肤上的有色玻璃纸。

我通常用“表面模糊”或“高低频”处理皮肤,但不会把整个脸都糊一遍。先复制一个背景图层,执行一次轻微的表面模糊,然后在图层面板上按住 Alt 键添加图层蒙版,让模糊效果整层隐藏,再把脸部区域用白色画笔擦出来。擦的时候把流量控制在 15% 左右,重点擦额头、脸颊和下巴,避开鼻翼两侧和眼眶骨骼边缘。这样皮肤既光滑,又保留了该有的结构感。

接下来用“滤镜 - 锐化”对眼睛、眉毛和唇边缘做一次小半径锐化。如果想让妆容更有高级感,可以在最后叠加一个非常淡的纹理层,比如在肤色组上方新建图层填充纯灰,混合模式“叠加”,再添加“添加杂色”滤镜,数量设成 3 左右。这个颗粒会让后加的妆面和原片皮肤更统一,就像真实交付的成片一样自然。

眼影和口红画完以后,还可以用 Blend If 再做一次整体校准:选中所有妆容调整图层,右键打开混合选项,把“下一图层”的阴影滑块向右拖一点点,让原本发暗的区域被下方图层的亮度改变一些。这个操作能避免在过暗的原图阴影上浮出脏色,是所有化妆品类图层统一使用的防翻车底牌。

6. 常见问题与排查技巧实录

6.1 妆感太重,像贴了一张纸

出现这种情况,最常见的原因是填充图层的不透明度太高,或者混合模式用得太刚。比如唇色用了“正常”模式而不是“正片叠底”,颜色就会像盖子一样扣在皮肤上。解决方法是先把所有化妆相关图层的不透明度降到 50% 以下,再逐个检查混合模式。“柔光”“叠加”“正片叠底”这三种模式在妆容上最常用,它们会依照底图亮度产生不同的融合效果。

另一个原因是 Blend If 的过渡范围太短。滑块直接拉到目标位置不拆分,高光到阴影之间会出现一条肉眼可见的分界。这时按住 Alt 把滑块拆开,把过渡距离加到 20 到 40 之间,生硬感立刻会消失。我一般的原则是:过渡区域宁大勿小,尤其在高光阴影交界处,过渡太窄就是“贴纸感”的主要来源。

还有一个隐形因素:你在刷高光/阴影时画笔流量偏高。想避免“假面”,中性灰图层的画笔流量最好控制在 5% 到 10% 之间,笔刷的硬度调到 0%。化妆不是刻字,一层层叠加出来的过渡才是自然的。

6.2 AI 蒙版边缘出现白色杂边或发丝断裂

人像边缘的头发和皮肤缝隙是 AI 蒙版的重灾区。头发丝在语义分割里经常被误判成背景,导致蒙版边缘出现锯齿甚至空洞,妆容调整时会露出原肤色,非常碍眼。

解决思路分两步。第一步,对 AI 蒙版做修复:载入蒙版后,使用“选择并遮住”功能,把边缘收缩 1 像素,再羽化 0.5 像素。这个操作能让蒙版边缘往皮肤内部缩一点,避开发丝缝隙。第二步,利用 Blend If 的“下一图层”滑块进一步保护发丝。打开调整图层的混合选项,把“下一图层”的阴影滑块向右拖到 50 左右,同时拆分出 30 的过渡,这样暗部发丝会优先从效果中剥离,不会和旁边的皮肤混在一起。

如果发丝断得很厉害,我一般会手动补一下发丝附近的皮肤蒙版,用高硬度小画笔沿发丝方向一根根擦,不要求精确,只要保证皮肤边缘连续即可。补完之后会发现,只要边缘连续,后面 Blend If 再一过渡,几乎看不出拼接痕迹。

6.3 AI 识别错误导致五官错位

AI 识别出错通常是四个原因:图片分辨率太低、脸部旋转角度太大、表情夸张导致嘴部变形、或者脸上有口罩、墨镜之类遮挡物。分辨率太低时,模型输出的掩码边缘会非常粗糙;遮挡物则会让它把口罩边缘错认成下巴。

遇到识别错位,我的第一个动作不是手动重修蒙版,而是检查原图有没有经过缩减或裁剪。如果脸部在画面里占比很小,先把脸裁剪出来放大,再重新跑一次 AI 推理,识别准确率会大幅提升。其次是检查照片方向信息,手机竖拍或横拍有时会有旋转角度残留,模型输入时如果自动摆正,坐标和原图就容易错位。

如果还是错位,那就手动修正。把 AI 生成的掩码当作起点,而不是终点,用套索和羽化手动修正几个关键区域。重点检查眼角、嘴角和鼻翼这三个位置,这三个点对了,整体妆容投影就不会歪。修好的蒙版保存为模板,后面同场景照片可以直接复用。

6.4 不同肤色和光线下的参数调整参考

数字化妆没有一套万能参数,但有几个可以快速调整的基准。下面是我根据不同肤色和光线环境总结的起点,实际使用还要以目测效果为准:

环境 / 肤色粉底参考色粉底混合模式粉底不透明度Blend If 过渡范围
冷白光、白皙肤色R 245 G 225 B 210颜色15%25
暖黄光、自然肤色R 235 G 210 B 190颜色20%30
暖黄光、较深肤色R 200 G 160 B 130颜色25%30
逆光、偏暗肤色R 210 G 170 B 145柔光30%40
室内顶光、中性肤色R 230 G 200 B 180颜色20%35

需要说明的是,混合模式一栏,偏暗的环境我更喜欢用“柔光”,因为它会让参考色和底图互相作用,提亮暗部的同时保留层次;其他环境用“颜色”模式则更干净,不易把粉底色直接铺到脸上。

眼影和唇色参数同理。眼影多用暖棕加柔光,不透明度 15% 到 25%;唇色则根据服装和整体色调选择红调或棕调,正片叠底,不透明度 45% 到 60%。如果发现颜色过艳,先把该图层的不透明度减半,再看 Blend If 过渡范围是否需要拉大。不要一上来就狂加颜色,数字化妆最忌的是“想一步到位”,一点点收敛才更容易控制。

这套流程我用了大半年,最大的感受是:Blend If 真是一个被严重低估的功能,而 AI 只是恰好在合适的时间把人脸识别这件事做到了九分熟。每次修图我最先考虑的已经不是“选得准不准”,而是“亮度过渡够不够自然”。最后再分享一个小技巧:正式调妆前,先原图复制一层并稍微压暗,用眼睛扫一遍额头、颧骨、下颌线这三个区域的光影是不是连贯。只要这三个地方的结构关系对了,后面的颜色随便画都不至于翻车。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进