PAPER READING · FIXED ARXIV v1 · 2023 · CVPR 2024

StableVITON

Latent 空间的服装对应学习|Zero Cross-Attention、ATV 与公开实现审计

Jeongho Kim · Gyojung Gu · Minho Park · Sunghyun Park · Jaegul Choo

01 · 先回答原笔记中的核心疑问

StableVITON 把衣服到人体的对应关系学习放进预训练扩散模型的 latent 空间:人物位置提供 Query,衣服空间特征提供 Key/Value,由新增 zero cross-attention blocks 完成软匹配。它借用了 ControlNet 的可训练编码分支和零初始化思想,但核心注入操作不是把未对齐衣服特征逐像素直接相加。

输入

人物图、目标衣服图、去衣服人物图、agnostic mask、DensePose。不是单靠两张原始 RGB 就免预处理。

输出

保持人物身份、姿态与背景的虚拟试穿图。输出是二维合成,不是布料物理仿真、尺码测量或三维服装重建。

机制

预训练 PBE/SD 主干提供生成能力,衣服空间编码分支和九个 cross-attention 插入块提供细节,增强与 ATV 约束帮助对应学习。

对原笔记的追加澄清:Q 与 K/V 来自不同特征流,因此该层属于 cross-attention,不因衣服与人物都属于图像就变成 self-attention。新增块内部确实先有 self-attention,再有 cross-attention;不能把“训练新增块中的 self-attention”写成“只训练原主 U-Net decoder 的 self-attention”。原文说不更新原始 blocks,代码默认也没有把原 decoder 加入 optimizer。

结论需分版本:固定 v1 无 RePaint 时不在所有指标上最优;RePaint 变体大幅改善未改动区域的重建。当前公开 inference.py 的 --repaint 是最终 RGB 蒙版合成,与正文描述的每步采样替换并不相同。ATV 的实现、数据增强开关也有可定位的差异,后文完整列出。

原 Figure 1:同域、SHHQ 与网络人物示例;固定 PDF 第1页
原 Figure 1 · 同域、SHHQ 与网络人物示例;固定 PDF 第1页 · 原图来源

主依据:固定 arXiv v1,17 页、官方项目页、官方代码。

02 · 论文身份与保护性修订

字段核实事实原记录处理
论文StableVITON: Learning Semantic Correspondence with Latent Diffusion Model for Virtual Try-On固定使用 2312.01725v1
版本2023-12-04 预印本,17 页;官方仓库标 CVPR 2024不把原 2023 arXiv 记录悄悄改成另一版本
作者与机构Jeongho Kim、Gyojung Gu、Minho Park、Sunghyun Park、Jaegul Choo;KAIST原作者拼写以 PDF 为准;README BibTeX 的 Guojung 与 PDF Gyojung 不一致
第一作者Jeongho Kim未发现共同一作标记
通讯作者Sunghyun Park,固定 PDF 第 9 页致谢明确说明,项目页也确认原 note 的 Jaegul Choo/unverified 为旧候选,追加建议改为 Sunghyun Park/verified
页数正文与参考文献第 1–10 页;附录 A–E 及 Fig. 11–16 第 11–17 页17 页为合订总页数,不是正文另加 17 页补充材料
公开实现读取 2026-09-30 的 master 源文件,逐文件保存 SHA-256GitHub API 返回 rate limit,未核实 commit,不虚构固定 revision

原 note 中关于 ReferenceNet、ControlNet 的疑问、两张 PDF 裁切对照、BibTeX、作者链接、原有标签与全部 PDF++ anchors 均原样保留。本页是追加精读,不把原有思考当成可删除错误。CVF 页面本轮返回 403,CVPR 2024 身份由官方仓库核实,未声称逐字比对 camera-ready。

arXiv 元数据 · 官方通讯作者说明

03 · 研究问题与可观测输入

传统 try-on 往往先估计衣服到人物的 flow/warp,再让生成器融合。错误 warp 会把图案拉错、在身体与衣服交界造成重叠;小型 GAN 生成器还难以泛化到复杂背景。另一路只把衣服压成 CLIP 语义向量,容易保留“是什么衣服”却丢失字母、纹理和局部设计。

作者的假设是:让预训练扩散模型的身体先验直接参与对应学习,不在 RGB 空间提前固化一个错误 warp。新增衣服分支提供多尺度空间 token,cross-attention 每个目标位置可以从衣服任意位置取信息。这里的“warping”是特征加权聚合,不是输出一个具有显式拓扑、可逆性或物理含义的几何变换。

符号/张量含义512×384 设置下
\(x\)人物 RGB;训练时穿着与商品图对应的衣服3×512×384
\(x_c\)目标商品衣服图;推理可换成另一件3×512×384
\(x_a\)clothing-agnostic 人物图,去除待替换衣服信息RGB,经 VAE 编码成 4×64×48
\(m_a\)agnostic 区域的 mask;须确认黑白语义缩放成 1×64×48,不经 VAE
\(x_p\)DensePose 条件图经 VAE 编码成 4×64×48
\(z_t\)人物 latent 加噪结果4×64×48
\(\tau_{\phi}(x_c)\)CLIP image embedding,提供全局衣服语义代码 pooled 1024 维,再投影到 768
\(c_i\)衣服空间编码分支中间特征16×12、32×24、64×48 各三组用于注入
\(A,F,M\)跨注意力、其坐标重心场、训练衣服区域 maskATV 是训练正则,推理不需要 ground-truth 衣服 mask

