Magic-TryOn

GitHub
525 46 较难 1 次阅读 1周前NOASSERTION图像视频
AI 解读 由 AI 自动生成,仅供参考

MagicTryOn 是一款基于大规模视频扩散 Transformer 的开源虚拟试衣框架,专为生成高质量、连贯的视频试衣效果而设计。它有效解决了传统方法在动态视频中难以保持衣物纹理细节、动作自然度以及时空一致性的痛点,让用户不仅能看到静态的上身效果,更能预览穿着新衣走动、转身时的真实动态表现。

该工具特别适合计算机视觉研究人员、AI 开发者以及时尚科技领域的设计师使用。研究人员可基于其开放的代码和训练脚本探索视频生成前沿技术;开发者能利用其提供的 14B 及 1.3B 预训练模型快速部署应用;设计师则可借助它进行创新的动态服装展示。

MagicTryOn 的技术亮点显著:首先,它以先进的 Wan2.1 扩散 Transformer 为核心骨架,确保了强大的生成能力;其次,采用全自注意力机制来建模时空一致性,让视频帧之间的过渡更加流畅自然;最后,创新性地引入了“由粗到细”的衣物保留策略及掩码感知损失函数,极大提升了衣物区域的还原度和保真度。目前,项目已公开源代码、推理演示及多版本权重,并支持在 VITON-HD 等公共数据集上复现结果,是探索下一代视频虚拟试衣技术的理想选择。

使用场景

某时尚电商平台的运营团队需要为新款夏季连衣裙制作动态展示视频,以在社交媒体上呈现不同模特试穿后的真实走动效果。

没有 Magic-TryOn 时

  • 静态展示局限大:只能生成静态试穿图片,无法展示衣物在模特转身、行走时的自然垂坠感和动态褶皱,导致用户难以判断上身效果。
  • 视频编辑成本极高:若需制作动态视频,必须聘请专业模特实拍或由后期团队逐帧进行复杂的绿幕合成,单条视频制作周期长达数天。
  • 衣物细节严重失真:传统视频迁移方法在处理大幅度动作时,容易导致服装纹理模糊、Logo 变形甚至出现闪烁伪影,破坏品牌质感。
  • 时空一致性差:生成的视频片段中,衣物与人体动作往往不同步,出现“衣服漂浮”或贴合不自然的尴尬画面,降低用户信任度。

使用 Magic-TryOn 后

  • 动态试穿一键生成:直接输入模特行走视频和目标服装图,Magic-TryOn 基于视频扩散 Transformer 即刻生成高质量的动态试穿视频,完美还原走动时的布料动态。
  • 大幅降本增效:无需实拍或繁琐后期,运营人员可在本地部署模型,将单条视频的制作时间从数天缩短至几分钟,显著降低营销成本。
  • 精细保留服装特征:借助其粗到细的服装保持策略和掩码感知损失,即使在大角度转身时,也能清晰保留面料纹理、印花图案及品牌 Logo 的细节。
  • 时空连贯性卓越:利用全自注意力机制建模,确保视频帧间过渡平滑自然,衣物紧紧贴合人体运动轨迹,彻底消除闪烁和错位现象。

Magic-TryOn 通过引入大规模视频扩散 Transformer,将高保真的动态虚拟试穿从昂贵的专业制作变成了可快速落地的自动化流程。

运行环境要求

操作系统
  • Linux
GPU
  • 必需 NVIDIA GPU
  • 示例命令指定单卡运行 (CUDA_VISIBLE_DEVICES=0/1)
  • 安装说明明确提及 CUDA 12.3 和 Flash Attention (cu12),暗示需要支持 CUDA 12 的较新显卡
  • 模型包含 14B 和 1.3B 版本,14B 版本推测需要高显存 (建议 24GB+),1.3B 版本需求较低
内存

未说明

