MagicTryOn:基于扩散 Transformer 的服装保真视频虚拟试穿开源框架

原创 发布日期:
3

一、MagicTryOn是什么?

MagicTryOn是一个开源的视频虚拟试穿框架,其核心定位是“基于扩散Transformer的服装保真型虚拟试穿工具”——区别于传统仅支持单张图像的虚拟试穿方案,该框架首次将“大规模视频扩散模型”与“服装细节保留”深度结合,实现从单图到连续视频的高保真试穿效果。

从项目背景来看,传统虚拟试穿技术存在两大核心局限:一是时空一致性差(视频试穿时连续帧中服装位置、褶皱不连贯),二是服装保真度低(试穿后服装图案、纹理、结构细节丢失)。MagicTryOn通过扩散Transformer的全自注意力机制解决时空关联问题,再以“粗到细策略+掩码损失”保障服装细节,填补了“视频级高保真虚拟试穿”的开源技术空白。

项目的关键时间节点与定位可通过下表清晰呈现:

维度 核心信息
开发团队 vivo Camera Research( vivo影像研究团队)
技术定位 扩散Transformer驱动的视频虚拟试穿框架
发布时间 2025年5月27日:ArXiv论文发布;2025年6月9日:代码与预训练权重开源
许可证类型 Creative Commons BY-NC-SA 4.0(非商业用途可自由使用、修改,需保留署名)
核心解决痛点 1. 视频试穿时空不一致;2. 服装细节(图案、纹理、结构)丢失
目标用户 计算机视觉研究者、虚拟试穿技术开发者、电商内容创作者(非商业场景)

与传统虚拟试穿方案相比,MagicTryOn的核心差异如下:

对比维度 传统虚拟试穿方案 MagicTryOn
支持输入类型 以单张图像为主,视频支持有限 图像、视频、自定义多模态输入(含线图、姿态)
时空一致性处理 无专门机制,视频帧易脱节 全自注意力建模时空关联,连续帧连贯
服装保真策略 多依赖简单图像融合,细节易丢失 粗到细保留+掩码感知损失,细节还原度高
开源性与可扩展性 闭源工具多,开源方案功能单一 全代码开源,支持自定义试穿与二次开发
预训练模型支持 多基于小型卷积模型,效果有限 基于Wan2.1-14B大规模扩散Transformer,效果更优

二、MagicTryOn的功能特色

MagicTryOn的功能体系围绕“高保真”“多场景”“易扩展”三大目标设计,涵盖核心试穿功能与技术特色两大模块,具体如下:

2.1 核心试穿功能:覆盖图像、视频、自定义三大场景

MagicTryOn提供三类试穿能力,可满足不同用户的使用需求,具体功能细节如下表所示:

功能模块 核心能力 关键脚本/配置 适用场景
图像试穿 输入“人像图像+服装图像”,生成单张试穿结果;支持“高配置”(画质优)与“低配置”(速度快)两种模式 高配置:inference/image_tryon/predict_image_tryon_up.py;低配置:predict_image_tryon_low.py 电商商品详情页单图展示、快速试穿预览
视频试穿 输入“人像视频+服装图像”,生成连续帧试穿视频;保障帧间服装位置、褶皱一致性 高配置:inference/video_tryon/predict_video_tryon_up.py;低配置:predict_video_tryon_low.py 短视频平台服装展示、直播虚拟换装
自定义试穿 支持用户上传自有“人像视频/图像+服装”,需完成5步预处理(含服装描述、线图提取等),实现个性化试穿 预处理脚本:get_garment_caption.py(描述生成)、AniLines/infer.py(线图提取)等;推理脚本:predict_video_tryon_customize.py 设计师服装上身预览、个人自定义换装创作

以“自定义试穿”为例,其核心优势在于“支持多模态输入调控”——用户可通过“服装描述文本”(如“红色条纹衬衫,袖口有白色纽扣”)、“服装线图”(突出服装结构)、“DensePose姿态”(精准对齐人体与服装)进一步优化试穿效果,解决传统试穿中“服装与人体贴合度差”的问题。

