Downloads · 30 days
48
46% of all-time downloads
Jannchie/silva-luna
silva-luna is a image classification model from Jannchie. Use it when you need a label for an image. It is set up for silva. The card lists the license as mit.
<p align="center" <img src="https://raw.githubusercontent.com/Jannchie/silva/main/assets/silva-header.png" alt="SILVA" width="100%" </p
Downloads · 30 days
48
46% of all-time downloads
All-time downloads
104
Public
Parameters
1.8M
14.7 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors7.4 MB · 100%
From the Hugging Face model README
▶ Try it in your browser — upload an illustration, see this judge's score live.
Scores an illustration by the taste of a VLM judge, distilled — not a universal quality
model, so it won't match anyone else's preferences. Output is a single number in
[0, 1]; higher means more to this judge's liking.
Only the head ships here (~7 MB), not an image model. It runs on top of the frozen
google/siglip2-so400m-patch14-384 backbone, which silva[backbone] installs and loads for you.
# pip install "silva-scorer[backbone] @ git+https://github.com/Jannchie/silva"
from silva import SilvaScorer
scorer = SilvaScorer.from_pretrained("Jannchie/silva-luna")
print(scorer.score("your_image.jpg")) # 0.73
print(scorer.score(["a.jpg", "b.jpg"])) # [0.73, 0.41]
Already have google/siglip2-so400m-patch14-384 embeddings? Skip the backbone and score them directly:
# pip install "silva-scorer @ git+https://github.com/Jannchie/silva"
from silva import EmbeddingAestheticModel
head = EmbeddingAestheticModel.from_pretrained("Jannchie/silva-luna").eval()
score = head(embedding)["calibrated_score"] # calibrated to the label distribution; ["score"] for raw. embedding: [B, 1152] pooler_output
| Spearman | Pearson | MAE (1–5) | Top-5% |
|---|---|---|---|
| 0.7152 | 0.7261 | 0.5066 | 0.3077 |
Architecture: embedding[1152] → LayerNorm → MLP [1024, 512, 256] → ordinal head. Trained on
rankings from openai/gpt-5.6-luna (via OpenRouter), which ordered eight illustrations at a time; the orderings were pooled with Plackett-Luce into one latent per picture (degree 21). Source
@software{pan2026silva,
author = {Pan, Jianqi},
title = {{SILVA}: {SigLIP}-based Illustration Visual Aesthetic Scorer},
year = {2026},
url = {https://github.com/Jannchie/silva},
}