依赖
notes1. 官方安装指南仅针对 Linux 环境 (提供 .whl 包为 linux_x86_64)。2. 必须手动安装与 Python 3.12.9、CUDA 12.3 和 Torch 2.2 严格匹配的 Flash Attention 版本。3. 自定义试穿流程需额外下载多个外部模型权重 (Qwen2.5-VL, AniLines, SCHP, DensePose 等) 并按特定目录结构存放。4. 基础模型基于 Wan2.1-I2V-14B,推理前需从 HuggingFace 下载约数十 GB 的权重文件。5. 许可证为 CC BY-NC-SA 4.0,仅限非商业用途。
python3.12.9
torch==2.2
flash_attn==2.7.3
transformers
diffusers
accelerate
opencv-python
pillow
detectron2
xformers
Magic-TryOn hero image

快速开始

logo

MagicTryOn:利用扩散Transformer实现服装保真度的视频虚拟试穿

arxiv  huggingface  GitHub  License 

MagicTryOn 是一个基于大规模视频扩散Transformer的视频虚拟试穿框架。1) 它采用 Wan2.1 扩散Transformer 作为骨干网络2) 并使用全自注意力机制来建模时空一致性3) 引入了由粗到精的服装保真策略,并结合掩码感知损失以提升服装区域的保真度method

📣 新闻

  • 2025/12/26: 🎉 我们已更新 MagicTryOn-1.3B 🤗HuggingFace
  • 2025/06/09: 🎉 我们很高兴地宣布,MagicTryOn代码 已经发布!快来看看吧!权重也已发布!!!。您可以通过 🤗HuggingFace 下载权重。
  • 2025/05/27: 我们的 论文已在 ArXiv 上发布,太棒了🥳!

✅ MagicTryOn 发布待办事项

  • ✅ 发布源代码
  • ✅ 发布推理演示和 14B 预训练权重
  • ✅ 发布定制化的试穿工具
  • ✅ 发布 MagicTryOn-1.3B 权重
  • [ ] 发布 MagicTryOn-Turbo

🤝 社区支持

当前版本的 MagicTryOn 是在公开数据集 VITON-HD、DressCode 和 ViViD 上训练的。如果社区有兴趣在真实场景的数据集上训练 MagicTryOn,以更好地支持实际的虚拟试穿场景,请随时联系我们。我们很乐意提供相应的训练脚本。

😍 安装

创建 conda 环境并安装依赖项

# python==3.12.9 cuda==12.3 torch==2.2
conda create -n magictryon python==3.12.9
conda activate magictryon
pip install -r requirements.txt
# 或
conda env create -f environment.yaml

如果您在安装 Flash Attention 时遇到错误,请根据您的 Python 版本、CUDA 版本和 Torch 版本,手动下载 安装包,并使用 pip install flash_attn-2.7.3+cu12torch2.2cxx11abiFALSE-cp312-cp312-linux_x86_64.whl 进行安装。

使用以下命令下载权重:

cd Magic-TryOn
HF_ENDPOINT=https://hf-mirror.com huggingface-cli download LuckyLiGY/MagicTryOn --local-dir ./weights/MagicTryOn_14B_V1

😉 推理演示

1. 图像试穿

您可以直接运行以下命令进行图像试穿演示。如果您想修改一些推理参数,请在 predict_image_tryon_up.py 文件中进行调整。

CUDA_VISIBLE_DEVICES=0 python inference/image_tryon/predict_image_tryon_up.py

CUDA_VISIBLE_DEVICES=1 python inference/image_tryon/predict_image_tryon_low.py

2. 视频试穿

您可以直接运行以下命令进行视频试穿演示。如果您想修改一些推理参数,请在 predict_video_tryon_up.py 文件中进行调整。

CUDA_VISIBLE_DEVICES=0 python inference/video_tryon/predict_video_tryon_up.py

CUDA_VISIBLE_DEVICES=1 python inference/video_tryon/predict_video_tryon_low.py

3. 自定义试穿

