跳转至

Mobile-VTON: High-Fidelity On-Device Virtual Try-On

会议: CVPR 2026
arXiv: 2603.00947
代码: 有 (https://zhenchenwan.github.io/Mobile-VTON/)
领域: 人体理解
关键词: 虚拟试穿, 移动端部署, 知识蒸馏, 扩散模型, 隐私保护

一句话总结

首个全离线移动端扩散式虚拟试穿框架,基于TeacherNet-GarmentNet-TryonNet (TGT)架构,通过特征引导对抗蒸馏(FGA)将SD3.5 Large的能力迁移到415M参数的轻量学生网络,在VITON-HD和DressCode上以1024×768分辨率匹配甚至超越服务器端基线,端到端推理时间约80秒(小米17 Pro Max)。

背景与动机

虚拟试穿(VTON)技术在时尚电商领域非常实用,但现有高质量方法几乎全部依赖云端GPU:用户必须上传个人照片到服务器做推理,不仅有延迟和能耗问题,更带来严重的隐私风险(尤其在严格数据保护法规下)。将扩散式VTON部署到移动端面临三大挑战:(1) 模型参数量大、内存和延迟远超移动NPU/GPU能力;(2) 衣物表征在扩散时间步间会发生语义漂移,导致纹理扭曲和细节丢失;(3) 现有方法严重依赖大规模预训练(如ImageNet或大规模文生图),轻量架构无法直接从任务数据学到足够好的生成能力。

核心问题

如何在不上传用户数据、仅用一张人像和一张衣物图作为输入的条件下,在普通手机上实现高保真虚拟试穿?核心矛盾是:模型要足够小以在移动端运行,同时生成质量要追平参数量大5-17倍的服务器端方法。

方法详解

整体框架

Mobile-VTON 要回答的问题是:能不能把一个本来跑在云端、参数量 2B+ 的扩散试穿模型塞进手机,还不掉质量。它的答案是一套模块化的 TGT 架构——一个冻结的 TeacherNet(SD 3.5 Large)当知识源,两个轻量学生 GarmentNet 和 TryonNet 分别负责「提取一致的衣物特征」和「把人体与衣物融合成试穿图」。输入只有一张人像加一张衣物图,先由 GarmentNet 把衣物编码成跨时间步稳定的特征,再喂给 TryonNet 逐步去噪生成 1024×768 的试穿结果;衣物的视觉语义则由一个用 DINOv2-base 替换 CLIP 的 Light-Adapter 注入。整个系统从任务数据直接训练,不依赖任何外部大规模预训练,全靠 TeacherNet 的 FGA 蒸馏把容量补回来。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["输入:人像 + 衣物图"] --> G["TCG GarmentNet<br/>跨时间步重建约束 → 稳定衣物特征"]
    A --> LA["Light-Adapter<br/>DINOv2 替代 CLIP,提取衣物视觉 K-V"]
    G --> T["Garment-Aware TryonNet<br/>潜空间拼接(LC) + 多尺度特征融合,逐步去噪"]
    LA --> T
    T --> O["输出:1024×768 试穿图"]
    TE["TeacherNet(SD 3.5 Large,冻结)"] -->|"FGA 蒸馏:score 对齐 + 对抗"| G
    TE -->|"FGA 蒸馏"| T

关键设计

1. FGA 蒸馏:让 415M 的学生追上 2B+ 的教师

轻量学生最大的难处是容量不够、从头学根本收敛不了(消融里去掉蒸馏后 FID 从 10.2 暴涨到 113.6,完全崩溃)。FGA(Feature-Guided Adversarial Distillation)用两个互补目标把教师的能力搬过来:一是特征级蒸馏,在每个扩散时间步上对齐 TeacherNet 与学生的 score function,\(\mathcal{L}_{feature} = \mathbb{E}_t[\|s_{true} - s_{fake}\|^2]\),走的是 DMD2 式的 score matching 而不是逐像素回归,让学生学到的是教师的分布行为而非某张图的像素;二是对抗增强,加一个轻量判别器 \(D\) 区分真实图与 TryonNet 生成图,用标准 GAN 损失 \(\mathcal{L}_{GAN}\) 把真实感和细节清晰度顶上去。分布对齐保证「像」,对抗损失保证「清晰」,两者合起来才让小模型逼近教师级质量。

2. TCG:用跨时间步重建约束摁住衣物的语义漂移

扩散模型在不同时间步对同一件衣物的理解会漂移,导致颜色、纹理、logo 在去噪过程中扭曲。TCG(Trajectory-Consistent GarmentNet)的做法很直接:在每个时间步 \(t\) 都要求 GarmentNet 能重建回原始衣物图,\(\mathcal{L}_{cons} = \mathbb{E}_t[\|\hat{X}_g(t) - X_g\|^2]\)。这条时序正则化把衣物特征钉在整条扩散轨迹上保持一致,结构简单却有效——消融里加上 TCG 后 LPIPS 从 0.119 降到 0.111,logo 和条纹明显更清晰、颜色定位也更准。

3. Garment-Aware TryonNet:在无预训练前提下学会衣物-身体对齐

没有大规模预训练打底,TryonNet 很难凭空学到衣物该怎么贴合身体。这里靠两个手段补偿:一是 Latent Concatenation(LC),把人像和衣物图在高度维度拼接后一起编码进 latent space,并额外引入「目标人像+衣物」的参考条件输入,给模型显式的几何与外观线索(消融里 LC 在 TCG 基础上把 LPIPS 从 0.111 进一步压到 0.088);二是多尺度特征融合,TryonNet 每层 self-attention 都拼接 GarmentNet 对应层的特征,cross-attention 同时吃文本和 Light-Adapter 的视觉 K-V,让衣物语义在多个层次注入。

4. Light-Adapter:用 DINOv2 换掉 CLIP 换效率

CLIP 的大型视觉编码器在移动端太重。Light-Adapter 用 DINOv2-base 替代,把衣物图像特征投影成 K、V 张量,通过解耦 cross-attention 注入 TryonNet。这是一次效率-质量的权衡:DINOv2 提供的语义足够丰富,同时编码器更轻,契合手机端的算力预算。

损失函数 / 训练策略

  • GarmentNet总损失:ℒ_GarmentNet = λ₁·ℒ_featureG + λ₂·ℒ_cons
  • TryonNet总损失:ℒ_TryonNet = ℒ_Diff + λ₁·ℒ_featureT + λ₃·ℒ_GAN(其中ℒ_Diff为衣物感知重建损失)
  • 超参数:λ₁=1e-2, λ₂=0.5, λ₃=5e-3
  • 两阶段训练:Stage 1在DressCode+VITON-HD合并集上训练140 epochs(lr=1e-4),Stage 2在DressCode上微调100 epochs(lr=5e-5)
  • 8×A100 80GB,batch size=256,AdamW优化器

实验关键数据

数据集 指标 本文(Mobile-VTON) 之前SOTA 对比说明
VITON-HD LPIPS↓ 0.088 0.102 (IDM-VTON) 超越服务器端最优(mask-based)
VITON-HD SSIM↑ 0.893 0.890 (SD-VITON) 最佳
DressCode LPIPS↓ 0.053 0.0513 (BooW-VTON) 接近最优
DressCode SSIM↑ 0.935 0.928 (BooW-VTON) 最佳
VITON-HD In-Wild LPIPS↓ 0.133 0.137 (IDM-VTON) 最佳
内存占用 GPU Memory 2.84 GB 5.80-18.47 GB 减少51%-85%
部署 移动端 ✓ (小米17 Pro Max, ~80s) 全部✗ 唯一可移动端运行的方法

消融实验要点

  • TCG的贡献:加入TCG后LPIPS从0.119降到0.111,SSIM从0.874升到0.879,CLIP-I从0.798升到0.805。视觉上可见logo和条纹更清晰、颜色定位更准确
  • LC的贡献:在TCG基础上加LC,LPIPS进一步从0.111降到0.088,SSIM升到0.893,CLIP-I升到0.833。LC提供了显式衣物几何和外观线索,弥补无预训练的劣势
  • 蒸馏的关键性:去除蒸馏后FID从10.2暴涨到113.6,完全崩溃——说明轻量模型在无教师引导下从头训练根本无法收敛
  • 数据集质量影响:DressCode微调优于VITON-HD微调(轻量模型对数据质量更敏感,DressCode分辨率更统一、视觉更清晰)

亮点

  • 技术上最大的亮点是FGA蒸馏:score-based distillation + GAN的组合让415M参数学生网络达到了2B+参数教师级别的生成质量
  • TCG的设计非常简洁高效——只是一个跨时间步的重建一致性约束,但有效解决了扩散模型中衣物语义漂移的核心问题
  • 全系统从任务数据直接训练、不依赖大规模预训练,对资源有限的场景很有参考价值
  • DINOv2-base替代CLIP做视觉编码器的选择值得关注——在移动端场景下是一个好的效率-质量trade-off
  • 在真实手机上跑通了完整pipeline并给出了实际推理时间(80s),不是纸上谈兵

局限与展望

  • 80秒的端到端推理时间对用户体验来说仍然偏长,未使用步数缩减、剪枝或系统级加速
  • 无法准确生成带文字的衣物(logo、品牌名、口号),因为缺乏文字感知预训练且训练数据中文字衣物较少
  • 仅支持上半身试穿,未扩展到全身、裙装等类别
  • 作为mask-free方法,需要合成整张图(含背景和身体),FID/KID指标上天然不如mask-based方法公平
  • INT8量化在Android NPU上执行,但未报告量化带来的精度损失具体数据

与相关工作的对比

  • vs IDM-VTON (18.47GB):IDM-VTON是mask-based方法中最强的服务器端基线,在VITON-HD上CLIP-I达0.875。Mobile-VTON在LPIPS和SSIM上超越它,CLIP-I略低(0.833 vs 0.875),但内存仅需2.84GB且可移动端运行——本质是不同维度的方法。
  • vs CatVTON:同为mask-free方法,CatVTON也用latent拼接策略。Mobile-VTON在LPIPS/SSIM全面超越CatVTON(0.088 vs 0.161, 0.893 vs 0.872),说明TGT架构+FGA蒸馏的组合远优于单纯使用CatVTON的拼接策略。
  • vs BooW-VTON:BooW-VTON是mask-free方法中最强的服务器端基线,在FID/KID上最优。Mobile-VTON在DressCode上SSIM超越它(0.935 vs 0.928),LPIPS接近(0.053 vs 0.051),但内存仅需2.84GB vs 18.47GB。

启发与关联

  • FGA蒸馏策略(score-based + 对抗)可迁移到其他需要部署在边缘设备的扩散模型任务
  • TCG的时序一致性约束思路可借鉴到视频生成、3D一致生成等时序/多视角任务
  • "数据质量对轻量模型比大模型更重要"这一发现值得在其他蒸馏研究中验证
  • 关联idea: 20260316_convnet_dit_hybrid_distill.md(扩散模型蒸馏相关)

评分

  • 新颖性: ⭐⭐⭐⭐ [TGT架构设计和FGA蒸馏策略具有系统性创新,首个移动端扩散VTON有实际工程价值]
  • 实验充分度: ⭐⭐⭐⭐⭐ [三个数据集、多个基线、详细消融、真实手机部署、数据集质量分析,非常全面]
  • 写作质量: ⭐⭐⭐⭐ [结构清晰,图表丰富,方法描述详尽]
  • 价值: ⭐⭐⭐⭐ [移动端部署扩散模型是重要工程方向,FGA蒸馏策略具有较好的通用性]