“端到端、不用独立 warping network”不等于无需 segmentation、agnostic 处理或 DensePose。训练数据的商品与穿着照片配对监督仍然不可缺少;本文没有通过纯文本或无配对图像学会所有穿搭关系。

原 Figure 2:语义对应热图
原 Figure 2 · 语义对应热图 · 原图来源

Fig. 2 把衣服区域的注意力叠到生成图,说明目标人体位置可以和源衣服语义区域关联;这是网络内部响应可视化,不是有 ground truth 对应标注的精度评价。

04 · 架构拆解与 ReferenceNet 疑问

预训练基础并非从零训练一个 U-Net

附录 A 明确采用 SD v1.4 的 autoencoder 与去噪 U-Net 架构,主 U-Net 初始化自 Paint-by-Example。PBE 已提供图像 exemplar 条件,因此不是简单在任意 SD checkpoint 上多加四个通道就等价。官方发布专用 13 通道初始化 checkpoint 及单独在 VITON-HD 微调的 VAE。

\[\zeta_t=\operatorname{concat} [z_t,\mathcal E(x_a),\operatorname{Resize}(m_a),\mathcal E(x_p)] \in\mathbb R^{13\times H/8\times W/8}.\]

通道数是 4+4+1+4=13。原 note 的“ConvIn 使用 Zero Init”需要细化:相对 PBE 的 9 通道增加 DensePose 的 4 通道,README 说 add zero conv;发布代码要求下载已经改造过的 checkpoint,并未公开一个从原 PBE 权重完整扩展的脚本供本轮逐值确认。不能推断把全部原有输入卷积清零。

原 Figure 3:完整架构与 zero cross-attention block
原 Figure 3 · 完整架构与 zero cross-attention block · 原图来源

两条衣服条件路径

  1. 全局语义路径:衣服送入冻结 CLIP ViT-L/14 image encoder,取 pooled embedding,经 mapper、LayerNorm 和 1024→768 投影,为主 U-Net 与可训练编码分支提供原有语义 cross-attention context。它只有全局 token,无法单独保留精确空间位置。
  2. 空间细节路径:衣服经过 VAE,零初始化条件卷积接入可训练编码分支;中间多尺度特征被用作新增 zero cross-attention 的 K/V。代码的分支还接收同一个 13 通道 noisy person condition 与 timestep,不是完全独立、只看衣服 RGB 的编码器。

主 U-Net encoder/decoder 各 12 blocks、各 3 次下/上采样。512×384 图像对应 64×48 latent,再得到 32×24、16×12、8×6。每尺度三份特征,跳过最小 8×6 的注入,剩余九个 zero cross-attention blocks。CLIP 全局 context 与空间 K/V 是两组不同条件,不能混为一张 attention map。

新增块的数学接口

\[Q=W_Q\,\operatorname{SA}(h_i),\qquad K=W_Kc_i,\qquad V=W_Vc_i,\] \[A_i=\operatorname{softmax}_{\mathrm{key}} \left(\frac{QK^{\mathsf T}}{\sqrt{d}}\right),\quad \Delta h_i=Z_i\bigl(\operatorname{Transformer}(h_i,c_i)\bigr),\quad h_i^{+}=h_i+\Delta h_i.\]

这里省略 LayerNorm、残差和 FFN 以突出数据来源;原 Fig. 3(b) 给出 self-attention→cross-attention→FFN→零初始化输出层。\(Z_i\) 初始为零,所以条件支路初期不扰动预训练主流。零输出层先学到非零权重后,梯度再有效进入前面的新增网络;这不同于全部 Q/K/V 同时清零。

当前实现使用 CustomSpatialTransformer 自身的零输出投影,加上外部 warp_zero_convs 的 1×1 zero conv,再残差加回人物特征。1×1 卷积是逐位置通道线性映射;关键不是其名字,而是外部相加之前已完成了跨空间匹配。即使代码模块名带 ControlNet,也不能因此认定没有 cross-attention。

模块论文角色当前默认代码的更新路径
原主 U-Net encoder/middle预训练先验,冻结forward 显式 no_grad;输入卷积虽被 optimizer 收录,也不会从这条路径得到梯度
原主 U-Net decoder原始 blocks 不更新默认 sd_locked=True,不进 optimizer;需保留到新增模块的反传路径,不能把整个 decoder 包成 no_grad
空间编码分支可训练的预训练 encoder copycontrol_model.parameters() 加入 optimizer
九个新增块自注意力+衣服跨注意力+FFN+零层warp_flow_blks 与 warp_zero_convs 均加入 optimizer
VAE先单独微调 decoder,再固定加载 VAE checkpoint,整体冻结用于 try-on 训练
CLIP vision backbone预训练衣服语义冻结;mapper/final_ln 可 requires_grad,但默认 cond_stage_trainable=False 时不加入 optimizer
全局投影与空条件PBE 条件接口proj_out 与 learnable_vector 加入 optimizer

代码级边界:requires_grad、optimizer 参数列表、no_grad 三者必须联合检查。仅看网络框图的颜色,或只看“参数在 optimizer 中”,都可能误判实际训练范围。原 note 的总结作为原始思考保留,这里给出更精确的后续核查。

