Skip to content

Latest commit

Β 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GarmentIQ: Automated Garment Measurement for Fashion Retail

🌐 Official website | πŸ“– Documentation | βš™οΈ Web pipeline | πŸͺ„ MagicBox | πŸ“„ Paper

Free & Open Source. Precise and flexible garment measurements from images - no tape measures, no delays, just fashion - forward automation.

πŸŽ‰ Update (09/11/2026): GarmentIQ now supports SAM 1, SAM 2, and SAM 3, plus natural-language (text) prompts for segmentation, a new matting module (ViTMatte and Matting Anything) for soft alpha edges, and an explicit device argument (cpu, cuda, mps) on every model function! Cheers! πŸ₯‚

GarmentIQ

Content:

  1. What Are the Key Features of GarmentIQ?
  2. Overview of GarmentIQ Python Package
  3. Tutorials
  4. Advanced Usage
  5. Trained Models for Classification
  6. Issues & Feedback
  7. License
  8. Acknowledgements

What Are the Key Features of GarmentIQ?

GarmentIQ uses computer vision and models like DeiT, BiRefNet, SAM, and HRNet to classify garments, remove backgrounds, and detect key features with precision. It turns expert know-how into an intuitive measurement system - no intensive coding required. Fully modular and customizable, it adapts to your workflows while delivering fast, accurate results out of the box.

Feature Web Demo Video guide
Tailor (the whole pipeline) Try web demo Watch video guide
Garment measurement instruction generation Try web demo Watch video guide
Garment image classification Try web demo Watch video guide
Garment image segmentation Try web demo Watch video guide
Garment landmark detection Try web demo Watch video guide
Garment landmark adjustment Try web demo Watch video guide

Overview of GarmentIQ Python Package

The garmentiq package provides an automated solution for garment measurement from images, utilizing computer vision techniques for classification, segmentation, and landmark extraction.

  • tailor: This module acts as the central agent for the entire pipeline, orchestrating the different stages of garment measurement from classification to landmark derivation. It integrates the functionalities of other modules to provide a smooth end-to-end process.

  • classification: This module is responsible for identifying the type of garment in an image. Its key functions include: fine_tune_pytorch_nn, load_data, load_model, predict, test_pytorch_nn, train_pytorch_nn, and train_test_split

  • segmentation: This module focuses on isolating garment features from the background for improved measurement accuracy. Its key functions include: change_background_color, extract, load_model, and process_and_save_images.

  • landmark: This module handles the detection, derivation, and refinement of key points on garments. Its key functions include: derive, detect, and refine.

  • matting: This module refines a hard segmentation mask into a soft alpha matte, so edges and semi-transparent detail composite naturally. Its key functions include: generate_trimap, load_model, matte, and composite.

  • grounding: This module turns a natural-language phrase into bounding boxes, which is what gives SAM 1 and SAM 2 text-prompted segmentation. Its key functions include: load_grounding_model, load_grounding_processor, and ground_text_to_boxes.

Common conventions

Every model-backed module follows the same two-step shape, so moving between them requires no relearning:

model = giq.<module>.load_model(...)        # 1. load weights onto a device
result = giq.<module>.<run>(model=model, image_path=..., device=...)   # 2. run on an image

where <run> is predict for classification, extract for segmentation, matte for matting, and detect for landmarks. Across all of them:

  • device is opt-in and identical everywhere. Every load_model and every inference function takes device, defaulting to "cpu". Pass "cuda" or "mps" explicitly to use an accelerator; nothing is auto-detected.

  • Accelerator memory is released automatically after each inference call.

  • Configurations are bundled. BiRefNet, every SAM variant and ViTMatte load their configs and processors from inside the package, so only weights need downloading.

  • Arguments are keyword-style. The examples throughout this README pass every argument by name, which is the supported way to call these functions.

  • A mismatched checkpoint warns. Weights are loaded leniently so partial checkpoints keep working, but if a checkpoint does not match the model class GarmentIQ raises a RuntimeWarning instead of silently returning a randomly initialised model.

  • Instruction Schemas: The instruction/ folder contains 9 predefined measurement schemas in .json format, which are utilized by the garment_classes.py file garment_classes dictionary to define different garment types and their predefined measurement properties. Users can also define their own custom measurement instructions by creating new dictionaries formatted similarly to the existing garment classes.

