SILVA

SILVA β€” Personal Aesthetic Head

β–Ά Try it in your browser β€” upload an illustration, see this person's score live.

Scores an illustration by one specific person's taste β€” 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 person'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.

Quickstart

# pip install "silva-scorer[backbone] @ git+https://github.com/Jannchie/silva"
from silva import SilvaScorer

scorer = SilvaScorer.from_pretrained("Jannchie/silva-aesthetic")
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-aesthetic").eval()
score = head(embedding)["calibrated_score"]  # calibrated to the label distribution; ["score"] for raw. embedding: [B, 1152] pooler_output

Scores (held-out test split)

Spearman Pearson MAE (1–5) Top-5%
0.7671 0.7695 0.4859 0.4191

Architecture: embedding[1152] β†’ LayerNorm β†’ MLP [1024, 512, 256] β†’ ordinal head. Trained on one person's private 1–5 ratings; labels and images not released. Source

Citation

@software{pan2026silva,
  author  = {Pan, Jianqi},
  title   = {{SILVA}: {SigLIP}-based Illustration Visual Aesthetic Scorer},
  year    = {2026},
  url     = {https://github.com/Jannchie/silva},
}
Downloads last month
65
Safetensors
Model size
1.84M params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for Jannchie/silva-aesthetic

Adapter
(1)
this model

Space using Jannchie/silva-aesthetic 1

Evaluation results