OOTDiffusion 快速上手指南:从环境配置到虚拟试穿推理的完整步骤
2026/8/24 2:16:33 网站建设 项目流程

OOTDiffusion 快速上手指南:从环境配置到虚拟试穿推理的完整步骤

【免费下载链接】OOTDiffusion[AAAI 2025] Official implementation of "OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on"项目地址: https://gitcode.com/GitHub_Trending/oo/OOTDiffusion

OOTDiffusion 是 AAAI 2025 论文 "OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on" 的官方开源实现,一个基于服装融合潜在扩散的可控虚拟试穿工具。给定一张人物图和一张服装图,它就能输出人物穿上目标服装后的效果图。项目提供半身、全身两套预训练模型,以及完整的推理代码和 Gradio 网页演示,权重下载齐全后即可运行。

OOTDiffusion 是什么:一套结合姿态与人体解析的试穿流水线

动手前了解内部流程,排查问题时会更从容。项目分为两段。

第一段是预处理。人物图先经 OpenPose 做姿态估计,再经人体解析模型(ONNX 格式,parsing_atr.onnx)得到 19 类语义分割图,覆盖头部、上装、下装、四肢、鞋等区域。两者结合计算出"哪些区域要替换、哪些区域要保留"的掩码 mask。

第二段是生成。把打掩码后的人物图与服装图送入基于 Stable Diffusion 的潜在扩散管线,输出多张试穿候选图。

两种模型类型需要区分:

  • hd(半身):在 VITON-HD 上训练,仅支持上身服装;
  • dc(全身):在 Dress Code 上训练,支持上装、下装、连衣裙,但必须显式指定类别。

环境准备与模型权重下载

项目只在 Linux(Ubuntu 22.04)上验证过。先克隆仓库:

git clone https://gitcode.com/GitHub_Trending/oo/OOTDiffusion

然后建 Python 3.10 环境。PyTorch 版本有固定要求,需要先装,再装其余依赖:

pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pip install -r requirements.txt

diffusers 0.24.0、onnxruntime 1.16.2、gradio 4.16.0 等版本都已在 requirements.txt 中固定,无需自己管理版本。

第二步是权重。仓库 checkpoints/README.txt 写明了 checkpoints/ 目录需要放入四部分:ootd(扩散模型权重)、humanparsing(解析模型,含 parsing_atr.onnx 与 parsing_lip.onnx)、openpose(姿态模型)、clip-vit-large-patch14。任一文件缺失都会在启动时直接报错,建议逐项核对到位。

一条命令推理:半身与全身模型的虚拟试穿

推理入口是 run/run_ootd.py。半身试穿命令:

cd OOTDiffusion/run python run_ootd.py --model_path <人物图> --cloth_path <服装图> --scale 2.0 --sample 4

生成 4 张候选图,写入 run/images_output/(out_hd_0.png 等);中间产物 mask.jpg 是区域掩码,结果不对时打开它能看出问题出在哪。

全身模型需要加两个参数 --model_type dc 和 --category:

python run_ootd.py --model_path <人物图> --cloth_path <服装图> --model_type dc --category 2 --scale 2.0 --sample 4

常用参数如下:

参数含义说明
--model_type模型类型hd 半身 / dc 全身
--category服装类别0 上装、1 下装、2 连衣裙
--scale引导强度默认 2.0
--step去噪步数默认 20,越大越慢
--sample候选图数量1~4
--seed随机种子-1 为随机

一条硬性规则:hd 模型只接受 category 0,传 1 或 2 会直接报错。

网页界面:启动 Gradio 演示

不想敲命令的话,项目自带 Web 界面(run/gradio_ootd.py):

cd OOTDiffusion/run && python gradio_ootd.py

页面默认监听 7865 端口,分半身、全身两个标签页,每页都内置 run/examples/ 下的人物与服装示例图,可直接点选测试。滑块可调节输出张数(1~4)、步数(20~40)、引导强度(1.0~5.0)和种子;全身页多一个服装类别下拉框,需与服装匹配选择。

注意:演示会把 hd 和 dc 两套模型分别加载到 GPU 0 和 GPU 1,需要双卡显存充足;单卡机器建议用命令行模式。

常见坑与排查

实践中容易遇到的问题:

  1. 启动即报文件找不到:基本是 checkpoints/ 目录不全,对照 ootd、humanparsing、openpose、clip-vit-large-patch14 四项逐一检查。
  2. hd 模型报 ValueError:几乎都是 category 不为 0 导致,半身模型只能试穿上装。
  3. 输入图被拉变形:代码会把人物图和服装图统一强制缩放到 768×1024,选竖构图、留白少的图作输入,避免过度拉伸。
  4. 首张图等待偏长:人体解析走 onnxruntime 的 CPU 执行器,不吃 GPU;这一段是耗时大头,属正常现象。
  5. 显存不足:先把 --sample 降到 1、--step 保持 20,再改用单样本的命令行模式。

另外,README 的 TODO 列表显示训练代码尚未放出,若目标是微调自有数据,需要先读论文。

建议先用 run/examples/ 内置示例图跑通全流程,确认各环节无误后再换成自己的图片,能省下不少排查时间。

【免费下载链接】OOTDiffusion[AAAI 2025] Official implementation of "OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on"项目地址: https://gitcode.com/GitHub_Trending/oo/OOTDiffusion

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询