OOTDiffusion
论文
OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on
模型结构
该模型基于Stable Diffusion
,通过添加Outfitting Unet
学习衣物特征。
算法原理
该算法基于Stable Diffusion
,通过使用额外的Unet网络学习衣物特征,并使用cross-attention融入主干网络。
环境配置
Docker(方法一)
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-centos7.6-dtk24.04-py310
docker run --shm-size 10g --network=host --name=ottd --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it <your IMAGE ID> bash
pip install -r requirements.txt
Dockerfile(方法二)
docker build -t <IMAGE_NAME>:<TAG> .
docker run --shm-size 10g --network=host --name=ottd --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it <your IMAGE ID> bash
pip install -r requirements.txt
Anaconda (方法三)
1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装: https://developer.hpccube.com/tool/
DTK驱动:dtk24.04
python:python3.10
torch: 2.1.0
torchvision: 0.16.0
onnx: 1.15.0
Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应
2、其它非特殊库参照requirements.txt安装
pip install -r requirements.txt
数据集
名称 链接 VITON-HD githubSCNet 高速下载通道 Dress Code github
SCNet 高速下载通道
训练
cd train
mkdir -p checkpoints/unet_garm checkpoints/unet_vton
HIP_VISIBLE_DEVICES=0,1,2,3 python main.py
注意:该训练代码为非官方实现,目前仅支持VITON-HD
类数据集的训练。
推理
命令
半身
# model_path表示任务图片
cd OOTDiffusion/run
python run_ootd.py --model_path <model-image-path> --cloth_path <cloth-image-path> --scale 2.0 --sample 1
全身
# category = 0 上半身,1 下半身,2 裙子
cd OOTDiffusion/run
python run_ootd.py --model_path <model-image-path> --cloth_path <cloth-image-path> --model_type dc --category 2 --scale 2.0 --sample 1
webui
cd OOTDiffusion/run
python gradio_ootd.py
result
人物 衣物 结果 hd dc精度
ssim lpips 0.86 0.075注意:该精度在size=(512, 384)条件下训练及测试得到,与官方实现(未开源)可能存在不同。
应用场景
算法类别
AIGC
热点应用行业
零售,广媒,电商
预训练权重
model url OOTDiffusion huggingfaceSCNet 高速下载通道 clip huggingface
SCNet 高速下载通道
下载链接中的所有模型文件,并放入checkpoints
文件中。
checkpoints/
├── clip-vit-large-patch14
│ ├── config.json
│ ├── merges.txt
│ ├── preprocessor_config.json
│ ├── pytorch_model.bin
│ ├── special_tokens_map.json
│ ├── tokenizer_config.json
│ ├── tokenizer.json
│ └── vocab.json
├── humanparsing
│ ├── download.sh
│ ├── exp-schp-201908261155-lip.pth
│ ├── exp-schp-201908301523-atr.pth
│ ├── parsing_atr.onnx
│ └── parsing_lip.onnx
├── ootd
│ ├── feature_extractor
│ │ └── preprocessor_config.json
│ ├── model_index.json
│ ├── ootd_dc
│ │ └── checkpoint-36000
│ │ ├── unet_garm
│ │ │ ├── config.json
│ │ │ └── diffusion_pytorch_model.safetensors
│ │ └── unet_vton
│ │ ├── config.json
│ │ └── diffusion_pytorch_model.safetensors
│ ├── ootd_hd
│ │ └── checkpoint-36000
│ │ ├── unet_garm
│ │ │ ├── config.json
│ │ │ └── diffusion_pytorch_model.safetensors
│ │ └── unet_vton
│ │ ├── config.json
│ │ └── diffusion_pytorch_model.safetensors
│ ├── scheduler
│ │ └── scheduler_config.json
│ ├── text_encoder
│ │ ├── config.json
│ │ └── pytorch_model.bin
│ ├── tokenizer
│ │ ├── merges.txt
│ │ ├── special_tokens_map.json
│ │ ├── tokenizer_config.json
│ │ └── vocab.json
│ └── vae
│ ├── config.json
│ └── diffusion_pytorch_model.bin
├── openpose
│ └── ckpts
│ └── body_pose_model.pth
└── README.txt
源码仓库及问题反馈
ModelZoo / OOTDiffusion_pytorch · GitLab参考资料
GitHub - levihsu/OOTDiffusion: Official implementation of OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on GitHub - lyc0929/OOTDiffusion-train总结
### OOTDiffusion 概述**OOTDiffusion** 是一种基于 **Stable Diffusion** 的新型虚拟试衣模型,通过额外的 **Outfitting Unet** 网络学习衣物特征,并利用cross-attention机制与主干网络融合,以实现可控的虚拟试穿效果。该模型在零售、广媒和电商领域具有广泛的应用前景,属于 **AIGC** (Artificial Intelligence Generated Content)的范畴。
#### 模型结构
- 基于 **Stable Diffusion** 架构,增加了一个 **Outfitting Unet** 网络来专门学习衣物特征。
- 利用cross-attention机制,将衣物特征有效融入Stable Diffusion的主干网络。
#### 环境配置
OOTDiffusion 支持多种环境配置方式:
- **Docker** 方法提供了两种配置方案:
- 直接拉取Docker镜像后启动容器。
- 通过Dockerfile构建镜像并启动。
- **Anaconda** 环境下,需要特定版本的深度学习库,如 **torch** 2.1.0 和 **torchvision** 0.16.0,这些可通过光合开发者社区下载安装。
#### 数据集与训练
- **数据集** 包括 **VITON-HD** 和 **Dress Code**,均提供了下载链接。
- 训练代码非官方实现,仅支持 **VITON-HD** 格式的数据集,需设置正确的设备ID和存放路径后启动训练脚本。
#### 推理与预测
- **命令行方式** 可进行半身或全身的试穿预测,通过调整参数控制不同类型的服装和缩放比例。
- 提供了 Web 用户界面(通过 **gradio_ootd.py** 启动),用户可直观体验虚拟试穿效果。
#### 精度表现
在尺寸为 **(512, 384)** 的条件下训练和测试,模型的精度达到了 **SSIM** 0.86 和 **LPIPS** 0.075。
#### 应用场景
- **零售**:提供顾客在线试衣的解决方案,提升购物体验。
- **广媒**:用于广告展示,展示服装搭配效果。
- **电商**:作为商品介绍的一部分,肯加商品吸引力。
#### 预训练权重与代码仓库
- 提供了包括OOTDiffusion模型和Clip等在内的多个预训练权重下载链接。
- 源码仓库位于 GitLab,用户可查看最新代码并反馈问题。
### 关键技术与应用前景
OOTDiffusion 利用先进的扩散模型结合专门设计的衣物特征提取网络,实现了高效的虚拟试穿功能。其在多个行业的潜在应用场景显示出巨大的商业价值。随着技术的不断优化和完善,该模型有望进一步推动虚拟时尚产业的发展。