Tutorials

Each tutorial is a self-contained Colab notebook covering one part of the garmentiq Python API, from a single module up to the whole pipeline. Open one to read the explanation and run the code. For the full API reference, see our documentation.

GarmentIQ Example

⚠️ Note: If you encounter errors while running these notebooks in Colab, they are likely due to Python package version conflicts specific to the Colab environment. We recommend installing MagicBox on your local machine, where you can find and run these examples under working/examples/.

Installation

Please install from PyPI using the following command.

pip install garmentiq -q

Tutorial notebooks

Tutorial What it covers Open in Colab
Tailor (the whole pipeline) Run every stage end to end on a folder of images, then read the masks, annotated images, and measurements it writes out.
Classification Identify the garment type, which decides the landmarks and measurement instructions used by every later stage.
Segmentation Separate the garment from its background with BiRefNet or SAM 1, 2, and 3, using point, box, label, and text prompts.
Grounding Turn a natural-language phrase into bounding boxes, which is what gives SAM 1 and SAM 2 text-prompted segmentation.
Matting Refine a hard mask into a soft alpha matte with ViTMatte or Matting Anything, so edges composite naturally.
Landmark detection Locate the key points a measurement runs between, such as shoulders, sleeve ends, and hems.
Landmark refinement and derivation Snap detected landmarks onto the true garment edge, and compute extra points the model does not predict at all.

Advanced Usage

These notebooks go beyond everyday use: defining your own measurements, and training or fine-tuning the classification model on your own data.

⚠️ Note: If you encounter errors while running these notebooks in Colab, they are likely due to Python package version conflicts specific to the Colab environment. We recommend installing MagicBox on your local machine, where you can find and run these examples under working/examples/.

Notebook What it covers Open in Colab
Custom measurement instruction Define your own landmarks and measurements, then register them in a garment class dictionary.
Classification model training & evaluation Train the built-in CNN3 or a model you wrote yourself from scratch, then compare them on a held-out test set.
Classification model fine-tuning Adapt the pretrained tinyViT classifier to your own catalog by freezing the backbone and retraining the head.

Trained Models for Classification

We release the following models trained as part of this project. Models having _inditex_finetuned in their names means that they were finetuned on a small set of garment data from Inditex - Zara.

Model Test Accuracy Test F1 Score Fine-tune Accuracy Fine-tune F1 Score Link
cnn_3.pt 0.9458 0.9459 / / See the model
cnn_4.pt 0.9533 0.9533 / / See the model
tiny_vit.pt 0.9576 0.9576 / / See the model
cnn_3_inditex_finetuned.pt 0.9074 0.9068 0.9197 0.9216 See the model
cnn_4_inditex_finetuned.pt 0.9132 0.9137 0.9592 0.9585 See the model
tiny_vit_inditex_finetuned.pt 0.9484 0.9483 0.9916 0.9917 See the model

Issues & Feedback

Found a bug or have a feature request? Please open an issue on our GitHub Issues page.

License

GarmentIQ's Python API code is licensed under the MIT License.

Acknowledgements

We sincerely thank Adrian Gonzalez-Sieira and Laura Rodriguez-Barreiro from INDITEX for their invaluable suggestions and continuous support throughout this research. We are also grateful to everyone at ETH Zurich and the ETH AI Center for their coordination and collaborative efforts.

We gratefully acknowledge the use and adaptation of the following open-source resources:


Β© 2025 - 2026 GarmentIQ

"GarmentIQ" is a registered trademark. Unauthorized use, reproduction, or distribution is strictly prohibited and may result in legal action.

About

Free & Open Source. Precise and flexible garment measurements from images - no tape measures, no delays, just fashion - forward automation.

Topics

Resources

Stars

34 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages