This is the unofficial implementation of 'SieveNet: A Unified Framework for Robust Image-Based Virtual Try-On'
Paper can be found from here
Dataset downloading and processing
Dataset download instructions and link of dataset can be found from official repo of CP-VTON and VITON
Put dataset in data folder
Usage
Clone the repo and install requirements through pip install -r requirements.txt
Traning
Coarse-to-Fine Warping module
In config.py set self.datamode='train' and self.stage='GMM'
then run python train.py
You can observe results while traning in tensorboard as below

Conditional Segmentation Mask generation module
In config.py set self.datamode='Train' and self.stage='SEG'
then run python train.py

Segmentation Assisted Texture Translation module
In config.py set self.datamode='Train' and self.stage='TOM'
then run python train.py

Testing on dataset
Please download checkpoint of all three modules from google drive and put them in checkpoints folder
For testing, in config.py set self.datamode='test'
For Testing of Coarse-to-Fine Warping module, Conditional Segmentation Mask generation module, and Segmentation Assisted Texture Translation module set self.stage='GMM', self.stage='SEG', and self.stage='TOM' respectively.
Here is testing result. For Coarse-to-Fine Warping module,
For Segmentation Assisted Texture Translation module,

Testing on custom image
- Please download checkpoint of all three modules from google drive and put them in
checkpointsfolder. - Please download caffe-model from here and put the model in
posefolder. - Generate human parsing from Self-Correction-Human-Parsing repo or from this colab demo.
SelectLIPdataset while generating human parsing. - Set input-image's, cloth-image's, and output of human parsing image's path in config file.
- Then run
python inference.pyOutput will be saved inoutputsfolder.
Update: Inference using colab
Please find inference code of Sievenet in 2nd part of this notebook
Acknowledgements
Some modules of this implementation is based on this repo
For generating pose keypoints, I have used learnopencv implementation of OpenPose