这是论文"改进野外真实虚拟试穿的扩散模型"的官方实现。
如果您喜欢,请给我们点个星星⭐!
待办事项
- 演示模型
- 推理代码
- 训练代码
环境要求
git clone https://github.com/yisol/IDM-VTON.git
cd IDM-VTON
conda env create -f environment.yaml
conda activate idm
数据准备
VITON-HD
您可以从VITON-HD下载VITON-HD数据集。
下载VITON-HD数据集后,将vitonhd_test_tagged.json移至test文件夹,将vitonhd_train_tagged.json移至train文件夹。
数据集目录结构应如下所示:
train
|-- image
|-- image-densepose
|-- agnostic-mask
|-- cloth
|-- vitonhd_train_tagged.json
test
|-- image
|-- image-densepose
|-- agnostic-mask
|-- cloth
|-- vitonhd_test_tagged.json
DressCode
您可以从DressCode下载DressCode数据集。
我们在这里提供了预先计算的densepose图像和服装说明。
我们使用detectron2来获取densepose图像,更多详情请参考这里。
下载DressCode数据集后,请按如下方式放置image-densepose目录和说明文本文件:
DressCode
|-- dresses
|-- images
|-- image-densepose
|-- dc_caption.txt
|-- ...
|-- lower_body
|-- images
|-- image-densepose
|-- dc_caption.txt
|-- ...
|-- upper_body
|-- images
|-- image-densepose
|-- dc_caption.txt
|-- ...
训练
准备工作
从这里下载sdxl的预训练ip-adapter(IP-Adapter/sdxl_models/ip-adapter-plus_sdxl_vit-h.bin)和图像编码器(IP-Adapter/models/image_encoder)。
git clone https://huggingface.co/h94/IP-Adapter
将ip-adapter移至ckpt/ip_adapter,将图像编码器移至ckpt/image_encoder
使用带参数的Python文件开始训练,
accelerate launch train_xl.py \
--gradient_checkpointing --use_8bit_adam \
--output_dir=result --train_batch_size=6 \
--data_dir=DATA_DIR
或者,您可以简单地运行脚本文件。
sh train_xl.sh
推理
VITON-HD
使用带参数的Python文件进行推理,
accelerate launch inference.py \
--width 768 --height 1024 --num_inference_steps 30 \
--output_dir "result" \
--unpaired \
--data_dir "DATA_DIR" \
--seed 42 \
--test_batch_size 2 \
--guidance_scale 2.0
或者,您可以简单地运行脚本文件。
sh inference.sh
DressCode
对于DressCode数据集,通过category参数指定要生成图像的类别,
accelerate launch inference_dc.py \
--width 768 --height 1024 --num_inference_steps 30 \
--output_dir "result" \
--unpaired \
--data_dir "DATA_DIR" \
--seed 42
--test_batch_size 2
--guidance_scale 2.0
--category "upper_body"
或者,您可以简单地运行脚本文件。
sh inference.sh
启动本地gradio演示
从这里下载人体解析的检查点。
将检查点放在ckpt文件夹下。
ckpt
|-- densepose
|-- model_final_162be9.pkl
|-- humanparsing
|-- parsing_atr.onnx
|-- parsing_lip.onnx
|-- openpose
|-- ckpts
|-- body_pose_model.pth
运行以下命令:
python gradio_demo/app.py
致谢
感谢ZeroGPU提供免费GPU。
感谢IP-Adapter提供基础代码。
感谢OOTDiffusion和DCI-VTON提供掩码生成。
感谢SCHP提供人体分割。
感谢Densepose提供人体密集姿态。
星标历史
引用
@article{choi2024improving,
title={Improving Diffusion Models for Authentic Virtual Try-on in the Wild},
author={Choi, Yisol and Kwak, Sangkyung and Lee, Kyungmin and Choi, Hyungwon and Shin, Jinwoo},
journal={arXiv preprint arXiv:2403.05139},
year={2024}
}
许可证
本仓库中的代码和检查点受CC BY-NC-SA 4.0许可证保护。