Mindket

TIPSv2 B/14

Newversion 1 · updated

Overview

Turns images and text into matching embeddings, with spatial patch features, for zero-shot image classification. Google's Base variant of TIPSv2, for vision researchers and developers.

TIPSv2 B/14 is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page, a zip of its files. Nothing in it runs by itself.

At a glance

You need
  • Python with pip
  • The transformers, torch, torchvision, sentencepiece and scikit-learn packages
  • Images turned into tensors in the 0 to 1 range
  • Optionally, a CUDA GPU
Runs in
  • Python with Transformers, loading the model through AutoModel
  • A CUDA GPU, if you move the model over with model.cuda()
  • The project's GitHub repository, which holds extra examples and plots, among them zero-shot segmentation
  • Windows, macOS or Linux with Python, for downloading the files
Start with
pip install transformers torch torchvision sentencepiece scikit-learn

Platform

WindowsOperating system
macOSOperating system
LinuxOperating system

About

What it is

TIPSv2 B/14 is the Base variant of Google's TIPSv2 family, contrastive vision-language models that turn images into features with spatial detail that line up with text embeddings. It has 86M vision parameters and 110M text parameters. The record tags it for zero-shot image classification.

Who it suits

Researchers and developers who need image features aligned with text for classification, search or spatial analysis.

IndustryWho uses itHow they use itExample
ResearchVision researchersTest text and image alignment and spatial featuresShow the patch features as a color image
SoftwareML engineersClassify images against a list of text labels without trainingChoose between bus, car, dog and cat
SearchRetrieval developersCompare text embeddings with image embeddingsMatch a text query to a set of pictures

Anyone who wants a finished app can skip it, since this is an encoder you wire up in code.

Where to use it

It runs in Python through Hugging Face Transformers, on a CPU or a CUDA GPU.

  • Python with Transformers, loading the model through AutoModel
  • A CUDA GPU, if you move the model over with model.cuda()
  • The project's GitHub repository, which holds extra examples and plots, among them zero-shot segmentation
  • Windows, macOS or Linux with Python, for downloading the files
Use caseWhoWhat they get back
Zero-shot classificationML engineersThe best-matching label from your own list
Text and image embeddingsDevelopersVectors of 768 numbers you can compare
Spatial feature mapsResearchersA 32 by 32 grid of patch features that can be drawn as colors

How to set it up

You need Python and a handful of packages.

  • Python with pip
  • The transformers, torch, torchvision, sentencepiece and scikit-learn packages
  • Images turned into tensors in the 0 to 1 range
  • Optionally, a CUDA GPU
  1. Install the packages with pip.
  2. Load the model with AutoModel, using trust_remote_code set to True.
  3. If you like, download the files yourself with the hf command.
pip install transformers torch torchvision sentencepiece scikit-learn
pip install -U huggingface_hub
hf download google/tipsv2-b14

How to use it

Load the model, turn your image into a tensor, then encode the image and your text. The card says to skip ImageNet normalization and use only ToTensor, so values stay between 0 and 1.

from transformers import AutoModel

model = AutoModel.from_pretrained("google/tipsv2-b14", trust_remote_code=True)
model.eval()

Open your own picture as a PIL image called image, then encode it at 448 by 448. The card's sample returns a global embedding of shape (1, 1, 768) and per-patch features of shape (1, 1024, 768).

from torchvision import transforms
from PIL import Image

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

pixel_values = transform(image).unsqueeze(0)
out = model.encode_image(pixel_values)

Text queries give one embedding each, so two queries return shape (2, 768).

text_emb = model.encode_text(["a photo of a bus", "a photo of a dog"])

For zero-shot classification, normalize both sides, compare them and take the closest label.

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()])

On a GPU, move the model and the input across.

model = model.cuda()
out = model.encode_image(pixel_values.cuda())
text_emb = model.encode_text(["a city"])
ToolWhat it does
encode_imageReturns a global image embedding in cls_token and per-patch features in patch_tokens
encode_textReturns one 768-number embedding for each text query
PCA on patch_tokensTurns the spatial features into a color picture, as the card's sample does

Example

You give it a photo and the labels bus, car, dog and cat. It normalizes both embeddings, compares them and prints the label with the highest similarity, which the card's own sample shows as bus.

For newcomers and experts

This model gives a picture and a sentence each a list of numbers, so the two can be compared. When the lists are close, the sentence fits the picture. The first small thing to try is loading the model and comparing one photo with a few labels.

The vision side is a ViT encoder with 12 layers and the text side is a Transformer with 12 layers, joined by an embedding size of 768. The patch size is 14 by 14 pixels. Text goes through a SentencePiece tokenizer, lowercased, with at most 64 tokens, and images can be any resolution.

  1. Turn the image into a 0 to 1 tensor
  2. Encode it with encode_image
  3. Encode your labels with encode_text
  4. Normalize both and compare them
  5. Pick the closest label

Good to know

The family comes in four sizes, and this card describes the smallest one, the Base variant.

VariantVision paramsText paramsEmbed dim
B/1486M110M768
L/14303M184M1024
SO400m/14412M448M1152
g/141.1B389M1536
  • Remote code: the loading line sets trust_remote_code to True, which lets the repository's own code run.
  • Inputs: images are tensors in the 0 to 1 range, and text is limited to 64 tokens.
  • License: Apache 2.0.
  • Cost to run: none named.
  • Data it reaches: the images you load and the model files from the Hub. The card's own sample also fetches an example image over the web.

README and files

README

TIPSv2 B/14

Turns images and text into matching embeddings, with spatial patch features, for zero-shot image classification. Google's Base variant of TIPSv2, for vision researchers and developers.

Made by google on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.

About

What it is: TIPSv2 B/14 is the Base variant of Google's TIPSv2 family, contrastive vision-language models that turn images into features with spatial detail that line up with text embeddings. It has 86M vision parameters and 110M text parameters. The record tags it for zero-shot image classification.

Who it suits: Researchers and developers who need image features aligned with text for classification, search or spatial analysis.

Industry | Who uses it | How they use it | Example
Research | Vision researchers | Test text and image alignment and spatial features | Show the patch features as a color image
Software | ML engineers | Classify images against a list of text labels without training | Choose between bus, car, dog and cat
Search | Retrieval developers | Compare text embeddings with image embeddings | Match a text query to a set of pictures

Anyone who wants a finished app can skip it, since this is an encoder you wire up in code.

Where to use it: It runs in Python through Hugging Face Transformers, on a CPU or a CUDA GPU.

  • Python with Transformers, loading the model through AutoModel
  • A CUDA GPU, if you move the model over with model.cuda()
  • The project's GitHub repository, which holds extra examples and plots, among them zero-shot segmentation
  • Windows, macOS or Linux with Python, for downloading the files
Use case | Who | What they get back
Zero-shot classification | ML engineers | The best-matching label from your own list
Text and image embeddings | Developers | Vectors of 768 numbers you can compare
Spatial feature maps | Researchers | A 32 by 32 grid of patch features that can be drawn as colors

How to set it up: You need Python and a handful of packages.

  • Python with pip
  • The transformers, torch, torchvision, sentencepiece and scikit-learn packages
  • Images turned into tensors in the 0 to 1 range
  • Optionally, a CUDA GPU
  1. Install the packages with pip.
  2. Load the model with AutoModel, using trust_remote_code set to True.
  3. If you like, download the files yourself with the hf command.
pip install transformers torch torchvision sentencepiece scikit-learn
pip install -U huggingface_hub
hf download google/tipsv2-b14

How to use it: Load the model, turn your image into a tensor, then encode the image and your text. The card says to skip ImageNet normalization and use only ToTensor, so values stay between 0 and 1.

from transformers import AutoModel

model = AutoModel.from_pretrained("google/tipsv2-b14", trust_remote_code=True)
model.eval()

Open your own picture as a PIL image called image, then encode it at 448 by 448. The card's sample returns a global embedding of shape (1, 1, 768) and per-patch features of shape (1, 1024, 768).

from torchvision import transforms
from PIL import Image

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

pixel_values = transform(image).unsqueeze(0)
out = model.encode_image(pixel_values)

Text queries give one embedding each, so two queries return shape (2, 768).

text_emb = model.encode_text(["a photo of a bus", "a photo of a dog"])

For zero-shot classification, normalize both sides, compare them and take the closest label.

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()])

On a GPU, move the model and the input across.

model = model.cuda()
out = model.encode_image(pixel_values.cuda())
text_emb = model.encode_text(["a city"])
Tool | What it does
encode_image | Returns a global image embedding in cls_token and per-patch features in patch_tokens
encode_text | Returns one 768-number embedding for each text query
PCA on patch_tokens | Turns the spatial features into a color picture, as the card's sample does

