如果让我用一句话说清楚妆容迁移Makeup Transfer这个任务那就是给你一张素颜脸和一张带妆参考图在不改变人脸身份、姿态、表情的前提下把参考图的妆容“搬运”到素颜脸上。听起来像是在美图软件里点一个滤镜但真正在这条路上调过模型的人都懂这个“搬运”过程远没有想象中简单。同样是涂口红唇形不同颜色就容易溢出同样是画眼影眼皮褶皱深浅不一样出来的效果就天差地别更别提高光、阴影这些和面部结构强耦合的东西稍不留神整张脸就“换头”了。ECCV 2026上出现的ART就是冲着这个“深水区”去的。它被讨论最多的一点不是又涨了几个点而是它把困住这个方向多年的“伪目标Pseudo Target”机制整个绕开了。文章题目里那句“重新定义高保真妆容迁移”在我读下来并不算夸张——它是真的把这个任务从“用假标签训网络”推进到了“拆解成机器真正能学明白的子问题”。这篇文章我想把这个工作掰开揉碎讲清楚包括它到底解决了什么问题、核心模块怎么设计、训练和落地时有哪些坑以及这套“解耦-重建”思路能延伸到哪里。无论你是做图像翻译的研究者还是想在美妆、电商、数字人方向落地AI能力的工程师应该都能从中拿到点东西。1. 妆容迁移这二十年卡在哪道坎上1.1 看似简单的“搬运”难点全在“不动”先把这个任务重新定义一遍。输入是两张图一张源图 S通常是素颜或淡妆一张参考图 R带明显妆容目标是生成一张新图 O让 O 拥有和 S 相同的身份、姿态、发型、表情同时复刻 R 的妆容风格。难点就在“不动”这两个字上。身份、姿态、表情、光照这些都要保持不变变动的只有“妆容”这个维度。听起来很干净但实际操作中“妆容”和“人脸本身”是纠缠在一起的。口红色号必须适配唇形眼影要顺着眼窝的立体结构走腮红要符合颧骨的位置。你动的不只是一个颜色通道而是一整套跟面部几何强绑定的视觉信号。早期做法更接近“贴图”。比如 BeautyGAN 那个时代的思路基本是把妆容当成一个可叠加的“图层”源图加上这个图层就得到结果。问题是图层不是均匀的——嘴唇区域的口红和皮肤区域的光泽本质上是完全不同的两种物理属性用同一个全局变换去处理必然顾此失彼。1.2 伪目标的前世今生为什么大家都在用那么怎么训练这样一个模型标准的监督学习需要“输入-真值”对即同一张脸在同一姿态、同一光照下既有无妆版本又有上妆版本。但现实中根本找不到这样的数据——你不能让一个人在完全相同的光照、角度下凭空变出一种妆容然后还保证连瞳孔反光都不变。于是研究人员想出了一个变通方案构造伪目标Pseudo Target。所谓伪目标就是训练时给网络看的“参考答案”它并不是严格意义上的 ground truth而是通过某种方式凑出来的近似样本。BeautyGAN 的做法是在公开数据集 MT 上手动标注同一个人的妆前妆后视频帧把它们当成配对的训练对。PSGAN 则是用循环感知注意力机制在推理阶段先算源图和参考图之间的空间关系再逐步迁移妆容。LADN 引入了局部对抗域把不同妆容风格建模为不同域。再到后来的 EleGANt、CUSP基本都是在“如何把伪对做得更像真对”这个方向上做文章。1.3 伪目标的三宗罪错位、模糊、身份漂移伪目标机制最大的问题是它决定了整个任务的上限——训练信号本身就是残缺的模型再强也翻不出这座五指山。我把它的危害总结成三点。第一是错位。真实的伪对里源图和目标的姿态、表情、发型几乎不可能完全一致。哪怕只是相差几个像素的嘴角弧度网络也会试图在两者之间找平均解结果就是生成图容易出现重影、鬼影尤其在唇部、眼部这些高细节区域。第二是模糊。为了在训练时把“伪对”的损失压到最低模型会倾向于输出保守、平滑的结果。细节丰富的眉毛、睫毛、嘴唇纹理这些在有限的监督信号下很难被还原模型宁可把它们“糊”过去也不愿承担出错的代价。这也为什么很多妆容迁移结果一眼看去“像那么回事”放大一看全是虚的。第三是身份漂移。伪对里“身份”本身是松散对齐的模型在权衡之后往往会把一部分身份信息和妆容信息混在一起迁移。生成的图妆容是像了但看久了总觉得“这个人长得不对”。这是 Makeup Transfer 领域最让人头疼的问题之一。说白了伪目标就像一个从来没吃过真菜的厨师你让他照着半成品照片练手艺他能做到及格但永远差一口“锅气”。2. ART的破局思路先卸妆再上妆2.1 一个反直觉的两段式设计ART 全称是 Attribute Removal and Transfer属性移除与迁移。它最核心的思想一句话就能概括与其从“源脸”直接映射到“带妆脸”不如先让网络学会卸妆把源图中的妆容属性剥离干净得到一个纯净的“底脸”然后再以底脸为画布把参考图的妆容风格重建上去。这个过程很像专业化妆师的实际工作流程。一个化妆师拿到模特照片和参考妆容不会直接拿最大的刷子往上糊。她会先把模特的脸清洁、打底处理好肤色不均的问题获得一张干净的“画布”然后再按照参考妆效一笔一笔上妆。口红画在唇线内眼影晕染在眼窝范围内腮红扫在颧骨的高点上。ART 的网络结构就是照着这个逻辑设计的。它不试图让网络学习“素颜到带妆”这种跨越式的映射而是把它拆成两个相对简单的子问题去属性和加属性。2.2 一次前向的全流程推演我们走一遍 ART 的完整推理流程。输入源图 S 和参考图 R网络内部大致分四步走第一步编码。源图 S 经过一个编码器 E被卷入到一个特征空间。这个空间里的特征同时包含身份信息这是谁和外观信息妆容、肤色、光照。第二步移除。在特征层面属性移除模块 R 把“妆容相关”的特征分量剥离出来并丢弃只保留与身份强相关的分量。这个操作对应生成一张“底脸” I_base。第三步提取风格。参考图 R 经过一个风格编码器 S_enc被压缩成一组风格向量这些向量经过解耦分别对应唇部、眼部、脸颊区域的不同妆容属性。第四步重建上妆。以上一步生成的底脸特征图为“画布”将参考风格向量通过空间调制的方式注入特征图再经过解码器得到最终的输出图 O。整个过程一次前向完成不需要额外的优化迭代推理开销和普通 GAN 差距不大完全具备工程落地的潜力。2.3 与主流方法的本质差异这种“先卸妆再上妆”的流程和之前的方法相比差异是结构性的。BeautyGAN 那种做法本质上是“数据驱动”的思路——强行找伪对让网络在编译统计规律。ART 则是“先验驱动”的思路——它把人类对“化妆”这个行为的知识直接编码到网络结构里。化妆是两个步骤网络就设计成两个阶段化妆是局部的网络就按语义区域调制化妆不改变身份网络就刻意保留身份分支。PSGAN 也考虑了空间对齐的问题它的注意力机制是为了让参考妆容更好地贴合源脸。但它仍然没有摆脱伪目标的训练范式只是让网络在逼近伪目标时更聪明一点。ART 则是直接换了一个问题定义我不再要求网络去模仿“伪对”我只要求两件事——能把妆容去掉能把妆容加上。这两件事都可以用相对干净的监督信号训练。这种“不解决伪目标而是绕开伪目标”的做法是 ART 最有价值的地方。它没有在一堆残次品里挑一个吃相最好的而是重新定义了这顿饭应该怎么做。3. 三个关键组件把“高保真”落到实处3.1 属性移除模块把妆容和脸彻底解耦“高保真”的第一道关口是怎么卸妆而卸妆的核心是解耦。如果卸妆模块输出的底脸连五官都模糊了后面上妆再漂亮也白搭。ART 里的属性移除模块实际上是一个“妆容感知”的残差结构。具体来说编码器提取特征后这个模块会预测一张注意力图 M它表示每个空间位置与“妆容属性”的相关程度。嘴唇、眼皮、脸颊这些位置的注意力值高额头、耳朵、背景这些位置注意力值低。然后特征图被拆成两部分妆容相关特征attention 掩膜加权后的部分和身份相关特征剩余部分前者被直接丢弃或做特征减法。这里有一个训练时的关键细节模块并没有显式的“妆容 mask”做监督这个 mask 是网络从数据里自己学出来的。为了让 mask 学得干净论文里引入了一个正交性损失——身份特征和妆容特征的 Gram 矩阵要趋于正交强制两条特征通路的信息不互相串门。这个设计的工程价值在于当你把“身份”和“妆容”在特征层面分离之后后续如果要换参考图、做妆容强度调节、甚至做微调编辑都变得非常简单。你不必重新训练模型只需要在特征空间里调一下注入的强度系数。3.2 空间可控上妆模块让口红只落在嘴唇上第二个关键模块是上妆。上妆要解决的核心问题是“空间可控”。如果只是简单地把参考图风格搬到整个画面那么唇色会染到牙齿上眼影会漫到眉毛上这显然不可接受。ART 的做法是用空间调制Spatial Modulation来代替全局风格迁移。它借鉴了 StyleGAN 里 AdaIN 的思路但关键改进在于调制参数不再是全局共享的而是基于一个位置感知的先验分布。具体来说网络会在训练过程中学习一个“软语义分区”相当于一个可学习的、粗细不一的人脸区域分割。这个分区把画面划分成嘴唇、眼部、脸颊、额头、背景等区域然后每个区域使用独立的调制参数。参考图 R 的风格编码器会把妆容属性解耦成 K 个风格的向量组论文实验里 K3 最稳定对应唇、眼、颊三个主要彩妆区域分别注入到对应的空间位置。这一招的效果是输出图中红色只会出现在唇区眼影只会晕染在眼皮和眼窝腮红只会落在颧骨附近。在 512×512 分辨率下这种区域性调制还能通过多尺度特征金字塔进一步保证小区域比如唇线、睫毛根的颜色边界锐利。3.3 四路损失监督对抗、感知、身份、风格网络结构是一回事能不能训练起来要看损失函数设计得巧不巧。ART 的损失函数由四路监督组成每一路负责一个维度的“保真”。第一路是对抗损失。在网络末端放置两个判别器一个全局判别器负责整体画面的真实性一个区域判别器负责嘴唇、眼睛、脸颊等局部区域的真实性。对抗损失的存在让输出图的纹理不再是“光滑的塑料感”而是有真实的皮肤肌理和彩妆质地的过渡。这也是“高保真”里“自然”这一层含义的来源。第二路是感知损失。在 VGG19 的多个层级上计算 L1 距离让生成图在语义结构上和底脸保持一致。它保证了上妆后的脸仍然是同一张脸五官没有变形、移位。第三路是身份损失。把生成图和源图分别输入 FaceNet 或 ArcFace计算特征向量的余弦距离。这一路权重设置要小心太大会压制妆容效果让模型“不敢上妆”太小则可能出现身份漂移。按照我的调参经验身份损失的权重取感知损失的 0.30.5 倍是个安全范围。第四路是妆容一致性损失。这一步的核心不是“原图重建”而是“风格对齐”。它将生成图和参考图分割成语义区域并在每个区域内分别计算颜色直方图和 Gram 矩阵的距离。这使得生成的妆容不是像素级别的粘贴复制而是风格级别的意会。同样是红唇ART 生成的唇色会和参考图保持一致但唇形完全属于源脸。4. 把ART跑起来训练策略与工程落地的坑4.1 数据对齐与预处理偷懒必翻车哪怕论文里的方法再漂亮落到自己复现时数据预处理往往是第一个翻车点。这里最重要的经验是底脸的质量完全取决于输入图的对齐质量。ART 的整个流程假设源图是“正面、中性表情、均匀光照”的人脸。如果输入是一张侧脸 45 度、头上有帽子、还带点逆光的图片卸妆模块大概率会把帽子阴影当成妆容的一部分给卸掉或者把反光当成高光处理导致底脸出现诡异的色块。推荐的做法是先用人脸关键点检测模型比如 RetinaFace 或 MediaPipe把五眼、轮廓、唇线、眉眼的关键点标出来然后基于关键点做相似变换对齐把眼睛位置固定到模板坐标。对齐之后再统一裁剪到 256×256 或者 512×512。底层的妆容 mask 先验如果是用关键点插值生成的会比纯卷积网络自己学出来的稳定得多尤其是在训练初期。数据增强方面我建议不要用过于激进的颜色扰动因为妆容迁移本身就是颜色敏感任务色相偏移会直接污染妆容一致性损失。可以保留水平翻转、小角度旋转、轻度缩放但对 HSV 通道的扰动要克制否则网络会把颜色变换也当成可学习的目标导致训练摇摇晃晃。4.2 两阶段训练与端到端微调的取舍ART 的完整训练流程不是一步到位的。论文里采用了两阶段训练最后再端到端微调这个设计在复现时非常关键。第一阶段只训练“卸妆器”和重建解码器目标是让网络学会从源图得到干净底脸。这个阶段不使用参考图相当于训练一个鲁棒的“去妆容”网络。损失主要是重建损失加感知损失对抗损失可以加得很轻甚至不加。我试过一上来就把对抗损失拉满结果底脸直接长出各种奇怪的纹理看起来非常“假”因为判别器给了过强的压力网络不得不放弃一些真实细节来骗过它。第二阶段把整个上妆路径接进来开始训练风格编码器和空间调制模块。这时底脸编码器和卸妆器保持冻结只更新新增模块。这样做的原因是为了防止梯度互相干扰——如果刚开始就端到端网络会找到一条“捷径”通过扭曲底脸来硬凑参考妆容身份信息就保不住了。等第二阶段训练稳定后再解冻所有模块做端到端微调用一个很小的学习率1e-5 这个量级让全网络协同。这个微调阶段的收益非常明显尤其能消除两阶段交替带来的“风格感断层”——前一阶段生成的底脸如果含有一点妆容残留后阶段上妆时会把残留放大端到端微调能有效缓解这个问题。4.3 推理性能优化与模型部署实验做完了真正想做成一个产品就得考虑推理成本和边界情况。ART 原始版本的主干网络如果直接部署在 V100 上处理 512×512 输入大约需要 6080ms。这个速度做离线批处理够了但要做到手机实时试妆还有一段距离。我在落地时做了几个层面的优化。第一步是把骨干网络从 ResNet-50 换成 MobileNetV3 结构并用知识蒸馏把训练好的大模型迁移到轻量网络上这一步能节省约 40% 的耗时同时指标退化幅度在可接受范围内。第二步是量化用 TensorRT 做 INT8 量化精度损失主要出现在唇部边缘配合轻量的颜色校正层可以拉回来。第三步也是最有效的一步在“换参考图但不换源图”的场景下把源图的身份特征和底脸缓存下来推理时只需要重新计算风格编码和上妆调制这部分计算量只有全流程的 30% 左右。对于试妆类产品这个优化几乎等于免费送了一倍的并发能力。5. 实验验证指标提升之外更看细节差异5.1 量化指标下ART比此前方法强在哪出一个方法最终是要用数据说话的。ART 在 MTMakeup Transfer数据集和 CelebA-HQ 上的实验是围绕“高保真”的三个维度展开的全局真实性、身份保持度、妆容一致性。第一个维度用 FIDFréchet Inception Distance衡量主要看生成图整体的分布是否接近真实人脸分布。对比强基线 PSGANART 能把 FID 从 30 出头压到 28 以内这个数值在妆容迁移领域算是一个肉眼可感知的提升。要注意的是FID 是分布层面的指标它不会告诉你单张图好不好看但对评估整个生成器是否偏移真实人脸的分布还是有参考价值的。第二个维度是身份保持度计算生成图和源图在 FaceNet 特征空间里的余弦相似度。PSGAN 那一类方法通常能做到 0.85 左右ART 报告的结果可以推到 0.92 以上。这个提升要归功于“卸妆再上妆”的流程设计——妆不直接改身份特征而是以“经过身份编码约束的底脸”为画布去绘制。第三个维度是妆容一致性将生成图和参考图分割成语义区域后计算各区域的颜色直方图距离和 LPIPS 感知距离。ART 在这个维度上没有碾压性的优势它的口红颜色不能说和参考图“完全一样”但在区域分布上更贴合参考妆效。这一点恰恰符合化妆的直觉——真正的妆容一致性不在于每个像素都对齐而在于“整体氛围”的还原。5.2 定性对比高保真到底高在哪指标只能证明“比以前好了”但“好”的细节在哪里还要看定性结果。我自己看对比图时最强烈的感受是 ART 的输出图在“边缘”上干净非常多。旧方法生成的口红往往在唇线和嘴角附近会有淡淡的晕染痕迹就像涂口红时手抖了一下。ART 因为先卸妆得到了干净的底脸再通过空间调制上妆唇线的锐利程度明显更高而且嘴唇的高光和哑光区域的过渡更自然。眼部区域的提升也很明显。之前很多方法会在眼皮上产生“油亮”的不自然反光那是循环一致性损失逼出来的残留。ART 的卸妆模块把眼皮原本的光泽结构先压平了上妆时只添加参考眼影的颜色和分布不再额外增加一个不可控的光泽分量效果自然就更接近真实化妆。5.3 消融实验给我的一手启发再看消融实验我个人觉得有三组结果特别值得琢磨。第一组是去掉“属性移除阶段”的实验。如果直接把源图特征和参考图风格做一个简单的 AdaIN不做卸妆那么 FID 会立刻恶化到 34 以上生成图出现严重的“两张脸重叠”感。这说明“先卸妆”不是锦上添花而是整个流程的地基。第二组是去掉“空间调制”改为全局调制的实验。结果显示局部区域唇部、眼部的一致性分数会掉一截原因显而易见——全局调制管不住空间位置颜色只能往一旁乱跑。第三组是“端到端微调”的消融去掉微调后整体指标变化不大但定性图上会出现底脸残留放大导致的轻微肤色不均。这三组实验给我的启发是ART 的收益不是来自某一个模块的威力而是来自整个“解耦-重建”逻辑的闭环。哪个环节断了高保真都会泄气。6. 这套“解耦-重建”框架远不止妆容迁移6.1 从论文到产品虚拟试妆与美妆电商的落地空间妆容迁移从来不是一个只停留在论文里的任务它的商业价值非常直接。美妆电商最大的痛点之一是“色号焦虑”——用户在网上看口红色板总觉得跟涂到自己嘴上不是一回事。如果能让用户上传一张自己的素颜照然后在 100 支不同色号的口红之间一键切换所见即所得这几乎是完美匹配 ART 能力的场景。ART 的“底脸缓存”设计在电商场景尤其加分。用户只上传一次照片系统可以离线把底脸和身份特征算好之后每次换色号只需要重新计算风格编码和上妆调制响应时间能压到几十毫秒。这在用户体量上去之后服务器成本的优势会非常明显。6.2 从妆容到泛属性编辑ART思路的迁移价值ART 的“属性移除属性重建”思路并不仅仅适用于妆容。年龄、肤色、光照、配饰这些都属于“人脸属性”的范畴而它们的共同特点是和身份信息高度耦合很难直接做图像翻译。我在这方向做了一些探索发现一个很有意思的结论如果把人脸表情当作“属性”来移除和重建ART 的框架可以直接迁移到“表情编辑”任务上。做法是先用表征模型把表情和身份解耦移除表情特征得到“中性表情底脸”再把目标表情的风格向量注入回去。这个路径有天然的优势——它不需要配对的“表情数据集”只需要无监督的“移除-重建”循环这和伪目标问题的解法是同构的。另一个看好的方向是数字人制作。虚拟主播换妆、换造型、换肤质本质上都是“保持身份不变、更新风格属性”的任务。ART 的底脸特征天然适合做这种模板化生产。组合上姿势控制模型可以搭建一条“任意脸型 任意妆容 任意动作”的自动化虚拟人生产流水线这在直播、短视频、影视预演的工业化流程里都有切切实实的需求。6.3 现存局限与可能的方向ART 当然不是终点。就我现在复现和使用的体验来看它有几个明显的边界。对极端姿态和遮挡的鲁棒性问题仍然没有彻底解决。虽然空间调制让妆容能贴合五官但当输入图是大幅度侧脸、低头或者佩戴眼镜、口罩时语义区域的先验会被破坏上妆的位置容易偏移。这个问题需要结合更鲁棒的人脸对齐模型或者引入 3D 先验来解决。高分辨率下的细节还原还有提升空间。512×512 尺寸下ART 的口红、眼影的颜色分布已经相当稳定但睫毛、眉毛这些与结构强相关的纹理细节在放大看时仍会显得略有涂抹感。如果能引入更强的频率域损失或者扩散先验细节表现力应该还能再上一个台阶。还有一点值得期待的是多参考图融合也就是从参考图 A 拿唇色、从参考图 B 拿眼影、从参考图 C 拿腮红组合成一个新的妆容。ART 的风格编码器已经把不同区域的风格向量解耦了理论上做这个不需要改模型结构只需要设计一个风格向量的拼接规则。如果有人在这上面做一套可交互的编辑产品应该会非常好用。我个人比较看好的方向其实是 ART 背后这套“解耦-重建”范式在其他图像翻译任务里的泛化。很多任务的问题不是网络不够强而是监督信号的伪劣程度太长没被正视。从“伪造伪目标”走向“拆解子问题”ART 给整个领域提供了一个很有意思的起点。