当前位置:AIGC资讯 > AIGC > 正文

ootdiffusion_pytorch AIGC虚拟衣物试穿算法模型

OOTDiffusion

论文

OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on

https://arxiv.org/pdf/2403.01779

模型结构

该模型基于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 github
SCNet 高速下载通道 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 huggingface
SCNet 高速下载通道 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 利用先进的扩散模型结合专门设计的衣物特征提取网络,实现了高效的虚拟试穿功能。其在多个行业的潜在应用场景显示出巨大的商业价值。随着技术的不断优化和完善,该模型有望进一步推动虚拟时尚产业的发展。

更新时间 2024-09-05