alt.freeweights.vision / tipsv2-so400m14
From: google <huggingface.co/google>Newsgroups: alt.freeweights.visionSubject:

tipsv2-so400m14

Date: 2026-11-14Commit: 9b102a5Signed: 2DC28CC7B26A283B ✓

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

862M params3.45GBtipsv2-so400m14safetensorspermissive
FactsParams862MSize3.45 GBFormatssafetensorsTaskzero shot image classificationLicenseApache-2.0From sourcepermissive
$ fw get google/tipsv2-so400m14
# manifest sha256 7168567fd674… · 3.45 GB · 11 files
$ fw verify ./tipsv2-so400m14 google/tipsv2-so400m14
From sourceHosted (signed)google/tipsv2-so400m14Last check: 2026-11-14 21:37 UTC

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

Overview

Size
3.45 GB
Weights
3.45 GB (safetensors)
Parameters
862M
Formats
safetensors
Task
zero shot image classification
License
Apache-2.0 (permissive)
Files
11, 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:37 UTCpassed

Model card

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

TIPSv2 — SO400m/14#

TIPSv2 (Text-Image Pre-training with Spatial awareness) is a family of contrastive vision-language models that produce spatially rich image features aligned with text embeddings. This is the SO400m variant with 412M vision params and 448M text params. Try the code snippets below or check out the GitHub repo for more use cases and visualizations, including zero-shot segmentation.

VariantVision paramsText paramsEmbed dimDPT Heads
B/1486M110M768B/14-dpt
L/14303M184M1024L/14-dpt
SO400m/14412M448M1152SO400m/14-dpt
g/141.1B389M1536g/14-dpt

Usage#

pip install transformers torch torchvision sentencepiece scikit-learn
Load the model#
from transformers import AutoModel

model = AutoModel.from_pretrained("google/tipsv2-so400m14", trust_remote_code=True)
model.eval()
Encode images#

Images should be tensors in [0, 1] range (just ToTensor(), no ImageNet normalization).

from torchvision import transforms
from PIL import Image
import requests

transform = transforms.Compose([
    transforms.Resize((448, 448)),
    transforms.ToTensor(),
])

url = "https://huggingface.co/spaces/google/TIPSv2/resolve/main/examples/zeroseg/pascal_context_00049_image.png"
image = Image.open(requests.get(url, stream=True).raw)
pixel_values = transform(image).unsqueeze(0)
out = model.encode_image(pixel_values)

print(out.cls_token.shape)     # (1, 1, 1152) — global image embedding
print(out.patch_tokens.shape)  # (1, 1024, 1152) — per-patch spatial features
Encode text#
text_emb = model.encode_text(["a photo of a bus", "a photo of a dog"])
print(text_emb.shape)  # (2, 1152) — one embedding per query
Zero-shot classification#
import torch.nn.functional as F

classes = ["bus", "car", "dog", "cat"]
cls = F.normalize(out.cls_token[:, 0, :], dim=-1)
text_emb = F.normalize(model.encode_text(classes), dim=-1)
similarity = cls @ text_emb.T
print(classes[similarity.argmax()])  # bus — predicted class
Visualize spatial features#
import numpy as np
from sklearn.decomposition import PCA

spatial = out.patch_tokens.reshape(1, 32, 32, 1152)
feat = spatial[0].detach().cpu().numpy().reshape(-1, 1152)
rgb = PCA(n_components=3, whiten=True).fit_transform(feat).reshape(32, 32, 3)
rgb = 1 / (1 + np.exp(-2.0 * rgb))  # sigmoid for [0, 1] range with good contrast
print(rgb.shape)  # (32, 32, 3) — PCA of patch features as RGB
GPU inference#
model = model.cuda()
out = model.encode_image(pixel_values.cuda())
text_emb = model.encode_text(["a city"])

Model details#

  • Architecture: ViT vision encoder (27 layers) + Transformer text encoder (27 layers)
  • Image preprocessing: resize to any resolution, convert to [0, 1] (no ImageNet normalization)
  • Text preprocessing: SentencePiece tokenizer, lowercased, max 64 tokens
  • Patch size: 14x14 pixels

