--- license: mit library_name: open_clip pipeline_tag: image-classification base_model: HopitAI/moda-fashion-distilled language: - en metrics: - f1 - accuracy datasets: - detection-datasets/fashionpedia tags: - fashion - attribute-extraction - product-attributes - catalog-enrichment - e-commerce - computer-vision - image-classification - multi-label-classification - siglip - moda-ner - benchmark - reproducibility - fashionpedia - mit model-index: - name: MODA_NER(V) Crop results: - task: type: image-classification name: Fashion attribute extraction dataset: type: moda-general-attribute-suite name: MODA General Attribute Suite (crop track) metrics: - type: f1 value: 0.63 name: Attribute micro-F1 - type: f1 value: 0.6074 name: Field-macro F1 - type: accuracy value: 0.8825 name: Category accuracy - type: accuracy value: 0.9215 name: Master-category accuracy --- # MODA_NER(V) - Crop > **Fix, 2026-09-19. If you ran this model before this date, re-run it.** The repository's > `models/inference.py` ran the crop route with the wrong image preprocessing: OpenAI-CLIP > normalisation and a centre crop, instead of the mean/std 0.5 squash this checkpoint was trained > with. Its outputs did not match the published benchmark predictions, matching on 16 of 64 > held-out images. The weights in this repository are unchanged and correct. Pull the latest > [Moda_ner](https://github.com/hopit-ai/Moda_ner) code and the Usage command below produces the > published predictions. The benchmark numbers on this card were produced correctly. *Tier `*` - open code, open weights.* **Tier `*`** — open code, open weights. **Weights: MIT.** Conditional attribute heads on our own frozen encoder (see Provenance below). **Input contract:** one localized garment crop. **Output:** 15 sparse fields — master category, category, sub-category, silhouette, hemline, sleeve length and shape, neckline, collar presence and style, waist, material, surface treatment, pattern, closure. No colour, no fit; the evaluation corpus for this track carries no equivalent labels. | | Attribute micro-F1 (crop track) | |---|---:| | **This released checkpoint** | **0.6300** | | Same architecture on a frozen FashionSigLIP encoder | 0.6245 | | Zero-shot open VLM reference (Qwen3-VL-8B) | 0.1805 | | Zero-shot FashionSigLIP text prototypes | 0.1817 | These are the weights that produced our published number: nothing is held back on this route. Field-macro F1 is 0.6074, category accuracy 0.8825, master-category accuracy 0.9215. Weak fields, stated because the micro average hides them: material 0.4148, plus surface treatment, collar style, neckline and waist type. A headline of 0.6300 does not mean every field is usable. **Attribution.** The annotations behind this track are licensed CC BY 4.0 and require credit: Jia et al., *Fashionpedia: Ontology, Segmentation, and an Attribute Localization Dataset*, ECCV 2020. No images from that corpus are redistributed in the weights or the repository. ## Provenance The encoder these heads run on is ours: [`HopitAI/moda-fashion-distilled`](https://huggingface.co/HopitAI/moda-fashion-distilled), MIT, already public. Nothing from another vendor is loaded at inference time. That is worth stating plainly, because the comparator on this track is a FashionSigLIP-based system and it would be easy to assume this model is that system with heads attached. It is not. FashionSigLIP appears in two other roles: - **As the distillation teacher.** An earlier ladder of checkpoints put conditional heads on frozen Marqo-FashionSigLIP. We distilled that system into our own encoder; the teacher is used during training and is not needed to serve. - **As the baseline we measure against.** The comparator figure quoted above is that same FashionSigLIP-based system. Lineage, stated once rather than implied: `moda-fashion-distilled` is itself a distilled student built on ViT-B/16-SigLIP, from a teacher ensemble that included our own DeepFashion2 fine-tune. Marqo-FashionSigLIP is Apache-2.0. The DeepFashion2 corpus is research-only, so we do not describe this pipeline as provenance-clean end to end. **Credit for this model.** If you use these weights or report numbers from this track, cite the MODA General Attribute Suite (see `CITATION.cff`). Scorers stamp the suite name and version into every result file for exactly this reason. ## Links - Benchmark tables and protocol: - Code, scorers and prediction files: - All Hopit AI benchmarks: ## Usage The heads are not a `transformers` architecture, so load them through the suite repository rather than `AutoModel`: ```bash git clone https://github.com/hopit-ai/Moda_ner && cd Moda_ner pip install -r requirements-inference.txt huggingface-cli download HopitAI/moda-ner-v-crop --local-dir ./moda-ner-v-crop python models/inference.py --route crop --model-dir ./moda-ner-v-crop --images photo.jpg ```