File size: 1,876 Bytes
4d7db34
55089df
 
 
 
4d7db34
55089df
4d7db34
 
55089df
4d7db34
 
55089df
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
---
title: Personal Style Matcher
emoji: 
colorFrom: pink
colorTo: gray
sdk: gradio
sdk_version: 5.50.0
app_file: app.py
pinned: false
license: mit
---

# ✨ Personal Style Matcher

A Gradio app that finds your personal color profile and your **Top 3 matched
looks** from the [`lihicarmeli/fashion-stylist-multimodal-v2`](https://huggingface.co/datasets/lihicarmeli/fashion-stylist-multimodal-v2)
catalog, with real, clickable shop links for every piece.

## How it works

1. **Input** — upload a photo, or pick your skin tone / undertone / style /
   gender / age / eye color from dropdowns.
2. **Embed** — the photo (or a feature sentence built from your dropdowns)
   is embedded with `openai/clip-vit-base-patch32` — the model selected in
   Part 3 after a multi-criteria evaluation (performance, time, size,
   integration effort) against `clip-vit-large-patch14` and
   `siglip-base-patch16-224`.
3. **Search** — a FAISS flat-L2 index over the catalog's image embeddings
   returns the closest matches, with a 3-tier demographic fallback (strict
   gender + age → gender only → fully open) so you never get an empty
   result.
4. **Output** — your derived seasonal color profile, plus 3 full outfit
   cards (top / bottom / shoes / accessory), each with a real retailer
   search link (Zara, H&M, ASOS, or Mango) and an optional one-line AI
   stylist note generated by a small instruction-tuned language model
   (`Qwen/Qwen2.5-0.5B-Instruct`).

## Files

- `app.py` — the full Gradio application.
- `requirements.txt` — pinned dependencies.

No local data or model files are required — both the dataset and the
embedding model are streamed directly from the Hugging Face Hub on startup.
The first launch will take a minute or two while the catalog's 1,000 images
are embedded; after that, the embeddings are cached to disk for faster
restarts.