站点图标 高效码农

视频虚拟试衣抖動大?MagicTryOn如何用扩散Transformer破解行业难题?

全流程解析:MagicTryOn——基于扩散 Transformer 的视频虚拟试衣方案

随着线上购物和社交视频内容的爆炸式增长,用户对试穿体验的真实感和流畅度提出了更高要求。传统的基于图像的虚拟试衣方法往往只能处理静态场景,而一旦应用到视频序列,就会出现抖动、细节丢失以及与人体动作不匹配等问题。为了解决这些难题,浙江大学与 vivo 联合团队提出了 MagicTryOn——一种基于大规模视频扩散 Transformer(Diffusion Transformer,DiT)的端到端视频虚拟试衣框架。本文将带你全面了解 MagicTryOn 的设计思路、核心技术和实验结果,帮助读者快速掌握这一前沿方案的实现细节。


1. 背景与挑战

在视频虚拟试衣(Video Virtual Try-On,VVT)任务中,系统需要将目标服装自然地“穿”到真人视频的每一帧中,并保证:

  1. 时序一致性:前后帧服装的纹理、褶皱、光影变化要连续自然,避免闪烁或漂移;
  2. 细节保留:服装图案、材质质感、边缘轮廓等精细信息要高保真重建;
  3. 人体动作适配:随着人体动作变化,服装要做出合理的变形和遮挡处理。

传统方法多基于 U-Net 架构的扩散模型或 GAN,但在这三方面仍存在不足。MagicTryOn 的核心创新在于引入 Diffusion Transformer粗-细粒度保留策略,并配合 Mask 感知损失,显著提升服装细节和视频质量。


2. 系统架构总览

MagicTryOn 的整体流程如图所示:

  1. 输入准备

    • 原始人物视频帧及对应的姿态表示(Pose)。
    • 目标服装图像。
    • 去衣无关的人体分割 mask(Agnostic Mask)。
  2. 编码模块

    • 将人物视频帧和姿态送入 Wan Video Encoder,生成视频潜变量(Agnostic Latent)与姿态潜变量(Pose Latent)。
    • 将 mask 通过卷积映射到潜在空间,得到 Mask Latent。
  3. 扩散 Transformer(DiT)骨干

    • 将以上潜变量与随机噪声拼接后作为 Diffusion Transformer 的输入。
    • 同时将多级服装信息(文本、CLIP 特征、Patch Token、轮廓线 Token)注入到 Transformer 内部,提供粗粒度和细粒度服装指导。
  4. 解码模块

    • 经过若干步去噪后,Transformer 输出最终的潜变量序列,再由 Wan Video Decoder 解码成连续视频帧,得到最终试衣效果。

3. 多维服装信息提取

为了精准保留服装细节,MagicTryOn 引入了多种服装特征:

  1. 文本描述(Text Token)

    • 使用 Qwen2.5-VL-7B 对服装图像生成详细文字描述(如颜色、风格、图案等)。
    • 再通过 UmT5 编码器将文字转换为固定维度的文本 token,用于全局语义引导。
  2. 视觉特征(CLIP Token)

    • 利用 CLIP Encoder 抽取服装图像的视觉特征,补充文本描述无法覆盖的细节。
  3. Patch Token(Garment Token)

    • 将服装图像切分为小块(Patch),再通过训练好的 Patchfier 模块映射到潜在空间,生成一组 token,作为粗粒度引导。
  4. 轮廓线 Token(Line Token)

    • 通过 AniLines 模型提取服装轮廓线图,再同样切片编码为 token,用于注入细节边缘信息。

这种多层次、多模态的服装信息提取,能够在去噪过程中不断提醒模型“服装长什么样”,最大程度保留图案、褶皱、边缘等细节。


4. 粗粒度与细粒度保留策略

4.1 粗粒度保留

在 DiT 的输入阶段,将 Patch Token 直接拼接到视频帧潜变量的序列维度上,形成扩展序列。Transformer 的 全自注意力(Full Self-Attention)能够同时在空间和时间范围内建模不同 token 的交互,使得粗粒度服装信息在整个去噪过程中全局可见。

  • 关键改动:调整 Rotary Position Embedding,将原本的 [F,H,W] 网格扩展为 [F+1,H,W],保证新加入的服装 token 和视频帧 token 在同一位置编码空间。

4.2 细粒度保留

在 DiT 的每个 Transformer Block 内,插入两种跨注意力模块:

  1. 语义引导交叉注意力(Semantic-Guided Cross-Attention,SGCA)

    • Query 源自帧潜变量,Key-Value 分别来自 Text Token 与 CLIP Token,融合全局语义与视觉特征。
  2. 特征引导交叉注意力(Feature-Guided Cross-Attention,FGCA)

    • Query 同样来自帧潜变量,Key-Value 来自 Garment Token 与 Line Token,侧重纹理、边缘等低层特征。

两者输出相加,再与自注意力输出融合,确保语义与纹理细节共同作用。


5. Mask 感知损失

为了强化模型对服装区域的关注,MagicTryOn 在传统扩散 Loss 基础上,额外加入了 Mask-Aware Loss

[
L = \mathbb{E}|ϵ_θ(z_t,t,c) – ϵ|_2^2 ;+; λ,\mathbb{E}|M \odot (ϵ_θ(z_t,t,c) – ϵ)|_2^2
]

  • 第一项为标准去噪均方误差;
  • 第二项仅对服装区域(Mask M)加权,λ=1 时强调服装细节恢复。

该设计使模型在优化时额外惩罚服装区域的预测误差,进一步提升局部精度。


6. 数据集与训练细节

  • 图像数据:VITON‑HD(11,647 张 768×1024)与 DressCode(48,392 张 768×1024)
  • 视频数据:ViViD(7,759 段 624×832),含真人动态试衣场景

训练分两阶段:

  1. 粗调阶段:分辨率随机 256–512,15K 迭代,Batch=2
  2. 精调阶段:分辨率随机 512–1024,10K 迭代,Batch=2

使用 Wan2.1-Fun-14B-Control 预训练权重,Fine-tune 扩散 Transformer Block 与 Patchfier,冻结其他模块。优化器:AdamW,LR=1e-5。推理步数:20。


7. 实验结果与对比

7.1 图像试衣对比

在 VITON‑HD 与 DressCode 上对比多种 SOTA 方法,MagicTryOn 在 SSIM、LPIPS、FID、KID 等指标均取得最佳或近最佳表现。特别是**无配对(Unpaired)**场景下,FID 相比第二名降低超过 2 个点,表明跨样本通用性更强。

7.2 视频试衣对比

在 ViViD 与 VVT 数据集上,使用 VFID-I3D、VFID-ResNeXt、SSIM、LPIPS 等指标评估。MagicTryOn 在视频时序一致性(VFID)和局部质量(LPIPS)上都实现显著提升,生成效果更连贯,服装细节保留度更高。

7.3 消融实验

  • 去除 粗粒度策略:服装整体风格丢失,纹理变形严重;
  • 去除 SGCA 或 FGCA 任一分支:语义或纹理细节缺失,颜色或图案漂移;
  • 去除 Mask 感知损失:局部一致性下降,边缘出现锯齿或模糊。

可见三大模块缺一不可,协同作用下方能实现优异性能。


8. 应用与前景

MagicTryOn 凭借统一的 Transformer 架构,天然支持图像和视频两种场景,具备良好的扩展性和可定制性。结合多模态特征融合与 Mask 感知优化,能在电商行业、社交短视频、虚拟时装秀等领域带来沉浸式体验。未来可探索:

  • 实时推理加速:结合模型蒸馏技术,将去噪步数压缩至单帧;
  • 更多模态控制:加入语音、手势等交互方式,实现「说服装就穿」;
  • 个性化风格迁移:支持用户自定义纹理、图案风格,打造专属虚拟试衣间。

9. 小结

MagicTryOn 开创性地将大规模视频扩散 Transformer 与多层次服装信息融合,在保证时序连贯性的同时,细致保留服装纹理与轮廓,实现了业内领先的视频虚拟试衣效果。通过粗-细粒度保留策略与 Mask 感知损失的协同设计,提出了针对性极强的优化方案,为虚拟试衣技术带来新突破。相信随着算法与硬件的持续发展,更加真实、流畅的全场景虚拟试衣体验指日可待。

退出移动版