License#

Apache 2.0

Citation#

@inproceedings{cao2026tipsv2,
  title     = {{TIPSv2: Advancing Vision-Language Pretraining with Enhanced Patch-Text Alignment}},
  author    = {Cao, Bingyi and Chen, Koert and Maninis, Kevis-Kokitsi and Chen, Kaifeng and Karpur, Arjun and Xia, Ye and Dua, Sahil and Dabral, Tanmaya and Han, Guangxing and Han, Bohyung and Ainslie, Joshua and Bewley, Alex and Jacob, Mithun and Wagner, Rene and Ramos, Washington and Choromanski, Krzysztof and Seyedhosseini, Mojtaba and Zhou, Howard and Araujo, Andre},
  booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  year      = {2026},
  url       = {https://arxiv.org/abs/2604.12012}
}

Files

11 files · 3.45 GBWeights 3.45 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 11 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md4.42 KB4496755fa7d0ba4953384baadd4a791a4107026df1250eaf1f93b19a756fc0bd
config.json2.03 KB43f82d0e8c7feb70605a90c94dee044cc48b4966990fd16f5a36ffb6e4b487d6
configuration_tips.py1.70 KBef8306a43dc0826dbe4e563089b6a3269c60680a02281e2533cdc5d1a6516e42
image_encoder.py30.8 KB862fab50ddd623222112bd589b348bba57ead44523ac4dcc399422955ad76de3
model.safetensors3.45 GB65d89b4ee0083d2c295d2005b82604b9d1b1e950c618c6625cf8c4d7c3621930
modeling_tips.py4.68 KB11dae40ee6aa32cd0bb0ddcbfdcd871abbc358a489e7d916651342acecff8a8f
processor_config.json347 Ba3da1bf8a182db305c5dacfcf2f28fb09567028bade087e7344497819124523f
text_encoder.py10.5 KB04addbc2f19664e48ef963452e855d1bce185be9aaf276fbd9e0a70d7f0918df
tokenizer.model732 KB4c40e7723348d5d9a3d3c2bdcec5120d97fb29edfe1bf118b4494bce02fc7624
tokenizer_config.json292 B0da353fd61bc490106aa9f0ae2e097802182106d1af182cfe4aa654df0ce729b
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
9b102a5333 pinned now manifest updated, same commit2026-11-14 21:37 UTC11 files · 3.45 GB
9b102a53332026-11-14 21:37 UTC11 files · 3.45 GB

Use it

$ fw get google/tipsv2-so400m14
# manifest sha256 7168567fd674… · 3.45 GB · 11 files
$ fw verify ./tipsv2-so400m14 google/tipsv2-so400m14
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/google/tipsv2-so400m14.json --dir ./tipsv2-so400m14 $ python3 fw.py verify ./tipsv2-so400m14 ./google__tipsv2-so400m14.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download google/tipsv2-so400m14 --revision 9b102a53330ded7d64a5ba5d743fbf333f23fc95 --local-dir ./tipsv2-so400m14

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
4496755fa7d0ba4953384baadd4a791a4107026df1250eaf1f93b19a756fc0bd
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: tipsv2-so400m14Date: 2026-11-14Commit: 9b102a5Signed: 2DC28CC7B26A283B ✓
Upstream
google/tipsv2-so400m14
Pinned commit
9b102a53330ded7d64a5ba5d743fbf333f23fc95
Manifest
tipsv2-so400m14.json · .minisig
Manifest sha256
7168567fd674988457f1bd97456492f70ee502fae9fc3f1f7361bfa03c9b73f4
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:37 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/google/tipsv2-so400m14.json $ curl -O https://freeweights.allternit.com/manifests/google/tipsv2-so400m14.json.minisig $ minisign -Vm tipsv2-so400m14.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/tipsv2-so400m14
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. tipsv2-so400m14.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