固定 PDF §4.1–4.2、附录 A;架构代码 · optimizer 与条件输入。

05 · 六个原公式与 ATV 的真正约束

Eq. 1–3:条件扩散的监督

\[q(z_t\mid z_0)=\mathcal N\left(z_t;\sqrt{\bar\alpha_t}z_0,(1-\bar\alpha_t)I\right), \quad \bar\alpha_t=\prod_{s=1}^{t}(1-\beta_s).\tag{1}\] \[\mathcal L_{\mathrm{LDM}}= \mathbb E_{\mathcal E(x),y,\epsilon,t} \left\|\epsilon-\epsilon_{\theta}(z_t,t,\tau_{\theta}(y))\right\|_2^2.\tag{2}\]

Eq. 2 是通用文本条件 LDM 背景;StableVITON 实际将文本条件替换成衣服图像语义,并增加空间衣服输入和人物条件:

\[\mathcal L_{\mathrm{LDM}}= \mathbb E_{\zeta,x_c,\mathcal E(x_c),\epsilon,t} \left\|\epsilon-\epsilon_{\theta} \left(\zeta_t,t,\tau_{\phi}(x_c),\mathcal E(x_c)\right)\right\|_2^2.\tag{3}\]

训练目标仍是噪声预测,不是直接监督 attention correspondence,也不要求真实人体与商品图之间的 dense flow ground truth。配对训练中的人物照片充当目标;agnostic 与 DensePose 从人物生成。推理换装是 unpaired 条件,没有该换装结果的像素 ground truth。

为什么没有增强时会学到位置捷径

商品图与人物图在训练集中布局相似,网络可能混合多个不对应的衣服区域,仅凭“附近大致是什么颜色”就降低去噪损失。独立平移/缩放打破位置共现,迫使人物 query 寻找真正相关的衣服区域。共同颜色增强则保持目标与衣服颜色一致,避免把颜色扰动误当目标变化。

原 Figure 4:无增强、增强、增强加 ATV 的注意力对照
原 Figure 4 · 无增强、增强、增强加 ATV 的注意力对照 · 原图来源

Eq. 4:把一行 attention 变成坐标重心

多头取平均后,将注意力重塑为 \(A\in\mathbb R^{H_q\times W_q\times h_k\times w_k}\),源衣服坐标为 \(G\in[-1,1]^{h_k\times w_k\times2}\)。固定原文写:

\[F_{ijn}=\frac1{h_kw_k} \sum_{k=1}^{h_k}\sum_{l=1}^{w_k} \left(A_{ijkl}G_{kln}\right).\tag{4 原式}\]

归一化疑点:若 A 是标准 key-softmax,每个 query 上权重已经和为 1,通常的重心应为求和而不再除以 key 数。原式额外除数会让坐标幅度收缩。当前代码确实用求和、不除 \(h_kw_k\),并使用 0…h−1 / 0…w−1 的像素坐标而非 [-1,1]。两者相差的不只是写法,TV 的量纲与有效正则强度都会改变。

Eq. 5–6:平滑的是重心场,不是直接使注意力稀疏

\[\mathcal L_{\mathrm{ATV}}=\|\nabla(F\odot M)\|_1,\qquad \mathcal L_{\mathrm{finetune}} =\mathcal L_{\mathrm{LDM}}+\lambda_{\mathrm{ATV}}\mathcal L_{\mathrm{ATV}}, \quad\lambda_{\mathrm{ATV}}=0.001.\tag{5–6}\]

M 为训练时真实衣服区域 mask。直觉是相邻目标人体位置应映射到连续的衣服位置,减少不规则对应;作者观察到更清晰的 attention 与图案。Author Claim:文章把它描述为中心更均匀分布、注意力更尖锐。Our Interpretation:TV 直接鼓励局部平滑,并没有显式保证均匀覆盖、单峰或低熵。

反例很简单:所有 query 都关注同一个 key,重心处处相同,TV 为零,但语义对应完全塌缩;一个单峰 attention 与左右对称双峰也可拥有相同重心,因而重心 TV 无法区分。它需要与去噪目标、增强、预训练先验共同工作。不能从 Eq. 5 单独推导“保证 sharp attention”。

公开代码采用的离散 ATV

\[\mathcal L_{\mathrm{TV,code}} =\frac{\sum_{i,j}M_{i+1,j}M_{i,j}\|F_{i+1,j}-F_{i,j}\|_1} {\sum_{i,j}M_{i+1,j}M_{i,j}} +\frac{\sum_{i,j}M_{i,j+1}M_{i,j}\|F_{i,j+1}-F_{i,j}\|_1} {\sum_{i,j}M_{i,j+1}M_{i,j}}.\]

代码只对两端都在有效区域的邻边求差,而原式 \(\nabla(FM)\) 会在 mask 边界把内外差纳入,因此并不逐字等同。公开 get_tvloss 分母没有 epsilon,空区域或没有有效邻边时存在除零风险。mask 来自 gt_cloth_warped_mask 的反相再反相路径,必须跟踪实际布尔语义,不可只从变量名推断。

