silva-scorer
Scores an illustration by one person's aesthetic taste — an ordinal-regression head on top
of frozen google/siglip2-so400m-patch14-384 embeddings. Only the head ships (~7 MB); it is not
a universal quality model and won't match anyone else's preferences.
Install
The PyPI name is silva-scorer; it imports as silva.
pip install silva-scorer # embedding -> score (torch + huggingface-hub only)
pip install "silva-scorer[backbone]" # image -> score, adds the SigLIP2 backbone + `silva` CLI
Score an image
With the [backbone] extra, silva loads SigLIP2 for you — give it a path (or a list of
them) and get a score back:
from silva import AestheticScorer
scorer = AestheticScorer.from_pretrained("Jannchie/silva-aesthetic")
scorer.score("image1.jpg") # 0.7421
scorer.score(["image1.jpg", "image2.jpg"]) # [0.7421, 0.3128]
Or from the CLI:
silva score image1.jpg image2.jpg --repo-id Jannchie/silva-aesthetic
# image1.jpg score=0.7421
Score from an embedding
Already running google/siglip2-so400m-patch14-384 yourself? The core install (no
transformers) scores a 1152-d embedding directly:
import torch
from silva import HubAestheticModel
head = HubAestheticModel.from_pretrained("Jannchie/silva-aesthetic").eval()
emb = torch.randn(1, 1152) # raw pooler_output from the backbone above
print(head(emb)["score"].item()) # [0, 1] — fraction of quality bars cleared
The embedding must be the raw pooler_output of that exact backbone — it's what the head was
trained against.
Training your own head
silva is inference-only. To fit a head on your own 1–5 ratings, see the
silva-train package.
License
MIT
Metadata
Release files for silva-scorer 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| silva_scorer-0.4.0.tar.gz | 10.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| silva_scorer-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.7 kB
Release files / silva_scorer-0.4.0.tar.gz
| Download URL | silva_scorer-0.4.0.tar.gz |
|---|---|
| Size | 10.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b377932e9a5c60e9cadf37c54c25e909ca8fb8135f09269ed717b2a027db7b2
|
|
BLAKE2b-256 checksum How to use checksums |
9aa3b0c736880b7b7d5290a2ea64a76e0c373582cded13d6986242a3eb34d391
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency logRelease files / silva_scorer-0.4.0-py3-none-any.whl
| Download URL | silva_scorer-0.4.0-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e79e443e97e69f7cfdcbc79464a6084449d4c62d2917b409dc83204f02f88fd8
|
|
BLAKE2b-256 checksum How to use checksums |
cf165ea7945f67c445996b856fbda7b27cfbede4037206c716878953699e79e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency log