alt.freeweights.vision / siglip-so400m-patch14-224
From: google <huggingface.co/google>Newsgroups: alt.freeweights.visionSubject:

siglip-so400m-patch14-224

Date: 2026-11-14Commit: d04cf29Signed: 2DC28CC7B26A283B ✓

Zero shot image classification model with 877M parameters. Safetensors weights, 3.51 GB in all. Published by google under Apache-2.0.

877M params3.51GBsiglip-so400m-patch14-224safetensorspermissive
FactsParams877MSize3.51 GBFormatssafetensorsTaskzero shot image classificationLicenseApache-2.0From sourcepermissive
$ fw get google/siglip-so400m-patch14-224
# manifest sha256 e1fbb98bce49… · 3.51 GB · 8 files
$ fw verify ./siglip-so400m-patch14-224 google/siglip-so400m-patch14-224
From sourceHosted (signed)google/siglip-so400m-patch14-224Last check: 2026-11-14 21:36 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
3.51 GB
Weights
3.51 GB (safetensors)
Parameters
877M
Formats
safetensors
Task
zero shot image classification
License
Apache-2.0 (permissive)
Files
8, each with a sha256
Publisher
google
Added
2026-11-14
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-14 21:36 UTCpassed

Model card

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

SigLIP (shape-optimized model)#

SigLIP model pre-trained on WebLi at resolution 224x224. 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-patch14-224")
processor = AutoProcessor.from_pretrained("google/siglip-so400m-patch14-224")

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-patch14-224")

# 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

8 files · 3.51 GBWeights 3.51 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 8 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md4.40 KB08e76d6b8631ea02f6898e437e25e114dce41c06138bdae2f97ee400a04fc01e
config.json588 B28c6981582dbd0dc6e1c2eeae21a240e6952019bca3cdffbc22b9da2c747cb6b
model.safetensors3.51 GB30a00c26a045c84a0bd14adc94278d7f1cc941c8bd67e5fa50f7bed34c34e60d
preprocessor_config.json394 Bbec6ca696ddd6c2050ce0ea9fcb7581b052d267059a3341b6c1456cab54b1d07
special_tokens_map.json409 B2b6a1ff67a27e0df9ac0c7d93250fc0d87431c7b366b3d5669217104f9088a26
spiece.model798 KB1e5036bed065526c3c212dfbe288752391797c4bb1a284aa18c9a0b23fcaf8ec
tokenizer_config.json711 B510442560bec4a801b30184d162b3035b72bcf058bd596a783631f7d3324d159
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
d04cf29fca pinned now manifest updated, same commit2026-11-14 21:36 UTC8 files · 3.51 GB
d04cf29fca2026-11-14 21:36 UTC8 files · 3.51 GB

Use it

$ fw get google/siglip-so400m-patch14-224
# manifest sha256 e1fbb98bce49… · 3.51 GB · 8 files
$ fw verify ./siglip-so400m-patch14-224 google/siglip-so400m-patch14-224
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-patch14-224.json --dir ./siglip-so400m-patch14-224 $ python3 fw.py verify ./siglip-so400m-patch14-224 ./google__siglip-so400m-patch14-224.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download google/siglip-so400m-patch14-224 --revision d04cf29fca7b6374f74d8bea1969314492266b5e --local-dir ./siglip-so400m-patch14-224

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-14
Text in
README.md
Text sha256
08e76d6b8631ea02f6898e437e25e114dce41c06138bdae2f97ee400a04fc01e
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-patch14-224Date: 2026-11-14Commit: d04cf29Signed: 2DC28CC7B26A283B ✓
Upstream
google/siglip-so400m-patch14-224
Pinned commit
d04cf29fca7b6374f74d8bea1969314492266b5e
Manifest
siglip-so400m-patch14-224.json · .minisig
Manifest sha256
e1fbb98bce49ce984fd1d7fc72f7922624eda84c6c67b0b4b300f19147a972d7
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:36 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/google/siglip-so400m-patch14-224.json $ curl -O https://freeweights.allternit.com/manifests/google/siglip-so400m-patch14-224.json.minisig $ minisign -Vm siglip-so400m-patch14-224.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-patch14-224
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-patch14-224.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