ATV 只有 xformers 分支实现非零损失;触发条件为 cross-attention、key tokens 介于 700 和 3000、use_loss=True。512×384 设置中 32×24=768 满足,16×12=192 与 64×48=3072 不满足;warp 构造还用 idx%3==1 选择每组三块中的一块。故默认并非九个 attention 图都加 ATV。1024×768 的触发尺度会随 token 数变化,不能机械沿用“固定 32 分辨率”的说法。

普通 softmax fallback 返回 attn_loss=0,并且自定义调用额外 keyword 的兼容性需要检查;官方指定 xformers 环境不是可随意去掉而仍保证同一训练目标的优化开关。

固定 PDF 第 3–5 页 Eq. 1–6;attention.py 的 get_tvloss 与 MemoryEfficientCrossAttention。

06 · 数据、训练阶段与推理全过程

数据和前处理

正文分别在 VITON-HD 和 DressCode upper-body 上训练模型,使用相同数据域或跨数据域测试。VITON-HD 官方说明共有 11,647 训练对、2,032 测试对,原始 1024×768,主要为正面女性与上装商品图;它不代表所有体型、性别呈现、视角和衣物类别。DressCode 本文只用上装子集,不能把数据集全部多类别样本数量当成 StableVITON 训练量;固定论文未逐项报告该子集精确 train/test 数量,本次不补猜。

SHHQ-1.0 使用前 2,032 张图,按 VITON-HD 流程构造 agnostic、mask 和 DensePose;是跨域测试,不用于训练该模型。Web-crawled 图像只有可视化,未报告系统采集规模和量化协议。公开 dataset.py 主类为 VITONHDDataset,默认 paired 训练会将衣服文件名设成人物同名,unpaired 评估才读取 pairs 文件第二列。

README 列 cloth_mask 目录,而 dataset.py 实际读取 cloth-mask,运行前须按代码核对。训练 ATV 还需 gt_cloth_warped_mask;测试不用真实该 mask,创建零占位。所谓“无独立 warp”不能误读成训练/前处理没有人体分割信息。

完整阶段表

阶段训练对象优化设置用途
基础 try-on可训练空间分支与新增模块AdamW,固定 lr=10⁻⁴,batch 32,360k iterations学习配对重建与语义对应
ATV finetune在基础权重上继续训练同 lr/batch,36k iterations,λ=0.001正则对应重心场,改善局部细节
VAE decoder 微调分别在 VITON-HD/DressCode 上AdamW,lr=5×10⁻⁵,batch 32,10k iterations缓解脸部等细节的 autoencoder 重建误差;与主训练分开
高分辨率继续训练由已有模型渐进到 1024×768额外 85k iterations,其余训练设置同基础说明更清晰脸部和衣物细节,仅展示定性结果
报告成本四张 NVIDIA A100约 100 小时作者报告;未给详细分阶段显存/耗时拆分

完整扩散时间步为 1,000,配置 linear_start=0.00085、linear_end=0.012,latent scale=0.18215。U-Net 基础宽度 320、channel multipliers [1,2,4,4]、每级两 ResBlocks、8 attention heads、spatial transformer depth=1、context=768。VAE 基础宽度 128、四个 latent 通道、multipliers [1,2,4,4]。固定论文未给整体/可训练参数数目,不伪造统计。

增强的配对关系决定监督是否仍然有效

当前发布代码风险:README 命令传 shiftscale3,但 dataset.py 仅在列表含 shiftscale 时创建位移/缩放变换,shiftscale2/3 没有实现分支。照抄命令时仍有 resize/hflip 与颜色增强,但所描述的独立位移缩放可能未启用。即使改为 shiftscale,人物裁变后 gt_cloth_warped_mask 被从旧 transformed 字典取回,而不是 transformed_image,存在标签几何不同步风险;mask 还作为 image target 插值,可能形成软边界。这些是静态审计,未执行训练证明影响大小。

train.py 默认 max_epochs=1000 而非 max_steps=360k/36k,README ATV 命令也未明确限制阶段步数。复现实验应按 global_step 设置停止条件并保存实际样本曝光量,不能把命令跑到默认 epoch 终点后声称精确复现。默认精度 16、DDP、accum_iter=1,总 batch 32 分给 GPU。论文未说明 beta、weight decay、完整随机种子协议,代码采用 AdamW 默认未覆盖项。

推理

  1. 读取目标人物、衣服、agnostic/mask、DensePose,统一到模型分辨率。确保被遮区域不会残留原衣服关键信息
  2. VAE 编码人物条件和衣服,CLIP 提供全局条件。每一步运行空间分支与主 U-Net,以衣服特征引导噪声预测
  3. 论文使用 PLMS 50 steps;公开脚本 eta=0,50 步是去噪时间点数量,第一步还有额外网络预测,不能简单等同精确 50 次前向
  4. 解码最终 latent;若使用保存原背景的变体,必须明确采用论文的逐步替换还是代码的最终 RGB 合成

当前 inference.py 从人物真实 latent 的 q_sample(t=999) 初始化,而不是直接标准高斯;虽然残余信号很小,它并非严格纯噪声。它构造 unconditional_conditioning,却没有传 guidance scale,采样器默认 scale=1,因此默认不做额外 CFG 放大。训练 logging/validation 中有 scale=5 路径,不能据此把发布推理写成 CFG=5。训练以 0.2 概率用 learnable global vector 替代 CLIP 条件,但空间衣服条件仍然在,所谓 unconditional 不是完全无衣服条件。

