MODA is an open-source benchmark and model family for fashion retrieval, built by Hopit AI. It covers both halves of fashion search: finding products from an image, and finding products from a text description. Everything is MIT licensed and reproducible from the repository.
| Model | What it is | Availability |
|---|---|---|
| MODA (203M) | Zero-new-parameter serving recipe over frozen FashionSigLIP; 4 of 6 statistically significant full-corpus wins over its own base | open source + open weights |
| MODA Pro Lite (213M) | Trained encoder (verified fashion-vocab build of a SigLIP2 base); beats MODA on catalog search as a plain bi-encoder, with no serving recipe required | open weights |
| MODA Pro | Our hosted retrieval system. Rank 1 or 2 on 9 of 10 benchmark cells at single-model query latency and cost | closed · hosted by Hopit AI |
| MODA-SigLIP-Distilled (203M) | Image-to-image specialist. #1 open model on LookBench | open weights (+3 variants) |
Finding products from a written description. Two claims, smallest class first. Every number is full-corpus MAP@10 through one shared harness, no gallery subsampling anywhere.
The size class most production deployments use. Best per row in green, second in bold:
| Benchmark (corpus) | FashionSigLIP 203M | MODA 203M | MODA Pro Lite 213M |
|---|---|---|---|
| KAGL (44K) | 0.2769 | 0.2890 | 0.3185 |
| Polyvore (94K) | 0.3665 | 0.3726 | 0.3997 |
| Atlas (78K) | 0.1826 | 0.1884 | 0.1945 |
| Fashion200K (202K) | 0.1858 | 0.1947 | 0.1802 |
| DeepFashion In-Shop (53K) | 0.1587 | 0.1703 | 0.1031 |
| DeepFashion Multimodal (43K) | 0.0148 | 0.0147 | 0.0118 |
Every benchmark in this class is led by a MODA-family model except DeepFashion Multimodal, where frozen FashionSigLIP itself holds a 0.8% edge. MODA Pro Lite owns catalog and title search (KAGL +10.2%, Polyvore +7.3% over MODA, both significant under a paired bootstrap) from a single checkpoint with no serving machinery; MODA owns caption-style and instance retrieval, with 4 of 6 wins over FashionSigLIP statistically significant under a paired bootstrap (confidence intervals in the repository).
ZooClaw-FashionSigLIP2 (375M, Xue & Xu 2026) and SigLIP SO400M-384 (878M) measured at full corpus through the same harness; the pipeline reproduces published FashionSigLIP within +0.08%. Values come from a single aligned run. Best per row in green, second in bold.
| Benchmark (corpus) | FashionSigLIP 203M | MODA 203M | SO400M 878M | ZooClaw 375M | MODA Pro Lite 213M | MODA Pro hosted |
|---|---|---|---|---|---|---|
| KAGL (44K) | 0.2769 | 0.2890 | 0.3370 | 0.2951 | 0.3185 | 0.3263 |
| Polyvore (94K) | 0.3665 | 0.3726 | 0.4378 | 0.3804 | 0.3997 | 0.4088 |
| Atlas (78K) | 0.1826 | 0.1884 | 0.2309 | 0.1583 | 0.1945 | 0.2053 |
| Fashion200K (202K) | 0.1858 | 0.1947 | 0.1353 | 0.1775 | 0.1802 | 0.2101 |
| DeepFashion In-Shop (53K) | 0.1587 | 0.1703 | 0.1695 | 0.1024 | 0.1031 | 0.1762 |
| DeepFashion Multimodal (43K) | 0.0148 | 0.0147 | 0.0079 | 0.0099 | 0.0118 | 0.0144 |
MODA Pro is rank 1 or 2 on every row above, and on 9 of 10 cells once the H&M and ZooClaw-Fashion query sets are included (receipts in the repository), making it the only system in the comparison without a bad benchmark. Its mean gain over MODA on these six is +6.9% (peak +12.9%). The 878M SO400M wins the three generic-catalog benchmarks and pays 1152-d vectors on every query; ZooClaw leads only on its own vendor-constructed query sets. MODA Pro Lite is the strongest open single model at ≤250M on catalog search (KAGL +10.2%, Polyvore +7.3% over MODA, both significant under a paired bootstrap), from one checkpoint with no serving machinery.
The evaluation is self-declared and non-blind: benchmark results were known during development. The comparison protocol (one harness, identical preprocessing per model, full corpus only) is reproducible from the repository, and each model's losses are shown, not hidden.
Finding visually similar products from a photo, measured on LookBench (2,345 queries), the live fashion retrieval benchmark from SerendipityOne (Gao et al., 2026). FashionSigLIP was reproduced in the repository before any comparison was made.
| Model | Params | Dim | Fine R@1 | nDCG@5 | Δ vs FashionSigLIP |
|---|---|---|---|---|---|
| MODA-SigLIP-Distilled | 203M | 768 | 67.63 | 53.85 | +3.79 |
| MODA-SigLIP-Matryoshka @256d | 203M | 256 | 67.42 | 57.48 | +3.58 |
| MODA-SigLIP-DeepFashion2 | 203M | 768 | 66.52 | 52.46 | +2.68 |
| Tianmu-MERE (Kuaishou) | 1.24B | 512 | 65.99 | 52.37 | +2.15 |
| FashionSigLIP (our reproduction) | 203M | 768 | 63.84 | 49.63 | baseline used here |
| FashionSigLIP (published) | 203M | 768 | 62.77 | 49.44 | baseline (paper) |
Tianmu-MERE, the top open model on the LookBench multi-attribute leaderboard, was evaluated through this same harness (weighted across the four subsets); it reproduces its own published subset scores within 0.5 points, which independently validates the harness. MODA-SigLIP-Distilled leads it on all four subsets, on Fine R@1 and nDCG@5 alike, at 6× fewer parameters.
On LookBench, 256 dimensions matches 768 on Fine Recall@1, so a three times smaller index costs no measurable quality. With binary codes plus a Hamming-distance rerank, quality holds at 32 bytes per vector.
| Your workload | Use | Why |
|---|---|---|
| Catalog / title search (marketplace queries: "red floral maxi dress") | moda-pro-lite | Strongest ≤250M on catalog benchmarks (KAGL +10.2% over MODA); plain bi-encoder. Drop into any vector DB, no serving code |
| Caption-style or exact-item search (long descriptions, instance retrieval) | MODA | Leads the ≤250M class on Fashion200K, In-Shop, and Multimodal; 4 of 6 significant wins over FashionSigLIP |
| Best possible text search, no integration work | MODA Pro (hosted) | Rank 1 or 2 on 9 of 10 benchmarks at single-model latency. The only system with no bad benchmark |
| Find visually similar products from a photo | moda-fashion-distilled | #1 open model on LookBench (Fine R@1 67.63, above a 1.24B model) |
| Same, but index size matters | moda-fashion-matryoshka @256d | 3× smaller index at no measurable quality loss; 32 bytes/vector with binary + Hamming rerank |
| Edge / mobile deployment | moda-fashion-vision-fp16 | 186 MB vision tower |
| Cheapest possible robust default | MODA | Best worst-case of any single system; cheapest index build; CPU-servable |
All models serve on CPU. Where a model is the wrong pick, its row above says so implicitly. Pro Lite is not the choice for instance retrieval (it loses In-Shop badly), and MODA is not the choice for marketplace titles. Full loss tables: repository.
| Model | Task | Params | Dim | Best for |
|---|---|---|---|---|
| moda-fashionsiglip-multiview-203m | Text to image | 203M | 768 | Searching a catalog in plain language. Zero added parameters. |
| moda-pro-lite | Text to image | 213M | 768 | Strongest open catalog-search checkpoint; plain bi-encoder, no recipe |
| moda-fashion-distilled | Image to image | 203M | 768 | Best overall quality |
| moda-fashion-matryoshka | Image to image | 203M | 64–768 | Choose your dimension at query time |
| moda-fashion-distilled-512d | Image to image | 203M | 512 | Compact indexes at no quality loss |
| moda-fashion-vision-fp16 | Image to image | 93M vision | 768 | Edge and mobile (186 MB) |
| moda-fashion-deepfashion2 | Image to image | 203M | 768 | Simplest reproducible recipe |
Text to image, searching a catalog in plain language:
pip install "git+https://huggingface.co/HopitAI/moda-fashionsiglip-multiview-203m"
python inference.py --gallery ./my_catalog --query "red floral summer dress"
Image to image, finding visually similar products:
huggingface-cli download HopitAI/moda-fashion-deepfashion2 --local-dir ./moda-fashion-deepfashion2
python inference.py --image path/to/image.jpg
MODA is an open-source benchmark and model family for fashion retrieval, built by Hopit AI. It provides an end-to-end fashion search pipeline measured component by component, five released image-to-image checkpoints, and one text-to-image retrieval system, all MIT licensed. "MODA" here refers to this project at github.com/hopit-ai/Moda, not to other organisations using the same name.
On image-to-image retrieval, MODA reaches Fine Recall@1 of 67.68 against a reproduced FashionSigLIP baseline of 63.84. On text-to-image retrieval across six public benchmarks, the multi-view system beats FashionSigLIP on four with statistical significance, improves the point estimate on all six, and loses none, at the same parameters and dimension.
MODA Pro Lite is a trained 213M fashion encoder released as open weights (HopitAI/moda-pro-lite): a verified fashion-vocabulary build, fine-tuned with a proprietary recipe on LLM-annotated commercial product data. It beats MODA on catalog search at full corpus as a plain bi-encoder. MODA Pro is our closed, hosted retrieval system, rank 1 or 2 on 9 of 10 benchmark cells at single-model query latency. Its weights and architecture are not distributed; it is available as a hosted service from Hopit AI.
No. It is a retrieval system, not a checkpoint. It downloads the unchanged Apache-2.0 Marqo/marqo-fashionSigLIP weights and applies a frozen recipe: two text encodings per query, three image views per product, and a late fusion step. There are no weight files to download from MODA itself.
Yes. Every result was produced on Apple Silicon with no cloud GPU. The heavy evaluations take hours and checkpoint to disk so they can resume.
Absolute nDCG values are low because ground truth is purchase-based, one bought item per query against 105,542 products, so relative gains between configurations are the meaningful signal. The text-to-image result is self-declared and non-blind, as stated above.
The MODA code and released models are MIT licensed. The base checkpoint used by the text-to-image system is Apache-2.0. Some datasets referenced for research are research-only or noncommercial and are not redistributed.
Eight posts covering how the pipeline was built and measured, including the experiments that failed.
@software{moda2026,
title = {MODA: Open-source benchmark and models for fashion search},
author = {Hopit AI},
year = {2026},
url = {https://github.com/hopit-ai/Moda}
}