alt.freeweights.vision / siglip-so400m-patch16-256-i18n
From: google <huggingface.co/google>Newsgroups: alt.freeweights.visionSubject:

siglip-so400m-patch16-256-i18n

Date: 2026-11-15Commit: 365d321Signed: 2DC28CC7B26A283B ✓

Zero shot image classification model with 1.1B parameters. Safetensors weights, 4.52 GB in all. Published by google under Apache-2.0.

1.1B params4.52GBsiglip-so400m-patch16-256-i18nsafetensorspermissive
FactsParams1.1BSize4.52 GBFormatssafetensorsTaskzero shot image classificationLicenseApache-2.0From sourcepermissive
$ fw get google/siglip-so400m-patch16-256-i18n
# manifest sha256 11e2fd3ab6b5… · 4.52 GB · 7 files
$ fw verify ./siglip-so400m-patch16-256-i18n google/siglip-so400m-patch16-256-i18n
From sourceHosted (signed)google/siglip-so400m-patch16-256-i18nLast check: 2026-11-15 03:49 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Runs with

Ranked by fit to this model (safetensors), then by GitHub stars.

Overview

Size
4.52 GB
Weights
4.52 GB (safetensors)
Parameters
1.1B
Formats
safetensors
Task
zero shot image classification
License
Apache-2.0 (permissive)
Files
7, each with a sha256
Publisher
google
Added
2026-11-15
Section
alt.freeweights.vision
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 03:49 UTCpassed

Model card

From the publisher at commit 365d321. Shown as plain text with links; images open at the publisher.

SigLIP (shape-optimized model)#

SigLIP model with SoViT backbone pre-trained on multilingual corpus at resolution 256. It was introduced in the paper Sigmoid Loss for Language Image Pre-Training by Zhai et al. and first released in this repository.

This model has the SoViT-400m architecture, which is the shape-optimized version as presented in Getting ViT in Shape: Scaling Laws for Compute-Optimal Model Design by Alabdulmohsin et al.

Disclaimer: The team releasing SigLIP did not write a model card for this model so this model card has been written by the Hugging Face team.

Model description#

SigLIP is CLIP, a multimodal model, with a better loss function. The sigmoid loss operates solely on image-text pairs and does not require a global view of the pairwise similarities for normalization. This allows further scaling up the batch size, while also performing better at smaller batch sizes.

A TLDR of SigLIP by one of the authors can be found here.

Intended uses & limitations#

You can use the raw model for tasks like zero-shot image classification and image-text retrieval. See the model hub to look for other versions on a task that interests you.

How to use#

Here is how to use this model to perform zero-shot image classification:

from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch

model = AutoModel.from_pretrained("google/siglip-so400m-patch16-256-i18n")
processor = AutoProcessor.from_pretrained("google/siglip-so400m-patch16-256-i18n")

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

texts = ["a photo of 2 cats", "a photo of 2 dogs"]
inputs = processor(text=texts, images=image, padding="max_length", return_tensors="pt")

with torch.no_grad():
    outputs = model(**inputs)

logits_per_image = outputs.logits_per_image
probs = torch.sigmoid(logits_per_image) # these are the probabilities
print(f"{probs[0][0]:.1%} that image 0 is '{texts[0]}'")

Alternatively, one can leverage the pipeline API which abstracts away the complexity for the user:

from transformers import pipeline
from PIL import Image
import requests

# load pipe
image_classifier = pipeline(task="zero-shot-image-classification", model="google/siglip-so400m-patch16-256-i18n")

# load image
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)

# inference
outputs = image_classifier(image, candidate_labels=["2 cats", "a plane", "a remote"])
outputs = [{"score": round(output["score"], 4), "label": output["label"] } for output in outputs]
print(outputs)

For more code examples, we refer to the documentation.

Training procedure#

Training data#

SigLIP is pre-trained on the WebLI dataset (Chen et al., 2023).

Preprocessing#

Images are resized/rescaled to the same resolution (384x384) and normalized across the RGB channels with mean (0.5, 0.5, 0.5) and standard deviation (0.5, 0.5, 0.5).