固定 PDF 附录 A、D,第 11 页;VITON-HD 官方数据说明 · 数据增强 · 推理入口。

07 · 所有原始结果表与可支持结论

SSIM↑、LPIPS↓ 用 paired reconstruction;FID↓、KID↓ 用 unpaired 集合分布。两类问题不同:前者衡量与原图一致,后者衡量生成集合与真实集合的特征分布差异,并不直接证明目标商品身份完全保留。原表 KID 的展示倍率未在表头明确,本页原值保留,不自行换算。缺失项用 “-”,不当成零。

原 Table 1 · 同数据域全部方法与指标

Train / Test VITON-HD / VITON-HD D.C. Upper / D.C. Upper
Method SSIM LPIPS FID KID SSIM LPIPS FID KID
VITON-HD [3] 0.862 0.117 12.117 3.23 - - - -
HR-VITON [15] 0.878 0.1045 11.265 2.73 0.936 0.0652 13.820 2.71
LADI-VTON [20] 0.864 0.0964 9.480 1.99 0.915 0.0634 14.262 3.33
Paint-by-Example [33] 0.802 0.1428 11.939 3.85 0.897 0.0775 15.332 4.64
DCI-VTON [8] 0.880 0.0804 8.754 1.10 0.937 0.0421 11.920 1.89
GP-VTON [32] 0.884 0.0814 9.072 0.88 0.769 0.2679 20.110 8.17
Ours 0.852 0.0842 8.698 0.88 0.911 0.0500 11.266 0.72
Ours (RePaint [18]) 0.888 0.0732 8.233 0.49 0.937 0.0388 9.940 0.12

原 Table 1 来源;粗体/下划线按源表保留。

VITON-HD 上无 RePaint 的 FID 8.698,相比 DCI-VTON 8.754 只下降 0.056,约 0.64%;KID 0.88 与 GP-VTON 相同。其 SSIM=0.852 低于 GP-VTON 0.884,LPIPS=0.0842 也差于 DCI-VTON 0.0804。不能复述为“不加 RePaint 也全面超过”。DressCode 无 RePaint 的 SSIM 0.911、LPIPS 0.0500,也分别不及 DCI-VTON 0.937/0.0421。

加入 RePaint 后 VITON-HD 达 0.888/0.0732/8.233/0.49;DressCode 达 0.937/0.0388/9.940/0.12,其中 SSIM 0.937 与 DCI-VTON 相同。改善来自对非换装区域的保留与生成共同作用,不能全部归因于服装对应更精确。

原 Table 2 · 跨域全部方法与指标

Train / Test VITON-HD / D.C. Upper D.C. Upper / VITON-HD VITON-HD / SHHQ-1.0
Method SSIM LPIPS FID KID SSIM LPIPS FID KID FID KID
VITON-HD [3] 0.853 0.1874 44.257 28.82 - - - - 71.149 52.01
HR-VITON [15] 0.909 0.1077 19.970 7.35 0.811 0.2278 45.923 36.69 52.732 31.22
LADI-VTON [20] 0.901 0.1009 16.336 5.36 0.801 0.2429 31.790 23.02 24.904 6.07
Paint-by-Example [33] 0.889 0.0867 16.398 4.78 0.784 0.1814 15.625 7.52 26.274 9.830
DCI-VTON [8] 0.903 0.1217 23.076 12.03 0.825 0.1870 16.670 6.40 24.850 6.68
DCI-VTON (Aug.) [8] 0.898 0.1240 18.809 8.02 - - - - 24.368 6.11
GP-VTON [32] 0.724 0.3846 65.711 66.01 0.804 0.2621 52.351 48.68 - -
Ours 0.911 0.0603 12.581 1.70 0.817 0.1308 10.104 1.72 23.531 5.68
Ours (RePaint [18]) 0.938 0.0470 10.480 0.41 0.855 0.1173 9.714 1.35 21.077 5.10

原 Table 2 来源;粗体/下划线按源表保留。

VITON-HD→DressCode,无 RePaint 的 FID 12.581,比最好的基线 LADI-VTON 16.336 低 3.755,约 23.0%;RePaint 10.480 则约低 35.8%。DressCode→VITON-HD 的 LPIPS 从最佳基线 PBE 0.1814 降至 0.1308,约 27.9%,但无 RePaint SSIM 0.817 仍低于 DCI-VTON 0.825。SHHQ 无 RePaint FID 23.531,相对 DCI-VTON(Aug.) 24.368 约低 3.44%,优势存在但不是数量级差距。

跨域主要支持利用预训练生成先验处理不同背景与人物分布,而不是证明对任意姿态、遮挡、服装类别都泛化。GP-VTON 在 SHHQ 缺结果,原表也没有置信区间、重复运行方差或显著性检验。

原 Table 3 · 对齐操作的对照

Train / Test on VITON-HD SSIM LPIPS FID KID
ControlNet + Aug. 0.832 0.1157 9.81 1.81
ControlNet-W + Aug. 0.822 0.1124 9.66 1.57
Zero Cross-Attention Block + Aug. 0.850 0.0851 8.74 0.91

原 Table 3 来源;粗体/下划线按源表保留。