2.2 技术特色:四大核心技术保障高保真效果

MagicTryOn的技术特色直接服务于“时空一致性”与“服装保真”两大核心目标,具体技术亮点如下:

(1)Wan2.1扩散Transformer:强大多模态骨干网络

MagicTryOn采用Wan2.1-I2V-14B作为基础骨干网络,该模型是专为视频生成设计的大规模扩散Transformer,具备两大优势:

  • 支持多模态输入:可同时处理图像、文本、姿态等信号,为试穿提供多维度调控能力;

  • 视频生成能力强:原生支持视频帧间关联建模,避免传统“图像拼接成视频”的脱节问题。

(2)全自注意力机制:解决视频时空一致性

传统视频试穿多采用“单帧独立处理+简单拼接”的方式,导致连续帧中服装位置、褶皱不连贯。MagicTryOn通过全自注意力机制,将视频的所有帧作为一个整体序列处理:

  • 空间注意力:建模单帧内“人体区域-服装区域”的关联,确保服装贴合人体;

  • 时间注意力:建模不同帧间服装的位置、形态变化,确保连续帧中服装过渡自然(如走路时衣角摆动连贯)。

(3)粗到细服装保留策略:还原服装细节

为避免试穿过程中服装图案、纹理、结构丢失,MagicTryOn设计“粗到细两阶段保留策略”:

  • 粗调阶段(Coarse Garment Preservation):基于服装掩码与人体姿态,确定服装在人体上的大致位置与轮廓,确保“服装不跑偏”;

  • 细调阶段(Fine Garment Preservation):结合服装线图(结构信息)、CLIP特征(纹理信息),优化服装细节(如条纹对齐、纽扣位置还原),实现“细节不丢失”。

(4)掩码感知损失:强化服装区域保真

MagicTryOn引入掩码感知损失(Mask-Aware Loss) ,专门针对“服装区域”优化模型训练:

  • 原理:通过服装掩码(标注服装的像素范围),让模型在训练时对“服装区域”的误差惩罚更重,对“背景/人体非覆盖区域”的误差惩罚更轻;

  • 效果:确保模型优先保障服装区域的画质与细节,避免“服装模糊但背景清晰”的反常识结果。

MagicTryOn:基于扩散 Transformer 的服装保真视频虚拟试穿开源框架

三、MagicTryOn的技术细节

MagicTryOn的技术架构围绕“输入处理-骨干网络-输出生成”三大模块展开,核心依赖扩散Transformer与多模态融合技术,具体架构与关键模块解析如下:

3.1 整体技术架构

MagicTryOn的架构可分为“多模态输入层”“特征编码层”“Wan2.1扩散Transformer层”“服装保留层”“输出生成层”五大模块,其流程如下图所示(文字描述):

[多模态输入] → [特征编码] → [Wan2.1扩散Transformer] → [粗到细服装保留] → [试穿结果输出]
 (人像/服装/视频 (CLIP/T5/DensePose (全自注意力建模 (掩码感知损失优化 (图像/视频)
  线图/文本描述)  特征提取)      时空关联)     服装细节)

各模块的输入输出与核心作用如下表所示:

架构模块 输入内容 核心处理逻辑 输出内容
多模态输入层 1. 人像数据(图像/视频);2. 服装数据(图像+描述文本+线图);3. 姿态数据(DensePose/OpenPose) 数据格式统一(如视频转帧、图像resize)、异常值过滤(如模糊图像剔除) 标准化的多模态数据(图像:256×256/512×512;视频:30fps,帧长≤60)
特征编码层 多模态输入层输出的标准化数据 1. 图像/视频:CLIP模型提取视觉特征;2. 文本描述:T5模型提取文本特征;3. 线图/DensePose:卷积网络提取结构/姿态特征 统一维度的多模态特征向量(维度:1024)
Wan2.1扩散Transformer层 特征编码层输出的特征向量 1. 全自注意力层:建模时空关联;2. 扩散采样层:基于噪声预测生成试穿特征;3. 残差连接:缓解梯度消失 初步试穿特征(含人体与服装的融合信息,但细节待优化)
服装保留层 初步试穿特征、服装掩码、服装线图特征 1. 粗调:掩码定位服装区域,调整服装轮廓;2. 细调:线图特征优化细节;3. 掩码感知损失计算与反向传播 高保真试穿特征(服装细节与时空一致性达标)
输出生成层 高保真试穿特征 1. 图像:特征转图像(反卷积+归一化);2. 视频:帧序列拼接+帧率调整(30fps) 最终试穿结果(图像:PNG/JPG;视频:MP4)

3.2 关键技术模块深度解析

(1)Wan2.1扩散Transformer骨干网络

Wan2.1是MagicTryOn的“核心动力”,其本质是一个视频专用扩散Transformer,区别于传统图像扩散模型(如Stable Diffusion),主要优化点如下:

  • 视频适配的扩散过程:传统扩散模型仅处理单张图像,Wan2.1将“时间步”与“视频帧索引”结合,让模型学习“帧间变化规律”;

  • 高效注意力计算:采用“时空分块注意力”(Spatio-Temporal Blocked Attention),在保证效果的同时降低计算量(支持处理≤60帧的视频);

  • 多模态融合接口:原生支持视觉、文本、姿态特征的融合,无需额外适配层,简化多模态试穿流程。

(2)粗到细服装保留策略的具体实现

该策略是保障服装细节的核心,具体分为两个阶段:

  • 粗调阶段:

  1. 输入“服装掩码”(标注服装的像素范围)与“人体姿态关键点”(如肩膀、腰部位置);

  2. 通过“姿态对齐算法”,将服装掩码映射到人体对应的区域(如衬衫掩码映射到人体上身区域);

  3. 生成“粗调服装特征”,确保服装与人体的大致位置匹配(避免服装穿在“身体外”)。

  • 细调阶段:

  1. 输入“服装线图”(由AniLines工具提取,含服装的领口、袖口、下摆等结构信息);

  2. 计算“线图特征与粗调服装特征的差异”,通过卷积网络优化粗调特征,让服装结构与线图一致;

  3. 引入CLIP视觉特征,对比“原始服装图像”与“试穿特征”的纹理相似度,确保图案、颜色不偏差。

(3)掩码感知损失的数学逻辑

掩码感知损失(L_mask)的核心是“差异化惩罚误差”,其计算公式如下:

L_mask = α × L_cloth + β × L_other

其中:

  • L_cloth:服装区域的损失(采用MSE损失,计算试穿结果与原始服装的像素差异);

  • L_other:非服装区域的损失(采用L1损失,计算试穿结果与原始人像的像素差异);

  • α、β:权重系数(MagicTryOn中默认α=5.0,β=1.0),确保模型优先优化服装区域。

通过该损失函数,模型在训练时会“重点关注服装区域的误差”,从而提升服装保真度。

3.3 依赖的第三方工具与模型

MagicTryOn的功能实现依赖多个开源工具与预训练模型,这些工具主要用于“多模态输入预处理”,具体如下表所示:

工具/模型名称 提供方/来源 在MagicTryOn中的作用 部署要求
Qwen2.5-VL-7B-Instruct 阿里云(Qwen系列) 生成服装描述文本(输入服装图像,输出如“蓝色牛仔外套,翻领设计”的caption) 需要下载预训练权重,部署时需指定模型路径
AniLines-Anime-Lineart-Extractor 开源项目(GitHub) 提取服装线图(从服装图像中分离出结构线条,用于细调阶段的服装结构保留) 权重需放入inference/customize/AniLines/weights目录
SCHP(Softmax Confidence with Hard Pixel Mining) 开源项目(GitHub) 生成服装掩码(标注服装的像素范围,用于粗调阶段的区域定位) 需要下载预训练 checkpoint,部署时指定路径
DensePose Facebook AI Research(FAIR) 生成人体UV坐标(精准描述人体表面每个像素的位置,用于服装与人体的贴合对齐) 依赖detectron2框架,需执行run.sh脚本部署
detectron2 Facebook AI Research(FAIR) 提供DensePose的运行环境(含姿态检测、坐标计算的基础组件) 需通过官方命令安装(参考FAIR文档)
OpenPose CMU Perceptual Computing Lab 辅助生成人体姿态关键点(用于粗调阶段的服装位置对齐) 可选依赖,若SCHP效果不佳可替换使用

