Views
No views yet
pip install torch torchvision pillow huggingface_hub1from huggingface_hub import hf_hub_download
2# clone or copy predict.py + model/ + naflex.py + config.py from the repo
3from predict import AestheticScorer
4
5scorer = AestheticScorer.from_pretrained("somepago/AestheticSigLIP")
6
7# single image
8score = scorer.rate("photo.jpg") # float, e.g. 7.42
9
10# batch
11scores = scorer.rate(["a.jpg", "b.jpg"]) # [7.42, 3.81]
12
13# PIL image directly
14from PIL import Image
15score = scorer.rate(Image.open("photo.jpg"))python predict.py photo.jpg photo2.jpg --repo somepago/AestheticSigLIP| Score | Meaning |
|---|---|
| 1–2 | Blurry, broken, heavy watermarks |
| 3–4 | Bad framing, low effort, obvious AI slop |
| 5–6 | Generic, forgettable — typical web image |
| 7 | Good — clear intent, solid composition |
| 8 | Very good — strong visual impact |
| 9–10 | Exceptional — award-level work |
Image (any aspect ratio)
↓
NaFlex preprocessing — aspect-ratio-aware patching (max 256 patches, patch=16px)
↓
SigLIP 2 So400m encoder (27 transformer blocks, 1152-d, 16 heads)
├── tap layer 8 → masked mean pool → 1152-d
├── tap layer 17 → masked mean pool → 1152-d
└── final pooled (multi-head attention probe) → 1152-d
↓
Concatenate [pool | tap8 | tap17] → 3456-d
↓
MLP head: 3456 → 768 → 256 → 8 bucket logits
↓
softmax → expected value over bucket centers → score ∈ [1, 10]| SRCC | MAE | |
|---|---|---|
| AestheticSigLIP | 0.671 | 1.04 |
real-lq/hq (SRCC 0.78/0.64), pinterest-curated (0.65), bad-text (0.86). Weakest on generic AI art (pickapic 0.24, playground 0.15) — these categories are underrepresented in training.1@misc{aestheticsiglip2026,
2 author = {Somepalli, Gowthami},
3 title = {AestheticSigLIP: Image Aesthetic Scoring on SigLIP 2 NaFlex},
4 year = {2026},
5 publisher = {Hugging Face},
6 url = {https://huggingface.co/somepago/AestheticSigLIP}
7}