ControlNet 与 ControlNet-W 均加同样增强。预 warp 的 ControlNet-W 对 FID/KID 略有改善,但 SSIM 从 0.832 降到 0.822,不是所有指标上升;新增 cross-attention 达 0.850/0.0851/8.74/0.91,支持软对应优于直接相加的设计。对照仍包含模型结构和特征路径差异,不是只对某一单层替换的完全同构因果实验。

原 Table 4 · 增强与 ATV 消融,保留印刷异常

Aug. Attention TV Loss SSIM LPIPS FID FID
✗ ✗ 0.847 0.0969 9.35 1.33
✓ ✗ 0.850 0.0851 8.744 0.91
✓ ✓ 0.852 0.042 8.698 0.88

原 Table 4 来源;粗体/下划线按源表保留。

固定源异常一:最后两列表头都印为 FID;根据其他表和数值量级,末列很可能意指 KID,但本页保留原表头并在此解释。固定源异常二:最后一行 LPIPS=0.042,而 Table 1 同一 Ours 行为 0.0842。未找到作者对该差异的明确勘误,不能悄悄改数,也不能据 0.042 宣称 ATV 将 LPIPS 减半。

能稳妥计算的是增强使 FID 9.35→8.744,ATV 再到 8.698(仅再降 0.046,约 0.53%);图案细节改善需要结合 Fig. 10。无“只加 ATV、不加增强”一行,也没有置信区间,因此两因素完整独立效应与交互强度尚未测清。

所有原数来自固定 PDF 第 6–8 页,与同版原表 HTML逐行核对。

08 · 全部定性图、用户研究与高分辨率附录

Fig. 5 · VITON-HD 同域

原 Figure 5:VITON-HD 同域全部定性基线
原 Figure 5 · VITON-HD 同域全部定性基线 · 原图来源

与六种 baseline 比较衣服文字、边界、手臂和遮挡。作者特别说明 LOVE 图案的 L 被手臂/衣服遮挡时,应自然省略而非强行完整复制;这提醒我们“更多文字可见”不总是更准确。本文没有 OCR 指标量化字符保留,图像是定性证据。

Fig. 6–7 · VITON-HD 训练后跨域

原 Figure 6:VITON-HD 训练→DressCode
原 Figure 6 · VITON-HD 训练→DressCode · 原图来源
原 Figure 7:VITON-HD 训练→SHHQ,包括 DCI-VTON Aug.
原 Figure 7 · VITON-HD 训练→SHHQ,包括 DCI-VTON Aug. · 原图来源

Fig. 6 为 DressCode,Fig. 7 为 SHHQ,后者额外列 DCI-VTON(Aug.)。GAN 基线较难保持背景与身体,扩散基线通常较自然却可能丢失服装细节。给 DCI-VTON 加增强仍无法全面修复独立 warp 的错位,不等于证明所有 flow 方法必然失败。

Fig. 8 · 40 人用户研究

原 Figure 8:40 人用户研究完整原图;固定 PDF 第7页
原 Figure 8 · 40 人用户研究完整原图;固定 PDF 第7页 · 原图来源

每次展示一个 baseline 输出与 StableVITON 输出,让参与者按 fidelity、person attributes、clothing identity 二选一;跨域再问 background quality。原文未充分披露题目总数、分配方式、随机左右顺序、参与者背景、置信区间。本页保留完整图,并按横坐标顺序整理“偏好 Ours”的百分比,另一方为原图所示互补值,存在四舍五入到一位小数的情况。

Ours 获选率(%)VITON-HDHR-VITONPaint-by-ExampleLADI-VTONDCI-VTONGP-VTON
同域 Fidelity6572.5904072.550
同域 Person attributes5562.582.532.562.552.5
同域 Clothing identity72.57595657037.5
跨域 Fidelity958562.567.58097.5
跨域 Person attributes93.878.867.56578.897.5
跨域 Clothing identity97.581.37073.882.595
跨域 Background92.5955567.555-

LADI-VTON 在同域 fidelity 获 60%、person attributes 获 67.5%,明显高于 Ours;GP-VTON 在同域 clothing identity 获 62.5%,Ours 只有 37.5%。所以“用户研究所有项都更好”不成立。跨域 Ours 多数项目领先,但背景相对 PBE/DCI 的 55% 只是较小偏好;原图没有 GP-VTON 的跨域 background 柱,不补造。参与者喜好也不能替代身份隐私、体型公平性或尺码真实度评价。

Fig. 9–10 · 对齐模块与训练组件消融

原 Figure 9:ControlNet 原衣服/预warp与新增cross-attention
原 Figure 9 · ControlNet 原衣服/预warp与新增cross-attention · 原图来源
原 Figure 10:增强与ATV组件消融
原 Figure 10 · 增强与ATV组件消融 · 原图来源

Fig. 9 区分衣服原图与预 warp 两种 ControlNet 输入,说明直接位置相加对细微错位仍敏感。Fig. 10 逐步加入增强和 ATV,展示 PUMA 字母与线条变化;应与 Table 3/4 一起读,不能把图中更清晰直接转化成未测量的数量收益。

Fig. 11–12 · 反向跨域与失败案例

原 Figure 11:DressCode训练→VITON-HD
原 Figure 11 · DressCode训练→VITON-HD · 原图来源
原 Figure 12:遮挡物与配饰失败案例
原 Figure 12 · 遮挡物与配饰失败案例 · 原图来源

