Image Segmentation
Transformers
PyTorch
English
garment-mask-generation
image-inpainting
fashion
garment-mask
densepose
human-parsing
Instructions to use Ekliipce/wearit-garment-mask with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Ekliipce/wearit-garment-mask with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-segmentation", model="Ekliipce/wearit-garment-mask")# Load model directly from transformers import GarmentMaskPipeline model = GarmentMaskPipeline.from_pretrained("Ekliipce/wearit-garment-mask", device_map="auto") - Notebooks
- Google Colab
- Kaggle
| # Guide: Upload to Hugging Face Hub | |
| This guide explains how to upload the WearIT Garment Mask model to Hugging Face Hub. | |
| ## Prerequisites | |
| 1. **Hugging Face Account** | |
| - Create an account at https://huggingface.co/join | |
| - Generate an access token at https://huggingface.co/settings/tokens | |
| - Use a "Write" token for uploading | |
| 2. **Install Hugging Face CLI** | |
| ```bash | |
| pip install huggingface_hub | |
| ``` | |
| 3. **Login to Hugging Face** | |
| ```bash | |
| huggingface-cli login | |
| # Enter your access token when prompted | |
| ``` | |
| ## Repository Structure for HF Hub | |
| Your repository should have this structure: | |
| ``` | |
| wearit-garment-mask/ | |
| ├── README.md # Model card (already created) | |
| ├── config.json # Model configuration (already created) | |
| ├── pipeline.py # GarmentMaskPipeline class (already created) | |
| ├── garment_mask_processor.py # Core processor | |
| ├── resize_image_processor.py # Image preprocessing | |
| ├── mask_utils.py # Utility functions | |
| ├── mappings.py # Body part mappings | |
| ├── requirements.txt # Dependencies (updated) | |
| ├── example_usage.py # Usage examples (already created) | |
| ├── .gitignore # Git ignore file (already created) | |
| │ | |
| ├── SCHP/ # SCHP module | |
| │ ├── __init__.py | |
| │ ├── networks/ | |
| │ └── utils/ | |
| │ | |
| ├── DensePose/ # DensePose wrapper | |
| │ └── __init__.py | |
| │ | |
| ├── densepose/ # DensePose from Detectron2 | |
| │ └── [densepose files] | |
| │ | |
| ├── detectron2/ # Detectron2 framework | |
| │ └── [detectron2 files] | |
| │ | |
| └── chkpt/ # Model checkpoints | |
| ├── DensePose/ | |
| │ ├── model_final_162be9.pkl | |
| │ ├── densepose_rcnn_R_50_FPN_s1x.yaml | |
| │ └── Base-DensePose-RCNN-FPN.yaml | |
| └── SCHP/ | |
| ├── exp-schp-201908301523-atr.pth | |
| └── exp-schp-201908261155-lip.pth | |
| ``` | |
| ## Method 1: Using Python API (Recommended) | |
| ### Step 1: Prepare the repository | |
| ```python | |
| from huggingface_hub import HfApi, create_repo | |
| # Initialize API | |
| api = HfApi() | |
| # Create repository (first time only) | |
| repo_id = "your-username/wearit-garment-mask" | |
| create_repo(repo_id, repo_type="model", exist_ok=True) | |
| ``` | |
| ### Step 2: Upload files | |
| ```python | |
| from huggingface_hub import upload_folder | |
| # Upload entire folder | |
| upload_folder( | |
| folder_path=".", | |
| repo_id=repo_id, | |
| repo_type="model", | |
| ignore_patterns=[ | |
| ".git/*", | |
| ".gitignore", | |
| "output/*", | |
| "*.pyc", | |
| "__pycache__/*", | |
| "*.tmp", | |
| "tmp/*", | |
| "densepose_/tmp/*" | |
| ] | |
| ) | |
| ``` | |
| ### Step 3: Verify upload | |
| Visit your model page: `https://huggingface.co/your-username/wearit-garment-mask` | |
| ## Method 2: Using Git (Alternative) | |
| ### Step 1: Clone the repository | |
| ```bash | |
| # Install git-lfs for large files | |
| git lfs install | |
| # Clone your HF repository | |
| git clone https://huggingface.co/your-username/wearit-garment-mask | |
| cd wearit-garment-mask | |
| ``` | |
| ### Step 2: Copy files | |
| ```bash | |
| # Copy all necessary files | |
| cp -r /path/to/your/project/* . | |
| # Track large files with git-lfs | |
| git lfs track "*.pkl" | |
| git lfs track "*.pth" | |
| git lfs track "*.bin" | |
| ``` | |
| ### Step 3: Commit and push | |
| ```bash | |
| git add . | |
| git commit -m "Initial upload of WearIT Garment Mask model" | |
| git push | |
| ``` | |
| ## Handling Large Checkpoint Files | |
| Model checkpoints are large (>100MB). Options: | |
| ### Option A: Include in Repository (Simple but large) | |
| ```python | |
| # Track with git-lfs | |
| git lfs track "chkpt/**/*.pkl" | |
| git lfs track "chkpt/**/*.pth" | |
| # Or using Python API | |
| upload_folder( | |
| folder_path=".", | |
| repo_id=repo_id, | |
| repo_type="model" | |
| ) | |
| ``` | |
| ### Option B: External Storage (Recommended for very large files) | |
| 1. Upload checkpoints to a separate storage (Google Drive, S3, etc.) | |
| 2. Modify `pipeline.py` to download checkpoints on first use: | |
| ```python | |
| from huggingface_hub import hf_hub_download | |
| def download_checkpoint_if_needed(checkpoint_name, cache_dir="./chkpt"): | |
| local_path = os.path.join(cache_dir, checkpoint_name) | |
| if not os.path.exists(local_path): | |
| # Download from HF Hub or external URL | |
| downloaded = hf_hub_download( | |
| repo_id="your-username/wearit-garment-mask-checkpoints", | |
| filename=checkpoint_name, | |
| cache_dir=cache_dir | |
| ) | |
| return downloaded | |
| return local_path | |
| ``` | |
| ### Option C: Host Checkpoints on HF Hub (Best practice) | |
| Create a separate repository for checkpoints: | |
| ```bash | |
| # Create checkpoint repository | |
| huggingface-cli repo create wearit-garment-mask-checkpoints | |
| # Upload checkpoints | |
| huggingface-cli upload wearit-garment-mask-checkpoints ./chkpt | |
| ``` | |
| Then reference in your main model: | |
| ```python | |
| from huggingface_hub import snapshot_download | |
| checkpoint_dir = snapshot_download( | |
| repo_id="your-username/wearit-garment-mask-checkpoints", | |
| cache_dir="./chkpt" | |
| ) | |
| ``` | |
| ## Testing Your Uploaded Model | |
| After uploading, test that it works: | |
| ```python | |
| from transformers import pipeline | |
| # Load from HF Hub | |
| pipe = pipeline( | |
| "image-segmentation", | |
| model="your-username/wearit-garment-mask", | |
| trust_remote_code=True | |
| ) | |
| # Test | |
| results = pipe("test_image.jpg", garment_types="upper") | |
| print("✓ Model loaded successfully from HF Hub!") | |
| ``` | |
| ## Updating Model Files | |
| ### Update specific files | |
| ```python | |
| from huggingface_hub import upload_file | |
| upload_file( | |
| path_or_fileobj="pipeline.py", | |
| path_in_repo="pipeline.py", | |
| repo_id=repo_id, | |
| repo_type="model" | |
| ) | |
| ``` | |
| ### Update entire repository | |
| ```python | |
| upload_folder( | |
| folder_path=".", | |
| repo_id=repo_id, | |
| repo_type="model" | |
| ) | |
| ``` | |
| ## Best Practices | |
| 1. **Version Control** | |
| - Tag releases: `git tag v1.0.0 && git push --tags` | |
| - Use semantic versioning | |
| 2. **Model Card** | |
| - Keep README.md updated with latest performance metrics | |
| - Add example images (create `example_images/` folder) | |
| 3. **License** | |
| - Clearly state licenses for all components | |
| - Apache 2.0 for your code | |
| - Respect DensePose (Apache 2.0) and SCHP (MIT) licenses | |
| 4. **Citations** | |
| - Credit original model authors | |
| - Provide BibTeX entries | |
| 5. **Testing** | |
| - Test model download and inference before announcing | |
| - Create a demo space on HF Spaces (optional) | |
| ## Creating a Gradio Demo (Optional) | |
| Create `app.py` for a HF Space: | |
| ```python | |
| import gradio as gr | |
| from pipeline import GarmentMaskPipeline | |
| # Initialize pipeline | |
| pipe = GarmentMaskPipeline(device="cpu") | |
| def process_image(image, garment_type): | |
| results = pipe(image, garment_types=garment_type) | |
| result = results[0] | |
| return result["masks"][garment_type]["person_mask"] | |
| demo = gr.Interface( | |
| fn=process_image, | |
| inputs=[ | |
| gr.Image(type="pil", label="Input Image"), | |
| gr.Dropdown(["upper", "lower", "dress"], label="Garment Type") | |
| ], | |
| outputs=gr.Image(type="pil", label="Generated Mask"), | |
| title="WearIT Garment Mask Generator", | |
| description="Generate garment masks for image inpainting" | |
| ) | |
| demo.launch() | |
| ``` | |
| ## Troubleshooting | |
| ### Large file errors | |
| ```bash | |
| # Increase git buffer | |
| git config http.postBuffer 524288000 | |
| # Or use git-lfs | |
| git lfs install | |
| ``` | |
| ### Authentication errors | |
| ```bash | |
| # Re-login | |
| huggingface-cli login --token YOUR_TOKEN | |
| ``` | |
| ### Module import errors | |
| - Ensure all dependencies are in `requirements.txt` | |
| - Test in clean environment before uploading | |
| ## Resources | |
| - [HF Hub Documentation](https://huggingface.co/docs/hub/index) | |
| - [Model Cards Guide](https://huggingface.co/docs/hub/model-cards) | |
| - [Git LFS Documentation](https://git-lfs.github.com/) | |
| ## Summary Checklist | |
| - [ ] README.md with complete model card | |
| - [ ] config.json with model configuration | |
| - [ ] pipeline.py with custom Pipeline class | |
| - [ ] requirements.txt with all dependencies | |
| - [ ] .gitignore for temporary files | |
| - [ ] Model checkpoints (in repo or external) | |
| - [ ] Example usage script | |
| - [ ] License file (LICENSE) | |
| - [ ] Test that model loads from HF Hub | |
| - [ ] (Optional) Create demo on HF Spaces | |
| Good luck with your upload! 🚀 | |