Example: You give it a photo and the labels bus, car, dog and cat. It normalizes both embeddings, compares them and prints the label with the highest similarity, which the card's own sample shows as bus.

For newcomers and experts: This model gives a picture and a sentence each a list of numbers, so the two can be compared. When the lists are close, the sentence fits the picture. The first small thing to try is loading the model and comparing one photo with a few labels.

The vision side is a ViT encoder with 12 layers and the text side is a Transformer with 12 layers, joined by an embedding size of 768. The patch size is 14 by 14 pixels. Text goes through a SentencePiece tokenizer, lowercased, with at most 64 tokens, and images can be any resolution.

Turn the image into a 0 to 1 tensor
Encode it with encode_image
Encode your labels with encode_text
Normalize both and compare them
Pick the closest label

Good to know: The family comes in four sizes, and this card describes the smallest one, the Base variant.

Variant | Vision params | Text params | Embed dim
B/14 | 86M | 110M | 768
L/14 | 303M | 184M | 1024
SO400m/14 | 412M | 448M | 1152
g/14 | 1.1B | 389M | 1536
  • Remote code: the loading line sets trust_remote_code to True, which lets the repository's own code run.
  • Inputs: images are tensors in the 0 to 1 range, and text is limited to 64 tokens.
  • License: Apache 2.0.
  • Cost to run: none named.
  • Data it reaches: the images you load and the model files from the Hub. The card's own sample also fetches an example image over the web.

On Hugging Face, 15 November 2026

  • Task: zero shot image classification
  • Library: transformers
  • Parameters: 196M
  • Weights: about 784 MB in F32; about 98 MB at 4-bit (estimate)
  • Formats: Safetensors
  • Downloads in the last 30 days: 8,629
  • Likes: 137
  • License: apache-2.0
  • Quantized versions: 1
  • Fine-tunes: 5
  • Tags: transformers, safetensors, tipsv2, feature-extraction, vision, image-text, contrastive-learning, zero-shot, zero-shot-image-classification

Links

Get the model

Download its files with Hugging Face's command line:

pip install -U huggingface_hub
hf download google/tipsv2-b14

Then follow the usage in its model card. Nothing in this kit runs by itself.

Files
README.md  7 KB

1 file, 7 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-15

Compare with similar

Listed Hugging Face models in the same category that share the most tags with this one.

ProductDownloads, last 30 daysLikesParametersLicenseLast change
TIPSv2 B/14 This page8,629137196Mapache-2.0
embeddinggemma-2Shares vision · feature-extraction · transformers503,6093,347744Mapache-2.0
d3-flashShares vision · feature-extraction · transformers103,5771148.4Bapache-2.0
d3-miniShares vision · feature-extraction · transformers53,115754.5Bapache-2.0
d3Shares vision · feature-extraction · transformers10,03729326.1Bapache-2.0
d3-nanoShares vision · feature-extraction · transformers7,779492.2Bapache-2.0
Numbers as Mindket last read them, from 2026-11-12 to 2026-11-15.

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

Turns text into vectors for search, clustering and question answering on phones and laptops. A 270M text-only EmbeddingGemma 2 build packaged for LiteRT-LM, co…

New

Runs DeepSeek V4.1 Flash on two NVIDIA DGX Spark computers at about twice the decode and prefill speed of a standard vLLM setup. A recipe card with no weights,…

New

AICoverGen

r3gm · Kit

A Gradio app for making AI song covers with voice conversion models. Runs in your browser on Hugging Face, or on your own computer with Python 3.12.

New

Similar in Developer

See all in Developer

SOMA-X

nvidia · Kit

Maps several human body models onto one shared body, hand and skeleton layout so a single posing pipeline works with all of them. For vision, animation, simula…

New

Qwen3.6-35B-A3B-Escha-W2

EschaLabs · Kit

Serves Qwen3.6-35B-A3B locally from a 12.3 GB 2-bit build, through an OpenAI-compatible HTTP API on one 16 or 24 GB NVIDIA GPU. For people who run a large mixt…

New

Kev

jaredpalmer · Kit

Scores typed questions about a document with small Kev decision models, returning a probability for every answer option in one pass and no text. It works in th…

New