Fig. 11 为 DressCode 训练→VITON-HD。Fig. 12 明确展示遮挡人物的物体和手镯等配饰未保留:agnostic mask 把这些信息抹掉后,模型只拿到衣服条件,无法凭空恢复原物。作者把这一点留作未来工作,不是通过现有 RePaint 已完全解决。

Fig. 13–16 · 1024×768 全部附录网格

原 Figure 13:1024×768 VITON-HD全部结果
原 Figure 13 · 1024×768 VITON-HD全部结果 · 原图来源
原 Figure 14:1024×768 DressCode全部结果
原 Figure 14 · 1024×768 DressCode全部结果 · 原图来源
原 Figure 15:1024×768 SHHQ全部结果
原 Figure 15 · 1024×768 SHHQ全部结果 · 原图来源
原 Figure 16:1024×768 web-crawled全部结果
原 Figure 16 · 1024×768 web-crawled全部结果 · 原图来源

按顺序为 VITON-HD、DressCode、SHHQ-1.0、网络图像,全部由 VITON-HD 高分辨率模型生成。高分辨率由继续训练 85k 获得,不能归因于仅在推理时放大分辨率;这些网格没有对应 1024 指标表或等计算量基线。图像细节更清楚仍可能改变眼睛、细小饰物或商品局部文字。

09 · 论文与公开实现逐项对照

关键点论文/概念公开 master 静态证据影响
空间编码以衣服 latent 为输入的 trainable encoder13 通道人物 noisy condition 先卷积,再加入衣服 cond_first_block;还有 timestep 与 CLIP context不能简化成离线纯衣服 ReferenceNet 缓存
原始主干原 blocks 冻结encoder/middle no_grad;decoder 默认不进 optimizer新增块内 SA 与原 decoder SA 必须区分
输入卷积扩展到 13 通道,零初始化新增部分从专用 PBE_pose checkpoint 加载;原 encoder no_grad 令该卷积实际没有反传不能仅凭 optimizer 列表判断其被训练
ATV 坐标[-1,1] 坐标、额外除 key 数像素坐标求加权和,不额外除数λ 的数值不可跨实现直接复用
ATV 区域对 FM 的梯度有效区域内部邻边加权差与归一化边界行为不同;空 mask 可除零
ATV 层选择正文未逐层给触发规则700<key tokens<3000 且 idx%3==1默认不是所有尺度同时加同一个 loss
增强开关独立 shift/scaleREADME shiftscale3 与 dataset 分支 shiftscale 不匹配照抄命令可能缺最关键空间增强
mask 同步GT 衣服区域应与人物变换一致裁变后错误取旧 transformed 字典字段启用空间变换时需检查监督错位
RePaint逐步对已知区域重新加噪替换inference.py 没传 sampler mask/x0,--repaint 只在最终 RGB 粘回已知区域不能用该开关直接声称重现论文 RePaint 路径
起始噪声常规 diffusion 推理描述对人物 latent 用 q_sample(t=999)仍含极小原图残留,需公平比较同一初始化
CFG附录未详列系数推理默认1;validation/logging5;训练全局条件drop20%这些不是同一个设置
训练步数360k+36k默认 max_epochs=1000,无对应 max_steps 限制需手动按论文设置阶段终止
运行环境4×A100README Python3.10、torch2.0.0/cu117、PL1.5、xformers0.0.19 等版本兼容与依赖许可须独立验证,未执行安装

RePaint 与最终合成的区别

论文的思路可写为每步把已知区域的前向加噪 latent 拼回当前采样状态:

\[z_t\leftarrow m_{\mathrm{known}}\odot q_t(\mathcal E(x_a)) +(1-m_{\mathrm{known}})\odot z_t^{\mathrm{generated}}.\]

公开默认路径实际在全部去噪后做:

\[I_{\mathrm{out}}=m_{\mathrm{known}}\odot I_{\mathrm{person}} +(1-m_{\mathrm{known}})\odot I_{\mathrm{generated}}.\]

两者都可帮助保护未编辑区域,但边界融合、生成过程约束和重建指标影响不同。plms_hacked.py 内确有可选逐步 mask 分支,却需要 mask、x0、first_n_repaint 等参数,入口未传,默认不触发。不能看到函数存在就认定实际调用路径已经使用。

复现前的最小检查

  1. 锁定源码快照、依赖版本、基础/ATV/VAE checkpoint 与数据划分,确认是 512 还是渐进 1024
  2. 可视化前处理叠图并检查 mask 语义、遮挡保留、DensePose 版本,验证增强后人物和 GT mask 同步
  3. 记录每个参数组的梯度与更新范数,确认原始权重冻结、新增层获得梯度、ATV 在目标层确实非零
  4. 分别报告纯生成、论文式逐步替换、当前最终 RGB 合成,使用相同随机初始化/CFG/采样器和文件编码
  5. 量化衣服区域与保留区域的指标,增加 OCR/logo、身份变化、遮挡物保留和多 seed 方差,避免背景粘贴掩盖服装问题

本轮是只读代码审计,没有下载权重、训练、试穿真实人物、上传个人照片或执行第三方脚本。API 限流不影响已获取关键文件;缺少可验证 commit 的限制已记录,不把当前 master 称为作者原始实验的逐字快照。

10 · Reviewer 评论与 PMG 研究延伸

Strengths

