IDM-VTON
论文
Improving Diffusion Models for Virtual Try-on
模型结构
模型基于SDXL
,使用IP-Adapter
以及GarmentNet
(Unet
)提取衣物特征并加入主网络。
算法原理
使用self-attention
融合低级图像特征信息,使用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=idmvton --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
pip install bitsandbytes-0.42.0-py3-none-any.whl (whl文件夹中)
cd BasicSR && python setup.py develop
Dockerfile(方法二)
docker build -t <IMAGE_NAME>:<TAG> .
docker run --shm-size 10g --network=host --name=idmvton --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
pip install bitsandbytes-0.42.0-py3-none-any.whl (whl文件夹中)
cd BasicSR && python setup.py develop
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
flash-attn: 2.0.4
Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应
2、其它非特殊库参照requirements.txt安装
pip install -r requirements.txt
pip install bitsandbytes-0.42.0-py3-none-any.whl (whl文件夹中)
cd BasicSR && python setup.py develop
数据集
名称 | 链接 |
---|---|
VITON-HD | github SCNet 高速下载通道 |
Dress Code | github SCNet 高速下载通道 |
除了下载原始数据,该项目提供了用于测试的数据集,存放在datasets
中。
VITON-HD
train
|-- ...
test
|-- image
|-- image-densepose
|-- agnostic-mask
|-- cloth
|-- vitonhd_test_tagged.json
DressCode
|-- dresses
|-- images
|-- image-densepose
|-- dc_caption.txt
|-- ...
|-- lower_body
|-- images
|-- image-densepose
|-- dc_caption.txt
|-- ...
|-- upper_body
|-- images
|-- image-densepose
|-- dc_caption.txt
|-- ...
注意:其中image-denspose使用detectron2处理获得,具体参考 https://github.com/sangyun884/HR-VITON/issues/45 ,也可通过原文连接直接下载 。
训练
无
推理
命令行
VITON-HD
accelerate launch inference.py \
--width 768 --height 1024 --num_inference_steps 30 \
--pretrained_model_name_or_path <path/to/pretrained_models> \
--output_dir "result" \
--unpaired \
--data_dir <path/to/datasets/viton-hd> \
--seed 42 \
--test_batch_size 1 \
--guidance_scale 2.0
DressCode
accelerate launch inference_dc.py \
--width 768 --height 1024 --num_inference_steps 30 \
--pretrained_model_name_or_path <path/to/pretrained_models> \
--unet_path <path/to/pretrained_models/dc> \
--output_dir "result" \
--unpaired \
--data_dir <path/to/datasets/dress-code> \
--seed 42
--test_batch_size 1
--guidance_scale 2.0
--category "upper_body"
注意:以上默认使用多卡推理,可使用export HIP_VISIBLE_DEVICES=<设备号>
进行限制。
webui
python gradio_demo/app.py
注意:需要修改gradio_demo/app.py
中base_path='path/to/pretrained_models'
。
result
model | image | cloth | prompt | result |
---|---|---|---|---|
dc | Short Sleeves Round Neck Knit Dress | |||
a photo of Short Sleeve Round Neck T-shirts |
精度
无
应用场景
算法类别
AIGC
热点应用行业
零售,广媒,电商
预训练权重
名称 | 链接 |
---|---|
IDM-VTON | huggingface SCNet 高速下载通道 |
DC | huggingface SCNet 高速下载通道 |
ckpt/
├── densepose
│ └── model_final_162be9.pkl
├── humanparsing
│ ├── parsing_atr.onnx
│ └── parsing_lip.onnx
└── openpose
└── ckpts
└── body_pose_model.pth
pretrained_models/
├── dc
│ ├── config.json
│ └── diffusion_pytorch_model.bin
├── image_encoder
│ ├── config.json
│ └── model.safetensors
├── model_index.json
├── scheduler
│ └── scheduler_config.json
├── text_encoder
│ ├── config.json
│ └── model.safetensors
├── text_encoder_2
│ ├── config.json
│ └── model.safetensors
├── tokenizer
│ ├── merges.txt
│ ├── special_tokens_map.json
│ ├── tokenizer_config.json
│ └── vocab.json
├── tokenizer_2
│ ├── merges.txt
│ ├── special_tokens_map.json
│ ├── tokenizer_config.json
│ └── vocab.json
├── unet
│ ├── config.json
│ └── diffusion_pytorch_model.bin
├── unet_encoder
│ ├── config.json
│ └── diffusion_pytorch_model.safetensors
└── vae
├── config.json
└── diffusion_pytorch_model.safetensors