研究方法
2.1 整体框架概述
PixelSmile是一个基于扩散模型的细粒度面部表情编辑框架,采用全对称联合训练范式,结合文本潜在插值机制实现连续可控的表情编辑。
2.1.1 框架架构
flowchart TB
subgraph 输入
I1[源图像]
I2[中性提示]
I3[目标表情提示]
I4[强度系数α]
end
subgraph 文本编码
T1[文本编码器<br/>CLIP/MMDiT]
T2[中性嵌入 e_neu]
T3[目标嵌入 e_tgt]
T4[残差方向 Δe]
T5[条件嵌入<br/>e_cond = e_neu + α·Δe]
end
subgraph 生成网络
G1[预训练MMDiT]
G2[LoRA适配器]
G3[流匹配去噪]
end
subgraph 输出
O1[编辑后图像]
end
I2 --> T1
I3 --> T1
T1 --> T2
T1 --> T3
T2 --> T4
T3 --> T4
T4 --> T5
I4 --> T5
I1 --> G1
T5 --> G1
G1 --> G2
G2 --> G3
G3 --> O1
2.1.2 核心组件
PixelSmile包含三大核心技术创新:
| 组件 | 功能 | 技术要点 |
|---|---|---|
| 文本潜在插值 | 连续强度控制 | 残差方向计算+系数调制 |
| 全对称联合训练 | 语义解耦 | 混淆表情对+对称对比损失 |
| 身份保持机制 | 身份一致性 | ArcFace多模型融合 |
2.2 FFE数据集构建
2.2.1 设计原则
FFE(Flex Facial Expression)数据集旨在解决现有数据集的三个关键局限:
- 连续性:用12维连续分数向量替代one-hot标签
- 多样性:同身份覆盖12种表情类别+多强度级别
- 跨域性:同时包含真实人像和动漫角色
2.2.2 四阶段构建流程
flowchart LR
A[阶段1<br/>基础身份收集] --> B[阶段2<br/>表情提示组合]
B --> C[阶段3<br/>受控表情生成]
C --> D[阶段4<br/>连续标注与过滤]
A -->|6K真实+6K动漫| B
B -->|12种表情类别| C
C -->|60K张图像| D
D -->|12维连续向量| E[FFE数据集]
阶段1:基础身份收集
真实域(Real Domain):
- 来源:公开人像数据集(Human Images Dataset、Matting Human Datasets)
- 规模:约6,000张高质量真实人像
- 覆盖:多样人口统计特征和场景构图
- 质量控制:自动人脸检测+人工验证
动漫域(Anime Domain):
- 来源:207部动漫作品,629个角色
- 规模:约6,000张筛选后的高质量图像
- 处理流程:
原始截图 → 人脸检测 → 质量过滤 → 人工验证 → 身份标注 - 目的:验证跨域泛化能力
阶段2:表情提示组合
表情分类体系:
mindmap
root((12种表情类别))
基本情绪[6种基本情绪<br/>Ekman分类]
快乐 Happy
悲伤 Sad
愤怒 Angry
恐惧 Fear
惊讶 Surprise
厌恶 Disgust
扩展情绪[6种扩展情绪]
困惑 Confused
蔑视 Contempt
自信 Confident
害羞 Shy
困倦 Sleepy
焦虑 Anxious
提示工程策略:
不同于直接使用抽象表情标签,本文采用面部属性分解方法:
| 表情类别 | 关键面部属性组合 |
|---|---|
| 惊讶 | 眉毛上扬+眼睛睁大+嘴巴张开 |
| 恐惧 | 眉毛上扬聚拢+眼睛睁大+嘴角后拉 |
| 愤怒 | 眉毛下垂聚拢+眼睛瞪大+嘴角下撇 |
| 厌恶 | 鼻子皱起+上唇提起+下唇突出 |
提示验证流程:
- 自动生成候选属性组合
- 使用VLM(Gemini 3 Pro)检查解剖学一致性
- 过滤语义冲突描述
- 构建验证后的细粒度提示库
阶段3:受控表情生成
生成策略:
采用双部提示设计(Dual-Part Prompt Design):
全局表情类别 + 局部面部属性
示例:
"A person with surprised expression, featuring raised eyebrows,
wide open eyes, and an open mouth showing shock"
生成模型:Nano Banana Pro(当前最先进的图像编辑模型)
生成规模:
- 每个基础身份生成多个目标表情
- 每个表情包含不同强度级别
- 总计约60,000张图像(真实域30K + 动漫域30K)
阶段4:连续标注与质量过滤
连续标注方法:
使用Gemini 3 Pro预测12维连续分数向量:
v ∈ [0,1]¹² = [v_happy, v_sad, v_angry, v_fear, v_surprise, v_disgust,
v_confused, v_contempt, v_confident, v_shy, v_sleepy, v_anxious]
分数解释:
- v_i ≈ 1.0:该表情类别占主导
- v_i ≈ 0.0:该表情类别几乎不存在
- 0.0 < v_i < 1.0:混合表情状态
质量控制:
| 检查项 | 方法 | 阈值 |
|---|---|---|
| 标注一致性 | 人工抽查验证 | 95%+ |
| 模糊样本过滤 | 最高分数<0.6剔除 | - |
| 身份一致性 | 同身份样本聚类检查 | - |
| 图像质量 | 分辨率+清晰度检查 | - |
2.2.3 数据集统计
FFE Dataset Statistics:
├── Total Images: 60,000
│ ├── Real Domain: 30,000
│ └── Anime Domain: 30,000
├── Base Identities: ~12,000
│ ├── Real: ~6,000
│ └── Anime: ~6,000
├── Expression Categories: 12
├── Average Expressions per Identity: 5
└── Annotation Format: 12-dim continuous vector
2.3 FFE-Bench评估基准
2.3.1 设计动机
现有评估指标(CLIP、SSIM、LPIPS)主要关注生成质量,缺乏对以下关键能力的评估:
- 语义解耦(Disentanglement)
- 连续可控性(Continuous Controllability)
- 结构混淆(Structural Confusion)
2.3.2 四大评估维度
flowchart TB
subgraph FFE-Bench
A[mSCR<br/>结构混淆率]
B[HES<br/>调和编辑分数]
C[CLS<br/>控制线性分数]
D[Acc<br/>编辑准确率]
end
A -->|衡量| A1[语义解耦]
B -->|衡量| B1[表情-身份平衡]
C -->|衡量| C1[线性可控性]
D -->|衡量| D1[分类准确性]
维度1:平均结构混淆率(mSCR)
定义:量化语义相似表情间的结构化混淆程度
混淆率计算:
其中:
- N_i:编辑为类别i的样本数量
- ŷ_k^(i):第k个样本的预测主导表情
双向混淆率(BCR):
平均结构混淆率:
其中P为预定义的易混淆表情对集合:
- P = {(Fear, Surprise), (Angry, Disgust), (Sad, Sleepy), …}
评估者:Gemini 3 Pro用于表情分类
维度2:调和编辑分数(HES)
定义:平衡表情编辑准确性与身份保持的综合指标
表情分数(S_E):
- 使用VLM(Gemini 3 Pro)预测目标表情强度
- 归一化到[0,1]范围
身份分数(S_ID):
- 使用三个面部识别模型取平均:
- ArcFace(antelopev2)
- AdaFace
- FaceNet
- 计算源图像与编辑图像的余弦相似度
优势:
- 单一指标平衡两个关键目标
- 避免单方面优化导致的极端情况
维度3:控制线性分数(CLS)
定义:评估连续控制响应的线性程度
测试流程:
- 输入均匀间隔的强度系数:α ∈ [0, α_max]
- 生成对应强度的表情图像
- 使用VLM预测实际表情强度
- 计算α与预测强度的Pearson相关系数
计算公式:
解释:
- CLS ≈ 1.0:高度线性响应
- CLS < 0.8:非线性或不稳定控制
维度4:表情编辑准确率(Acc)
定义:生成图像中预测主导表情与目标指令匹配的比例
用途:衡量整体分类级别的编辑成功率
2.3.3 评估流程
sequenceDiagram
participant M as 待评估模型
participant D as FFE-Bench数据集
participant V as VLM评估器
participant F as 面部识别模型
participant R as 结果汇总
M->>D: 读取测试样本
D->>M: 源图像+目标表情+强度α
M->>M: 生成编辑图像
M->>V: 提交生成结果
V->>V: 预测表情类别和强度
V->>R: 返回S_E和分类结果
M->>F: 提交源图像和生成图像
F->>F: 计算身份相似度
F->>R: 返回S_ID
R->>R: 计算mSCR/HES/CLS/Acc
R->>M: 返回评估报告
2.4 PixelSmile技术方法
2.4.1 基础架构
骨干网络:预训练Multi-Modal Diffusion Transformer(MMDiT)
- 基于Qwen-Image-Edit-2511实现
- 采用LoRA(Low-Rank Adaptation)进行微调
- 分别为真实域和动漫域训练独立的LoRA适配器
2.4.2 文本潜在插值机制
核心思想
通过线性插值文本嵌入实现连续表情强度控制。
数学表述
步骤1:计算残差方向
给定中性提示P_neu和目标表情提示P_tgt:
步骤2:构建条件嵌入
参数α的语义:
- α = 0:纯中性表情
- α = 1:完整目标表情
- 0 < α < 1:过渡强度
- α > 1:外推更强表情(支持)
分数监督流匹配
目标:确保文本插值与视觉变换一致
训练目标:
其中:
- x_0:源图像潜在表示
- x_1:目标表情图像潜在表示
- α = α_gt(来自FFE的连续标注)
2.4.3 全对称联合训练
问题识别
易混淆表情对(如恐惧-惊讶)在潜在空间中纠缠,需要显式分离。
对称构造
对于混淆表情对(E_a, E_b):
graph LR
A[源图像] --> B[生成G_a<br/>目标E_a]
A --> C[生成G_b<br/>目标E_b]
D[ ground truth<br/>P_a E_a] -->|正样本| B
E[ ground truth<br/>P_b E_b] -->|负样本| B
E -->|正样本| C
D -->|负样本| C
双重优化:
- 生成G_a时:P_a为正,P_b为负
- 生成G_b时:P_b为正,P_a为负
对称对比损失
InfoNCE-style目标:
其中T为InfoNCE损失:
特征编码:
- 真实域:CLIP-ViT-L/14
- 动漫域:DanbooruCLIP
2.4.4 身份保持机制
损失函数
其中Φ_arc为预训练ArcFace模型(antelopev2)。
作用机制
- 在强强度外推(α > 1)时防止身份漂移
- 在对称对比学习中稳定生物特征
- 平衡表情变化与身份一致性
2.4.5 整体训练目标
超参数设置:
- λ_sc:对比损失权重(控制解耦强度)
- λ_id:身份损失权重(控制身份保持)
训练配置:
- 优化器:AdamW
- 学习率:1e-4(LoRA参数)
- 批次大小:32
- 训练步数:50K
2.5 本章小结
本章详细介绍了PixelSmile的研究方法:
- FFE数据集:四阶段构建流程,60K跨域图像,12维连续标注
- FFE-Bench:四维评估体系,专门针对语义解耦和连续控制
- PixelSmile框架:
- 文本潜在插值实现连续控制
- 全对称联合训练实现语义解耦
- 多目标优化平衡表情准确性与身份保持
方法设计的核心思想是将语义解耦和连续控制统一在一个框架内,通过全对称训练机制显式分离易混淆表情,同时保持生成质量和身份一致性。