方法把“生成”和“对齐”放到同一 latent 推理过程,避免独立 RGB warp 的早期错误锁死;空间特征路径补充 CLIP pooled token 的细节瓶颈。论文同时报告跨数据域结果、ControlNet 对照、组件消融和失败案例,覆盖范围比只展示同域试穿更有解释力。零初始化保留预训练行为,是将新结构接到大模型的稳健工程原则。

Weaknesses 与证据边界

ATV 的数学直觉过强:平滑重心不能保证 sharp attention,也不能保证双射、面积保持或拓扑一致。需要直接测注意力熵、多峰程度、对应误差与纹理频率保持,而非只凭热图。Table 4 排版与数值矛盾、发布训练命令与实现开关不一致,都限制精确复现。

背景保留影响 SSIM/LPIPS/FID,RePaint 变体的收益不能全部计作对齐能力。跨域无 RePaint 的效果确实较强,但少数关键指标只小幅改善,且没有统计显著性。用户研究有明确输给 LADI/GP 的项目,选择性只引用“多数领先”会遗漏真实 trade-off。

系统依赖预处理质量,遮挡物被 mask 擦掉后可能不可恢复;高分辨率有额外训练预算。数据主要来自特定拍摄与服装类别,未检验复杂穿层、极端姿态、尺码真实感、身体多样性。生成“像穿上”与预测“真的合身”是不同任务。

Research Extension 1:材质 exemplar 的多尺度软对应

把人物目标位置换成待编辑表面的 UV/渲染特征,把衣服 K/V 换成 exemplar 材质 patch,可研究在固定形状上保持纹理身份。必须额外处理 UV 接缝、各向异性、尺度与周期性;二维图像对应不是物理材质参数。对照应包括全局 CLIP 条件、直接特征相加、显式 flow 和 cross-attention,并用新形状/光照评测。

Research Extension 2:重心 TV 加上分布约束

ATV 的塌缩反例提示可以加入 attention entropy、局部协方差、循环一致性和覆盖约束,但这些目标会相互冲突:低熵有利清晰复制,高覆盖可能不适用于遮挡,cycle consistency 也不能强迫不可见区域双射。先在有真实对应的合成纹理上分别验证,再联合训练。

\[\mathcal L_{\mathrm{ext}}= \mathcal L_{\mathrm{denoise}}+ \lambda_{\mathrm{smooth}}\mathcal L_{\mathrm{centerTV}}+ \lambda_{\mathrm{cycle}}\mathcal L_{\mathrm{cycle}}+ \lambda_{\mathrm{phys}}\mathcal L_{\mathrm{physical}}.\]

此式为研究计划,不是论文实验。对所有项需有独立消融,不能把加入更多约束自动当作提高质量。

Research Extension 3:从局部条件注入到程序材质图

可训练编码分支可提取 exemplar 的局部结构,再指导程序材质图的节点选择与参数优化。但 StableVITON 本身不生成 DAG、节点 token、Substance 程序或可执行 graph。真正 PMG 系统仍需 typed ports、无环性、节点合法性、编译执行与 renderer feedback;连续 attention 无法替代离散拓扑有效性。

Research Extension 4:保留区域与待生成区域分开验收

借鉴 RePaint 的问题,材质编辑应分别测受保护通道/区域是否保持、目标纹理是否正确,以及新光照下是否出现烘焙阴影。避免通过最终 RGB 粘贴得到好指标,却失去可重光照的 albedo/roughness/normal。对“只修改粗糙度”等任务,建立严格通道不变性约束和渲染验证。

Research Extension 5:以初始化和梯度审计减少隐性实现偏差

零初始化适配器的第一步梯度、no_grad 的位置、optimizer 收录与实际更新不同步,都是可自动化检查的对象。针对新 PMG 模型,可为每个模块建立输入来源、可训练状态、梯度与输出扰动的测试,防止“框图说训练、代码实际冻结”的误差。

隐私与使用边界:试穿应使用有权处理的人像和商品图,避免未经同意改动真实人物衣着或制造误导内容。官方代码为 CC BY-NC-SA 4.0,数据与基础模型另有许可;研究结果不能直接推出商业授权。展示时标识合成,且不将其作为身体测量或购买尺码保证。

11 · 来源、归档候选与验收状态

  1. 固定 v1 PDF:全部 17 页、Eq.1–6、Tables1–4、Figures1–16、附录A–E
  2. 同版本 HTML:原表与大部分图片来源,缺图用固定 PDF 裁切
  3. 官方项目页:作者、机构、通讯作者、展示与代码入口
  4. 官方实现:README、train/inference/dataset、VITONHD.yaml、ControlLDM、warping 网络、attention、PLMS、CLIP image encoder;源码按文件 hash 保存
  5. VITON-HD 官方数据集;DressCode 官方数据集

原 note 完整前缀保留;建议元数据将通讯作者核实为 Sunghyun Park,会议信息追加 CVPR2024,保留原预印本版本。作者/People 与共享索引只有待整合计划,本次未修改真实 vault。

已完成内容与静态检查,HTML 严格小于 20 MB;MathJax 3 公式、内部锚点、原表数值、原笔记前缀与 PDF++ 链接均检查。远程图源做 HTTP 检查。真实浏览器 MathJax、图片加载布局和 1440/760/390px 响应式验收按用户要求延后,本页不宣称浏览器通过。