在进行自定义试穿之前,您需要完成以下五个步骤以获取所需内容:

  1. 服装描述文本
    为服装生成一段描述性文本,可用于条件控制或多模态控制。我们使用 Qwen/Qwen2.5-VL-7B-Instruct 来获取该描述文本。运行前,您需要指定文件夹路径。

    python inference/customize/get_garment_caption.py
    
  2. 服装线稿图
    使用 AniLines-Anime-Lineart-Extractor 提取服装的结构线条或草图。请从此 链接 下载预训练模型,并将其放入 inference/customize/AniLines/weights 文件夹中。

     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
    
  3. 掩码
    生成服装的不可知论掩码,这是试穿过程中进行区域控制所必需的。请 下载 获取不可知论掩码所需的检查点文件。该检查点需放置在 inference/customize/gen_mask/ckpt 文件夹中。

    (1) 您需要将视频重命名为 video.mp4,然后按照以下目录结构构建文件夹:

    ├── datasets
    │   ├── person
    |   |   ├── customize
    │   │   │   ├── video
    │   │   │   │   ├── 00001
    │   │   │   │   │   ├── video.mp4
    |   |   |   |   ├── 00002 ...
    │   │   │   ├── image
    │   │   │   │   ├── 00001
    │   │   │   │   │   │   ├── images
    │   │   │   │   │   │   │   ├── 0000.png
    |   |   |   |   ├── 00002 ...
    

    (2) 使用 video2image.py 将视频转换为图像帧,并保存到 datasets/person/customize/video/00001/images 文件夹中。

    (3) 运行以下命令以获取不可知论掩码。

     python inference/customize/gen_mask/app_mask.py
     # 如果提取下装或连衣裙的掩码,请修改第65行。
     # 如果是下装:
     # mask, _ = get_mask_location('dc', "lower_body", model_parse, keypoints)
     # 如果是连衣裙:
     # mask, _ = get_mask_location('dc', "dresses", model_parse, keypoints)
    

    完成上述步骤后,您将在 datasets/person/customize/video/00001/masks 文件夹中获得所有视频帧的不可知论掩码。

  4. 不可知论表征
    通过去除服装特有特征来构建人物的不可知论表征。您可以直接运行 get_masked_person.py 来获取不可知论表征。请确保修改 --image_folder--mask_folder 参数。生成的视频帧将存储在 datasets/person/customize/video/00001/agnostic 文件夹中。

  5. 密集人体坐标(DensePose)
    使用 DensePose 获取经过 UV 映射的密集人体坐标,以便更好地进行空间对齐。

    (1) 安装 detectron2

    (2) 运行以下命令:

     bash inference/customize/detectron2/projects/DensePose/run.sh
    

    (3) 生成的结果将存储在 datasets/person/customize/video/00001/image-densepose 文件夹中。

完成以上步骤后,运行 image2video.py 文件以生成所需的自定义视频:mask.mp4agnostic.mp4densepose.mp4。然后,运行以下命令:

CUDA_VISIBLE_DEVICES=0 python inference/video_tryon/predict_video_tryon_customize.py

😘 致谢

我们的代码基于 VideoX-Fun 修改而来。我们采用 Wan2.1-I2V-14B 作为基础模型。我们使用 SCHPopenposeDensePose 来生成掩码。我们使用 detectron2 生成密集人体坐标。我们使用 Qwen/Qwen2.5-VL-7B-Instruct 生成服装描述文本,并使用 AniLines-Anime-Lineart-Extractor 获取服装线稿图。感谢所有贡献者!

😊 许可证

所有材料,包括代码、检查点和演示,均根据 知识共享署名-非商业性使用-相同方式共享 4.0 协议提供。只要您给予适当的署名并以相同的许可证分发您的贡献,您就可以出于非商业目的自由复制、再分发、混编、转换和扩展本项目。

⭐ 星标历史

星标历史图表

🤩 引用

@article{li2025magictryon,
  title={MagicTryOn: 利用扩散Transformer实现服装保留的视频虚拟试穿},
  author={李广源、郑思明、张浩、陈锦伟、栾俊生、欧彬凯、赵磊、李博、蒋鹏涛},
  journal={arXiv预印本 arXiv:2505.21325},
  year={2025}
}

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|1周前
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|1周前
开发框架图像Agent