MagicTryOn:基于扩散 Transformer 的服装保真视频虚拟试穿开源框架

四、MagicTryOn的应用场景

MagicTryOn的应用场景围绕“非商业用途”展开,覆盖电商、内容创作、时尚设计、科研教育四大领域,具体场景与价值如下表所示:

应用领域 具体场景描述 核心价值 操作流程示例
电商内容创作 服装商家(非商业推广)制作“虚拟试穿视频”,用于社交媒体(如小红书、抖音)展示商品 1. 无需实拍模特,降低拍摄成本;2. 快速生成多风格试穿视频(如不同身材人像试穿) 1. 准备“空白人像视频+服装图像”;2. 运行视频试穿脚本;3. 导出视频用于社交发布
短视频/直播 内容创作者制作“虚拟换装短视频”(如“一键换汉服”“日常穿搭展示”) 1. 无需实际穿搭,提升创作效率;2. 服装细节还原度高,内容真实感强 1. 拍摄个人空白人像视频;2. 自定义试穿(生成服装描述+线图);3. 生成换装视频
时尚设计 设计师预览“设计稿上身效果”(如将手绘服装稿转为图像,试穿到人像上) 1. 无需制作实物样品,降低设计成本;2. 快速调整设计细节(如颜色、图案) 1. 将设计稿转为服装图像;2. 生成服装线图与描述;3. 运行图像试穿脚本查看效果
计算机视觉研究 研究者基于该框架优化“虚拟试穿算法”(如改进服装保留策略、提升时空一致性) 1. 开源代码提供基础架构,减少重复开发;2. 预训练权重可直接用于微调实验 1. 基于现有代码修改“服装保留模块”;2. 用自定义数据集微调模型;3. 对比实验效果

场景案例:设计师服装上身预览

某时尚设计学生想预览“手绘牛仔外套”的上身效果,操作流程如下:

  1. 准备输入数据:

  • 空白人像图像(从网络下载无版权的空白上身人像);

  • 服装图像(将手绘牛仔外套扫描为数字图像,分辨率512×512);

  1. 预处理步骤:

  • 运行get_garment_caption.py,生成服装描述:“蓝色牛仔外套,翻领设计,袖口有纽扣,背后有刺绣图案”;

  • 运行AniLines/infer.py,提取牛仔外套的线图(突出翻领、袖口结构);

  • 运行gen_mask/app_mask.py,生成服装掩码(标注牛仔外套的像素范围);

  1. 推理步骤:

  • 运行图像试穿脚本(predict_image_tryon_up.py);

  • 查看输出结果,若刺绣图案不清晰,调整细调阶段的CLIP特征权重;

  1. 输出应用:

  • 将试穿结果插入设计报告,或分享到设计社区获取反馈。

五、MagicTryOn的使用方法

MagicTryOn的使用流程分为“环境配置→权重下载→推理(图像/视频/自定义试穿)”三大步骤,每个步骤需严格按照要求操作,避免报错。

5.1 环境配置:基于Conda创建专属环境

MagicTryOn对环境依赖要求严格,需确保Python、CUDA、PyTorch版本匹配,具体步骤如下:

(1)基础环境要求

依赖项 版本要求 说明
Python 3.12.9 官方推荐版本,其他版本可能导致依赖安装失败
CUDA 12.3 需与PyTorch版本匹配,低于12.3可能不支持Flash Attention
PyTorch 2.2 官方测试版本,建议通过官网命令安装(确保CUDA支持)
显卡内存 ≥16GB(图像试穿)/ ≥24GB(视频试穿) 低于该配置可能导致内存溢出,可尝试低配置脚本(low.py

(2)环境创建步骤

  1. 安装Conda(若未安装): 从Anaconda官网下载对应系统(Windows/Linux)的Conda,按向导安装。

  2. 创建并激活Conda环境: 打开终端(Linux)或Anaconda Prompt(Windows),执行以下命令:

  # 创建环境(指定Python版本)
  conda create -n magictryon python==3.12.9
  # 激活环境
  conda activate magictryon
  1. 安装依赖包(两种方式任选其一):

  • 方式1:通过requirements.txt安装(推荐,速度快): bash # 克隆项目仓库(若未克隆) git clone https://github.com/vivoCameraResearch/Magic-TryOn.git cd Magic-TryOn # 安装依赖 pip install -r requirements.txt

  • 方式2:通过environment.yaml安装(自动匹配环境,适合新手): bash conda env create -f environment.yaml

  1. 解决Flash Attention安装问题: 若执行pip install -r requirements.txt时Flash Attention安装失败(常见于Windows或CUDA版本不匹配),需手动下载对应版本的whl包安装:

  • 下载地址:Flash Attention官方下载页

  • 选择匹配版本:需对应Python(cp312)、CUDA(cu12)、PyTorch(torch2.2),如flash_attn-2.7.3+cu12torch2.2cxx11abiFALSE-cp312-cp312-linux_x86_64.whl

  • 安装命令: bash pip install flash_attn-2.7.3+cu12torch2.2cxx11abiFALSE-cp312-cp312-linux_x86_64.whl

5.2 权重下载:从Hugging Face获取预训练模型

MagicTryOn的预训练权重(MagicTryOn14BV1)托管在Hugging Face,需通过命令下载到本地,步骤如下:

  1. 进入项目根目录:

  cd Magic-TryOn
  1. 执行下载命令(使用HF镜像加速,避免连接超时):

  HF_ENDPOINT=https://hf-mirror.com huggingface-cli download LuckyLiGY/MagicTryOn --local-dir ./weights/MagicTryOn_14B_V1
  1. 验证下载结果: 下载完成后,./weights/MagicTryOn_14B_V1目录下应包含以下文件:

  • model.safetensors(模型权重文件,约28GB);

  • config.json(模型配置文件);

  • tokenizer_config.json(Tokenizer配置文件)。

若下载中断,可重新执行命令,Hugging Face CLI会自动续传。

5.3 推理步骤:图像、视频、自定义试穿

(1)图像试穿:快速生成单张试穿结果

适用场景:需快速预览单张服装试穿效果(如设计稿预览)。

操作步骤

  1. 准备输入数据:

  • datasets目录下创建image_tryon文件夹,内部按以下结构存放数据: datasets/image_tryon/ ├── person.jpg # 空白人像图像(无服装) └── cloth.jpg # 服装图像

  1. 修改参数(可选): 打开inference/image_tryon/predict_image_tryon_up.py,可调整以下参数:

  • image_size:输出图像尺寸(默认512×512,可改为256×256提升速度);

  • num_inference_steps:扩散采样步数(默认50,步数越多效果越好但速度越慢);

  • cloth_path/person_path:若输入路径与默认不同,需修改为实际路径。

  1. 执行推理命令:

  • 高配置(优先画质): bash CUDA_VISIBLE_DEVICES=0 python inference/image_tryon/predict_image_tryon_up.py

  • 低配置(优先速度,适合低显存显卡): bash CUDA_VISIBLE_DEVICES=1 python inference/image_tryon/predict_image_tryon_low.py (注:CUDA_VISIBLE_DEVICES=0指定使用第1块显卡,若只有1块显卡则设为0)

  1. 查看结果: 输出结果默认保存在inference/image_tryon/results目录下,文件名为tryon_result.jpg

(2)视频试穿:生成连续帧试穿视频

适用场景:需制作试穿短视频(如电商社交展示)。

操作步骤

  1. 准备输入数据:

  • datasets目录下创建video_tryon文件夹,内部按以下结构存放数据: datasets/video_tryon/ ├── person.mp4 # 空白人像视频(30fps,时长≤10秒) └── cloth.jpg # 服装图像

  1. 修改参数(可选): 打开inference/video_tryon/predict_video_tryon_up.py,可调整以下参数:

  • video_fps:输出视频帧率(默认30fps);

  • max_frames:处理的最大帧数(默认300,对应10秒视频);

  • cloth_path/person_video_path:修改为实际输入路径。

  1. 执行推理命令:

  • 高配置: bash CUDA_VISIBLE_DEVICES=0 python inference/video_tryon/predict_video_tryon_up.py

  • 低配置: bash CUDA_VISIBLE_DEVICES=1 python inference/video_tryon/predict_video_tryon_low.py

  1. 查看结果: 输出视频默认保存在inference/video_tryon/results目录下,文件名为tryon_result.mp4

(3)自定义试穿:支持自有数据的个性化试穿

适用场景:需使用自定义人像/服装数据(如个人换装、设计稿试穿),需完成5步预处理。

操作步骤总览

预处理1:生成服装描述 → 预处理2:提取服装线图 → 预处理3:生成服装掩码 → 预处理4:构建Agnostic表示 → 预处理5:获取DensePose → 执行推理

详细步骤

  1. 预处理1:生成服装描述(Caption)

  • 作用:为服装添加文本描述,辅助模型理解服装特征;

  • 准备数据:将服装图像放入datasets/garment/vivo/vivo_garment目录;

  • 执行命令: bash python inference/customize/get_garment_caption.py

  • 输出:在服装图像目录下生成caption.txt,包含服装描述文本。

  1. 预处理2:提取服装线图(Line Map)

  • 作用:提供服装结构信息,优化细调阶段的细节保留;

  • 准备工作:

    1. AniLines官网下载预训练权重;

    2. 将权重放入inference/customize/AniLines/weights目录;

  • 执行命令: bash python inference/customize/AniLines/infer.py --dir_in datasets/garment/vivo/vivo_garment --dir_out datasets/garment/vivo/vivo_garment_anilines --mode detail --binarize -1 --fp16 True --device cuda:1

  • 输出:vivo_garment_anilines目录下生成服装线图(如cloth_line.png)。

  1. 预处理3:生成服装掩码(Mask)

  • 作用:标注服装区域,用于粗调阶段的位置对齐;

  • 准备工作:

    1. 下载掩码生成模型checkpoint,放入inference/customize/gen_mask/ckpt目录;

    2. 按以下结构整理人像视频(需将视频命名为video.mp4): datasets/person/customize/ ├── video/ │ ├── 00001/ │ │ ├── video.mp4 # 自定义人像视频 └── image/(若为图像试穿则准备此目录)

  • 视频转图像帧: bash python inference/customize/video2image.py (输出:00001/images目录下生成帧图像,如0000.png

  • 生成掩码: bash python inference/customize/gen_mask/app_mask.py (注:若试穿下装/连衣裙,需修改app_mask.py第65行:下装用"lower_body",连衣裙用"dresses"

  • 输出:00001/masks目录下生成各帧的服装掩码。

  1. 预处理4:构建Agnostic表示(去服装人像)

  • 作用:生成“无服装的人像特征”,避免原始服装干扰试穿结果;

  • 执行命令: bash python inference/customize/get_masked_person.py --image_folder datasets/person/customize/video/00001/images --mask_folder datasets/person/customize/video/00001/masks

  • 输出:00001/agnostic目录下生成去服装人像帧。

  1. 预处理5:获取DensePose(人体UV坐标)

  • 作用:精准对齐服装与人体,提升贴合度;

  • 安装detectron2: bash pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu123/torch2.2/index.html

  • 执行命令: bash bash inference/customize/detectron2/projects/DensePose/run.sh

  • 输出:00001/image-densepose目录下生成DensePose坐标文件。

  1. 生成自定义试穿视频:

  • 图像帧转视频: bash python inference/customize/image2video.py (输出:00001目录下生成mask.mp4agnostic.mp4densepose.mp4

  • 执行推理: bash CUDA_VISIBLE_DEVICES=0 python inference/video_tryon/predict_video_tryon_customize.py

  • 查看结果:输出视频保存在inference/video_tryon/results/customize目录下。

六、常见问题解答(FAQ)

在使用MagicTryOn过程中,用户常遇到环境安装、权重下载、推理报错等问题,以下是高频问题的解决方案:

问题类别 常见问题 原因分析 解决方案
环境安装 安装Flash Attention时提示“CUDA版本不匹配” Flash Attention的whl包版本与本地CUDA版本不一致(如本地CUDA 12.2,下载了CUDA 12.3的包) 1. 查看本地CUDA版本(nvcc --version);2. 从Flash Attention官网下载对应CUDA/Python/Torch版本的whl包;3. 手动安装:pip install 包名.whl
权重下载 执行下载命令后提示“连接超时”或“HF镜像无法访问” 网络问题(HF官网访问不稳定)或镜像地址失效 1. 更换HF镜像(如HF_ENDPOINT=https://mirror.sjtu.edu.cn/huggingface);2. 手动从Hugging Face页面下载权重,解压到./weights/MagicTryOn_14B_V1目录;3. 检查网络代理是否正常
推理报错 运行试穿脚本时提示“Out of Memory (OOM)”(内存溢出) 显卡内存不足(如用8GB显卡运行视频试穿) 1. 切换为低配置脚本(如predict_video_tryon_low.py);2. 降低image_size(如从512×512改为256×256);3. 减少max_frames(视频试穿时,如从300改为100);4. 启用梯度检查点(修改脚本中use_checkpoint=True
推理报错 提示“FileNotFoundError: [Errno 2] No such file or directory: 'datasets/xxx'” 输入数据路径错误,或未按要求创建目录结构 1. 检查脚本中cloth_path/person_path是否与实际路径一致;2. 按“使用方法”中的要求创建目录结构(如datasets/image_tryon需包含person.jpgcloth.jpg);3. 确保预处理步骤(如视频转帧)已执行,生成所需文件
自定义试穿 生成的掩码与服装区域不匹配(如掩码覆盖人体而非服装) 掩码生成模型未正确识别服装,或未修改app_mask.py中的服装类型参数 1. 确保服装图像背景简单(避免复杂背景干扰识别);2. 若试穿下装/连衣裙,修改app_mask.py第65行的服装类型("lower_body""dresses");3. 替换为OpenPose生成姿态,辅助掩码定位
结果质量 试穿结果中服装图案模糊、纹理丢失 细调阶段参数未优化,或CLIP特征权重不足 1. 增加num_inference_steps(如从50改为100);2. 修改细调阶段的CLIP特征权重(在predict_video_tryon_customize.py中增大clip_weight参数);3. 重新生成服装线图(使用--mode detail模式确保结构清晰)
许可证问题 能否将MagicTryOn用于商业场景(如电商平台付费试穿服务) 项目许可证为CC BY-NC-SA 4.0,禁止商业用途 1. 仅可用于非商业场景(如个人创作、科研);2. 若需商业使用,需联系vivo Camera Research获取商业授权;3. 衍生作品需保留原作者署名,并采用相同许可证

七、相关链接

八、总结

MagicTryOn是vivo Camera Research推出的开源视频虚拟试穿框架,以“扩散Transformer(Wan2.1)”为核心,通过全自注意力机制解决视频试穿的时空一致性问题,结合“粗到细服装保留策略”与“掩码感知损失”保障服装细节保真度,支持图像试穿、视频试穿及自定义试穿三大场景。项目于2025年开源代码与预训练权重,基于CC BY-NC-SA 4.0许可证限非商业用途使用,依赖Qwen2.5-VL、AniLines、DensePose等工具实现多模态输入预处理,适用于电商内容创作、时尚设计预览、计算机视觉研究等领域。尽管当前仍有“Gradio App更新”“训练脚本发布”等待办事项,但已提供完整的推理流程与可扩展的代码架构,为开发者和研究者提供了高保真视频虚拟试穿的优质开源方案,有效填补了传统试穿技术在“视频一致性”与“服装保真”上的空白。

打赏
THE END
作者头像
人工智能研究所
发现AI神器,探索AI技术!