Downloads · 30 days
0
havaferber/dermaglow-embeddings
dermaglow-embeddings is a machine learning model from havaferber. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
Precomputed image embeddings for the DermaGlow dataset, powering the "people with skin like yours" recommender in the DermaGlow app.
Downloads · 30 days
0
Access
Public
Updated Jul 16, 2026
Repo size
3.8 MB
Likes
0
Public
Click a slice to open those files.
.parquet3.8 MB · 100%
From the Hugging Face model README
Precomputed image embeddings for the DermaGlow dataset, powering the "people with skin like yours" recommender in the DermaGlow app.
Metric: do the top-5 visually-nearest faces share the same skin labels? (random baseline: 19.6%)
| Model | Mean label match | Dim | Embed time (1,100 imgs) |
|---|---|---|---|
| openai/clip-vit-base-patch32 (winner) | 43.5% | 512 | 27s |
| google/siglip-base-patch16-224 | 41.5% | 768 | 82s |
| facebook/dinov2-small | 36.2% | 384 | 32s |
On the final dataset, CLIP top-5 matches: skin_tone 61.2%, age_group 65.3%, skin_type 27.5%, main_concern 19.7%.
Design insight: visual embeddings capture tone/age strongly but skin concerns only weakly (they're subtle in photos). The app therefore uses a hybrid matcher: CLIP visual similarity + boosting by the user's questionnaire answers.
clip_embeddings.parquet — id + 512-dim L2-normalized vector per dataset roweval_results.json — full evaluation numbersimport pandas as pd, numpy as np
from huggingface_hub import hf_hub_download
df = pd.read_parquet(hf_hub_download("havaferber/dermaglow-embeddings", "clip_embeddings.parquet"))
emb = np.array(df["embedding"].tolist(), dtype=np.float32) # (1100, 512), pre-normalized
# similarity = emb @ query_vec (cosine)
Embedding model to encode new queries: openai/clip-vit-base-patch32 (get_image_features).