Texts are tokenized and padded to the same length (64 tokens).

Compute#

The model was trained on 16 TPU-v4 chips for three days.

Evaluation results#

Evaluation of SigLIP compared to CLIP is shown below (taken from the paper).

Image: drawing

BibTeX entry and citation info#
@misc{zhai2023sigmoid,
      title={Sigmoid Loss for Language Image Pre-Training}, 
      author={Xiaohua Zhai and Basil Mustafa and Alexander Kolesnikov and Lucas Beyer},
      year={2023},
      eprint={2303.15343},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Files

7 files · 4.52 GBWeights 4.52 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 7 files with their sha256
FileSizesha256
README.md4.45 KB78ea31ae7e60c4c7e574137a1bd8920d7283860e552ef2de498992ee09ec4d23
config.json580 Be799675c0ed354029c69a837527cd79b1beed417d2b0a4391b68630e102c1de7
model.safetensors4.52 GB7d4c2c54b010186daea00f7911475350c97ef0ee81aabcf0a2455472f71e8930
preprocessor_config.json394 B557056124a1ab340d36717e749d536cf093797be921267329a8568a689625b04
special_tokens_map.json409 B2b6a1ff67a27e0df9ac0c7d93250fc0d87431c7b366b3d5669217104f9088a26
spiece.model4.31 MBef78f86560d809067d12bac6c09f19a462cb3af3f54d2b8acbba26e1433125d6
tokenizer_config.json711 Bd6423dae508cc3a129d22ea443841c111832a1a73125b8f25ea8736951698bcb
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
365d321c0c pinned now2026-11-15 03:49 UTC7 files · 4.52 GB

Use it

$ fw get google/siglip-so400m-patch16-256-i18n
# manifest sha256 11e2fd3ab6b5… · 4.52 GB · 7 files
$ fw verify ./siglip-so400m-patch16-256-i18n google/siglip-so400m-patch16-256-i18n
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/google/siglip-so400m-patch16-256-i18n.json --dir ./siglip-so400m-patch16-256-i18n $ python3 fw.py verify ./siglip-so400m-patch16-256-i18n ./google__siglip-so400m-patch16-256-i18n.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download google/siglip-so400m-patch16-256-i18n --revision 365d321c0cfdea96bc28e3a29787a11a062681a1 --local-dir ./siglip-so400m-patch16-256-i18n

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
78ea31ae7e60c4c7e574137a1bd8920d7283860e552ef2de498992ee09ec4d23
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: google <huggingface.co/google>Newsgroups: alt.freeweights.visionSubject: siglip-so400m-patch16-256-i18nDate: 2026-11-15Commit: 365d321Signed: 2DC28CC7B26A283B ✓
Upstream
google/siglip-so400m-patch16-256-i18n
Pinned commit
365d321c0cfdea96bc28e3a29787a11a062681a1
Manifest
siglip-so400m-patch16-256-i18n.json · .minisig
Manifest sha256
11e2fd3ab6b504c0aea97bba8623739a00f69e0935da6038fcd2dde39118f039
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:49 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/google/siglip-so400m-patch16-256-i18n.json $ curl -O https://freeweights.allternit.com/manifests/google/siglip-so400m-patch16-256-i18n.json.minisig $ minisign -Vm siglip-so400m-patch16-256-i18n.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download google/siglip-so400m-patch16-256-i18n
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. siglip-so400m-patch16-256-i18n.json. Provenance. Takedown history: none.
From: dima806 <huggingface.co/dima806>Subject: ai_vs_real_image_detection
From: legekka <huggingface.co/legekka>Subject: AI-Anime-Image-Detector-ViT
From: onnx-community <huggingface.co/onnx-community>Subject: AI-Anime-Image-Detector-ViT-ONNX
From: AICodexLab <huggingface.co/AICodexLab>Subject: answerdotai-ModernBERT-base-ai-detector
From: onnx-community <huggingface.co/onnx-community>Subject: answerdotai-ModernBERT-base-ai-detector-ONNX
From: onnx-community <huggingface.co/onnx-community>Subject: bart-large-cnn-ONNX