FitControler: Toward Fit-Aware Virtual Try-On¶
会议: ECCV2026
论文: ECCV 原文
代码: https://github.com/tiny-smart/FitControler
领域: 人体理解
关键词: 虚拟试衣、版型控制、衣形泄漏、多尺度特征注入、扩散模型
一句话总结¶
FitControler 先去除原衣轮廓暗示,再预测目标版型的人体与服装布局并将中间特征注入冻结的试衣模型,在 Fit4Men 上同时改善版型一致性和图像质量,但并不预测真实尺码或物理舒适度。
研究背景与动机¶
虚拟试衣不仅要把图案、材质和衣领画清楚,还要决定衣服怎样围绕身体展开。 同一件短袖可以呈现修身、常规或宽松轮廓,同一条裤子也可以呈现锥形或直筒外观,这些差异会改变整套穿搭的视觉协调性。 以 CatVTON、Leffa 和 FitDiT 为代表的扩散式方法擅长保留服装纹理,却通常为给定输入生成固定版型,缺少独立调节这种整体外观的接口。 文字编辑或手动关键点调整能够改变一些属性,但卷袖、塞衣摆等局部穿法并不等于服装与身体之间的整体松量关系。 本文因而把目标限定为图像层面的版型控制,而非根据精确人体测量进行布料仿真。
这个任务的困难不只是给生成器再加一个类别标签,而是已有输入可能已经暗中给出了答案。 传统试衣训练从穿衣照片中擦除服装区域,再要求模型重建原图;沿衣服边缘制作的掩码仍然暴露原始衣形。 DensePose 也可能把宽松衣物的边缘误当作人体边界,因此即使衣服像素被遮住,模型仍可沿旧轮廓完成重建。 这种捷径有利于原版型复原,却会抵抗用户要求的版型变化,解释了为什么单纯追加文字提示可能无效。 另一方面,把控制能力直接写进某个专用试衣架构,也难以迁移到没有文字输入的 CatVTON 或不同骨干的模型。
FitControler 的切入点是先把抽象版型落实成三类分割布局,再利用布局生成过程本身产生的特征引导服装渲染。 这样既能检查目标轮廓是否形成,也不必为每个试衣模型重新学习整套人体与服装空间关系。 数据端则构建 Fit4Men,用明确的男装版型类别提供监督,并用轮廓指标补充 FID 等整体图像质量指标。 核心 idea:先清除原衣轮廓形成的条件捷径,再把版型标签转成可复用的空间布局特征,通过轻量注入器控制不同的冻结试衣模型。
方法详解¶
整体框架¶
输入是人物图像、商品服装图像和目标版型标签,输出是保留人物与服装外观、但改变穿着轮廓的试衣图像。 短袖标签为 slim、regular、loose,裤装标签为 tapered、straight;当前实现使用类别标签,而不是任意自然语言指令。 流程依次经过无衣形预处理、版型感知布局生成和多尺度版型注入,最后由既有试衣模型完成图像生成。 布局不是供用户手绘的额外输入,而是模型根据人物、服装和版型自动生成的中间表示。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
INPUT["人物图像"] --> PRE["无衣形预处理"]
PRE --> LAYOUT["版型感知布局生成"]
COND["服装图像 + 版型标签"] --> LAYOUT
LAYOUT --> SEG["三类分割图"]
GT["训练分割标注"] -.->|交叉熵监督| SEG
LAYOUT -->|多尺度解码特征| INJECT["多尺度版型注入"]
INJECT --> VTON["冻结试衣模型"]
BASE["人物与服装基础条件"] --> VTON
VTON --> OUT["目标版型试衣图"]
三类分割图区分背景、人体和服装,提供可解释的布局输出;真正传给试衣模型的是布局解码器的中间特征。 虚线监督只在布局训练阶段使用,推理时不需要目标分割标注或目标试衣照片。 布局生成器先独立训练,再冻结复用;接入某个试衣骨干时,只训练与该骨干匹配的注入器。 因此这里的“插件”并非无需训练即可挂接任意模型,而是共享布局模块、对每个目标模型进行较小规模适配。
关键设计¶
1. 无衣形预处理:切断重建训练中的轮廓捷径
掩码不再沿服装分割边界绘制,而是由人体关键点决定矩形覆盖区域。 上半身先取肩、肘、腕关键点的横向跨度,以及肩到髋的纵向跨度,再以经验比例扩大边界。 上装的横向和纵向 padding 系数分别为 0.6、0.25,下装基于髋、膝、踝构造,系数分别为 0.5、0.2。 矩形刻意不追随袖口和衣摆的真实轮廓,因此模型不能仅凭掩码形状猜出原图是修身还是宽松。 这也解释了覆盖范围为什么要留余量:如果掩码本身紧贴旧衣边缘,宽松目标仍可能被限制在错误区域内。
人体条件同样需要清理,因为直接预测的 DensePose 可能把衣服宽度带进人体形状。 作者依据关键点和标准体型比例重新合成稠密姿态:躯干由肩髋四边形及上下凸弧组成,四肢用关节圆及其连接区域组成。 手臂关节圆直径相对身高取 0.06、0.048、0.033,腿部取 0.09、0.055、0.03。 身高按躯干高度的 3.2 倍或腿长的 2.3 倍估计,再将合成图与预测 DensePose 取交集以约束空间布局。 作者强调关键在去除衣形泄漏的原则,而非某组比例具有普遍最优性;这些数值是经验几何规则,不是人体测量模型。 标准体型也会丢失真实身材差异,后文的多体型扩展改用原始 DensePose,体现了保留身材与抑制衣形泄漏之间的取舍。
2. 版型感知布局生成:让标签先改变空间占据关系
布局生成器复用 Stable Diffusion 的 U-Net,以其预训练语义先验预测人体与服装的分割布局。 预处理得到遮罩人物图、掩码和稠密姿态,人物、姿态及服装图像先通过 VAE 编码到潜空间。 输入沿用 CatVTON 的空间拼接思路,将人物侧与服装侧排在相邻空间位置,并用零张量补齐不适用于服装侧的条件。 随后在通道维拼接高斯噪声、降采样掩码、人物与服装潜表示、姿态潜表示,形成正文所述的 13 通道输入。 这里同时存在空间拼接与通道拼接,两者不能混为把所有图像简单堆成通道。
版型标签以 one-hot 表示,在解码器各 ResNet 块中通过 FiLM 调制特征。 其机制是由标签学习缩放和偏移,对归一化后的中间特征进行条件化,让同样的人物与服装输入产生不同的服装占据区域。 训练时冻结 U-Net 编码器以保留语义知识,布局端用三类分割监督学习输出。 作者同时收集解码器 ResNet 块之前的多尺度中间特征,作为后续版型控制信息。 这些特征不只是分割图的颜色编码,而是生成布局时已经形成的空间与语义表示,因此不必把分割结果交给另一个网络重新编码。 缓存中的输入式和 FiLM 式存在字符缺失,这里依据正文解释机制,不将补写公式冒充原文的精确实现。
3. 多尺度版型注入:复用布局特征而不是重新编码条件图
注入器要解决的是布局特征与试衣骨干的通道数、空间尺寸及数据结构不一致。 每个尺度先经过零初始化卷积对齐特征,再按目标架构进行空间拆分或插值,最后通过 ControlNet 式接口送入试衣模型。 U-Net 骨干如 Leffa 可通过拆分操作匹配布局特征的空间组织;DiT 骨干如 FitDiT 则需要插值到一致分辨率,再展平为序列。 共享的是版型语义,而不是强行让卷积特征图和 Transformer token 使用完全相同的张量形状。 零初始化让新增控制路径从零输出开始,避免一开始就用未训练特征干扰既有生成能力。
与 ControlNet 或 T2I-Adapter 从条件图像额外提取特征不同,该注入器直接使用布局生成器已经计算出的多尺度特征。 因此条件的生成与使用被连接起来,减少重复表征学习,并在论文消融中表现出更快收敛。 但“轻量”是相对完整 ControlNet 条件分支而言:表 3 中注入器有 97M 可训练参数,仍大于 T2I-Adapter 的 77M。 适配阶段布局生成器和试衣模型都冻结,优化信号只更新注入器参数。 主实验中的原始基线仍使用各自预处理管线,不能把结果解释为所有方法都换成统一预处理后进行的纯模块对比。
一个完整示例¶
设人物原图穿着宽松短袖,商品图给定同款式目标衣服,用户希望看到 slim 版本。 若沿旧衣服分割出掩码,宽松袖口和躯干外缘已经藏在条件中,模型可能忽略 slim 标签而继续画宽松轮廓。 新预处理从肩肘腕等关节重新构造矩形覆盖区,并给布局生成器提供较少受衣服宽度影响的人体条件。 布局解码器接收 slim 标签,先改变服装类别区域相对人体区域的边界,再将对应多尺度特征交给注入器。 冻结的试衣模型结合商品外观条件进行渲染,目标是缩窄袖部和躯干轮廓,同时保持图案、身份与姿态。 把标签换成 regular 或 loose,即可在相同人物与服装输入下比较版型;这是流程说明,不是新测量的实验样本。
损失函数 / 训练策略¶
布局生成器首先使用交叉熵学习分割布局,之后为每个试衣模型训练注入器 7,500 步。 注入器通过冻结试衣模型的噪声预测训练信号学习如何利用布局条件;缓存式 7 的范数及指数显示不完整,因此不补写其精确形式。 正文报告使用 AdamW、batch size 64、学习率 \(1\times10^{-5}\),在 4 张 NVIDIA A6000 上采用 FP16。 数据原始分辨率为 \(768\times1024\),训练和评估分辨率为 \(384\times512\),不能把原始分辨率当作实验输出分辨率。 Fit4Men 包含 5,000 对短袖和 8,000 对裤装,按 4:1 划分训练与测试,关键点、姿态及分割标注分别借助 DWPose、DensePose 和 Sapiens。 数据覆盖不同相机距离、正侧背视角,以及站立、局部遮挡、坐姿或跑动等姿态变化。 推理时使用目标类别重新生成布局特征,再驱动适配后的试衣模型,不进行目标人物专属微调。 正文未完整给出布局训练步数、全部结构超参或推理采样设置;所给缓存也不含其引用的补充材料,不能据此声称已完整复现。
实验关键数据¶
主实验¶
表 2(第 12 页)在 Fit4Men 上对比加入插件前后,覆盖 StableVITON、IDM-VTON、CatVTON 及其 FLUX 变体、FitDiT 和 Leffa。 下表选取非配对设置的两种骨干与两类服装;FID、Hu、Hd 均越低越好,KID 未列出以保持比较紧凑。 StableVITON 由于仅提供上装预训练权重,不参加裤装评估。
| 服装 | 方法 | FID | Hu | Hd |
|---|---|---|---|---|
| 短袖 | FitDiT | 23.94 | 0.80 | 16.89 |
| 短袖 | FitDiT + FitControler | 18.48 | 0.46 | 7.94 |
| 短袖 | Leffa | 18.77 | 0.65 | 10.47 |
| 短袖 | Leffa + FitControler | 17.73 | 0.45 | 7.65 |
| 裤装 | FitDiT | 15.74 | 1.86 | 17.49 |
| 裤装 | FitDiT + FitControler | 12.67 | 1.00 | 8.90 |
| 裤装 | Leffa | 12.55 | 1.31 | 10.63 |
| 裤装 | Leffa + FitControler | 11.98 | 0.98 | 8.80 |
Hu 将二值服装轮廓转成基于归一化中心矩的 7 个 Hu 不变矩,再计算生成轮廓与源轮廓之间的标量距离,以刻画整体形状差异。 正文没有在可读文本中明确这一向量距离的具体聚合及变换实现,因此这里不指定其范数或对数处理。 Hd 则取两个轮廓点集之间双向最近邻距离的最大值,强调局部最严重的边界偏差。 以下是正文式 10 所描述的标准定义,使用欧氏距离重新排版,并非恢复损坏的提取字符串:
评估时以与源图相同的版型条件生成图像,再比较服装轮廓;它测的是形状一致性,不是穿着压力或尺码合适程度。 表 1(第 11 页)的检查支持指标方向:源图为 slim 时,生成 slim 的 Hu/Hd 为 0.32/6.46,生成 loose 为 0.58/11.61。
消融实验¶
表 3(第 13 页)比较短袖配对设置下训练 7,500 步后的条件注入方式,以下数值均按原表报告。
| 条件注入方式 | FID | KID | Hu | Hd | 可训练参数 |
|---|---|---|---|---|---|
| ControlNet | 13.14 | 0.91 | 0.38 | 6.98 | 361M |
| T2I-Adapter | 13.50 | 1.48 | 0.42 | 6.97 | 77M |
| Fit Injector | 12.13 | 0.49 | 0.39 | 6.63 | 97M |
注入器的图像质量和 Hd 最好,但 Hu 略逊于 ControlNet,不能概括为每项指标都最优。 表 5(第 14 页)进一步比较非配对短袖结果,区分插件收益与额外训练收益;额外微调基线使用作者的无衣形预处理。
| 骨干 | 配置 | FID | KID | Hu | Hd |
|---|---|---|---|---|---|
| Leffa | 原始基线 | 18.77 | 2.59 | 0.65 | 10.47 |
| Leffa | 仅微调骨干 | 18.69 | 2.18 | 0.63 | 12.67 |
| Leffa | 仅加 FitControler | 17.73 | 1.54 | 0.45 | 7.65 |
| FitDiT | 原始基线 | 23.94 | 6.82 | 0.80 | 16.89 |
| FitDiT | 仅微调骨干 | 19.49 | 3.55 | 0.81 | 14.42 |
| FitDiT | 仅加 FitControler | 18.48 | 1.86 | 0.46 | 7.94 |
关键发现¶
- FitDiT 非配对短袖 Hd 从 16.89 降至 7.94,原表报告降低 53.0%;作者认为其较少泄漏版型的基础条件使显式布局更能发挥作用。
- 额外微调不能替代版型机制:Leffa 的 Hd 从 10.47 变为更差的 12.67,而插件使其降至 7.65。
- 表 4(第 13 页)中 Leffa 非配对短袖的 1,000 样本训练得到 FID 17.50、Hd 8.39,3,959 全量样本为 17.80、8.25,说明小数据可接近完整训练,但不是所有指标单调改善。
- 表 6(第 14 页)中追加文字版型并微调 16,000 步仍弱于显式布局控制,但配对短袖 SSIM 为 0.868,高于插件的 0.866;“插件整体更好”不等于每个重建指标都胜出。
亮点与洞察¶
- 最有启发的是把控制失败追溯到条件泄漏,而不是立即增加模型容量。重建任务中的有效捷径,在反事实外观编辑时可能成为障碍。
- 条件生成器的中间特征本身可作为控制接口,无需把它先压成图像再重新编码。这种设计值得迁移到先预测姿态、布局或深度再生成图像的系统。
- “画得真实”和“轮廓正确”应分别测量。本文用 Hu 与 Hd 补充图像质量指标,使错误袖口和衣摆更容易被定量发现。
局限与展望¶
- 作者承认 Fit4Men 仅覆盖男装短袖和裤装的有限版型,体型分布也不充分;不能外推为已经解决女装、裙装或广泛体型适配。
- 标准体型预处理可能牺牲身材保真度,多体型扩展改用原始 DensePose 后仍出现 slim 设置让人物略显瘦的现象。
- 从读者视角看,离散版型标签与二维轮廓没有提供真实松量、布料弹性、身体尺寸或穿着舒适度,适用目标是视觉预览。
- 表 4 的完整短袖训练规模为 3,959,而数据章节给出总体 4:1 划分;正文未解释这一具体数量差异,应保留两种原始表述。
- Hu/Hd 依赖轮廓提取,正文未报告其与人工偏好的一致性统计;可补充体型分层、分割误差敏感性和用户评价,以检验实际控制价值。
相关工作与启发¶
- 与 CatVTON、Leffa、FitDiT 的关系:这些方法提供服装外观建模与生成能力,FitControler 为其添加布局控制,而不是替代其完整渲染架构。
- 与 ControlNet、T2I-Adapter 的区别:通用条件分支从输入条件图提取特征,本文还负责产生版型条件,并复用这一过程的特征;表 3 支持相对 ControlNet 的参数与质量优势。
- 与 PromptDresser、COTTON 的区别:前者依赖文字语义与修补控制,后者关注服装长度等编辑;本文把版型作为整体人体与服装空间关系显式建模。
- 可延伸方向(读者建议):在保留真实体型的条件下抑制衣形泄漏,再加入连续松量控制,将比单纯增加离散版型类别更接近个性化试衣需求。
评分¶
- 新颖性: 4/5。将版型控制、衣形去泄漏和布局特征复用结合成跨骨干插件,任务针对性明确。
- 实验充分度: 4/5。多骨干、配对与非配对设置及替代机制消融较完整,但体型和服装覆盖仍有限。
- 写作质量: 4/5。方法动机与主要实验关系清楚,部分实现依赖补充材料,且小样本表的完整规模需进一步说明。
- 价值: 4/5。为视觉试衣增加可解释的版型控制接口,但不应替代真实尺码判断或物理合身验证。