Downloads · 30 days
12
22% of all-time downloads
robotflowlabs/siglip-so400m-patch14-384-int8
siglip-so400m-patch14-384-int8 is a image feature extraction model from robotflowlabs. Use it for the image feature extraction task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
Google's SigLIP vision-language encoder quantized to INT8 for real-time robotic perception. 1.6x smaller — from 3.4 GB to 2.1 GB — with both vision and text encoding capabilities preserved.
Downloads · 30 days
12
22% of all-time downloads
All-time downloads
55
Public
Repo size
2.2 GB
Likes
0
Public
Click a slice to open those files.
.data1.7 GB · 79%
From the Hugging Face model README
Google's SigLIP vision-language encoder quantized to INT8 for real-time robotic perception. 1.6x smaller — from 3.4 GB to 2.1 GB — with both vision and text encoding capabilities preserved.
This model is part of the RobotFlowLabs model library, built for the ANIMA agentic robotics platform — a modular ROS2-native AI system that brings foundation model intelligence to real robots operating in the real world.
SigLIP is the frozen vision encoder used in all FORGE student models and in leading VLA architectures like OpenVLA and SmolVLA. Its sigmoid-based contrastive learning produces better calibrated vision-language alignments than CLIP, especially for robotic manipulation where precise visual grounding of instructions matters. At 3.4 GB, running the full SigLIP model alongside student backbones and action heads is tight on edge hardware.
We quantized SigLIP to INT8 and exported to ONNX for faster inference with smaller memory footprint.
| Property | Value |
|---|---|
| Architecture | SigLIP (Sigmoid Loss for Language-Image Pre-training) |
| Parameters | 400M (vision + text) |
| Vision Hidden Dim | 1152 |
| Vision Layers | 27 transformer blocks |
| Vision Attention Heads | 16 |
| Vision MLP Dim | 4304 |
| Input Resolution | 384 × 384 |
| Patch Size | 14 × 14 |
| Vision Tokens | 729 (27×27 patches) |
| Text Hidden Dim | 1152 |
| Text Layers | 27 transformer blocks |
| Original Model | google/siglip-so400m-patch14-384 |
| License | Apache-2.0 |
Quantized on an NVIDIA L4 24GB GPU using INT8 dynamic quantization with ONNX Runtime export.
| Metric | Original | INT8 Quantized | Change |
|---|---|---|---|
| Total Size | 3,352 MB | 2,067 MB | 1.6x smaller |
| INT8 Weights | — | 430 MB | Vision encoder quantized |
| ONNX Graph | — | 1,637 MB | Full model with optimizations |
| Quantization | FP32 | INT8 Dynamic | Per-tensor symmetric |
| Format | PyTorch | PyTorch INT8 + ONNX | Dual format |
siglip-so400m-patch14-384-int8/
├── model_int8.pt # 430 MB — INT8 quantized state dict
├── model.onnx # 2.7 MB — ONNX graph structure
├── model.onnx.data # 1.6 GB — ONNX external weights
├── config.json # Model configuration
├── preprocessor_config.json # Image preprocessing config
├── tokenizer_config.json # Text tokenizer config
└── README.md # This file
import torch
from transformers import SiglipModel, AutoProcessor
# Load original architecture
model = SiglipModel.from_pretrained("google/siglip-so400m-patch14-384")
# Load INT8 quantized vision encoder weights
int8_state = torch.load("model_int8.pt", map_location="cuda", weights_only=True)
model.vision_model.load_state_dict(int8_state, strict=False)
model.to("cuda").eval()
# Extract features
processor = AutoProcessor.from_pretrained("google/siglip-so400m-patch14-384")
inputs = processor(images=image, text=["a robot arm", "a cup"], return_tensors="pt").to("cuda")
outputs = model(**inputs)
import onnxruntime as ort
# GPU inference
session = ort.InferenceSession(
"model.onnx",
providers=["CUDAExecutionProvider", "CPUExecutionProvider"]
)
# Preprocess image to (1, 3, 384, 384) float32
pixel_values = preprocess(image)
outputs = session.run(None, {"pixel_values": pixel_values})
from forge.vision import VisionEncoderRegistry
# SigLIP is the default FORGE vision encoder
encoder = VisionEncoderRegistry.load("siglip-so400m-patch14-384-int8")
features = encoder(image_tensor) # (B, 729, 1152)
SigLIP is the frozen vision encoder in every FORGE student model:
Image → [SigLIP Vision Encoder] → 729 tokens (1152-dim)
↓
[Bridge Attention] → N queries (d_model-dim)
↓
[Language Backbone] → contextualized features
↓
[Action Head] → robot actions
The vision encoder is never fine-tuned — it stays frozen across all distillation and fine-tuning stages. This preserves the rich visual representations that make SigLIP valuable while keeping training efficient.
ANIMA is a modular, ROS2-native agentic robotics platform developed by RobotFlowLabs. It combines 58 specialized AI modules into a unified system for real-world robotic autonomy.
Original SigLIP SO400M (FP32, 3.4 GB)
│
├─→ torchao INT8 dynamic quantization (GPU-native, vision encoder)
│ └─→ model_int8.pt (430 MB)
│
└─→ torch.onnx.export (opset 18, GPU-traced)
└─→ model.onnx + model.onnx.data (1.6 GB)
torchao on NVIDIA L4 GPUgoogle/siglip-so400m-patch14-384 by Google Research@inproceedings{zhai2023sigmoid,
title={Sigmoid Loss for Language Image Pre-Training},
author={Zhai, Xiaohua and Mustafa, Basil and Kolesnikov, Alexander and Beyer, Lucas},
booktitle={IEEE/CVF International Conference on Computer Vision},
year={2023}
}
@misc{robotflowlabs2026anima,
title={ANIMA: Agentic Networked Intelligence for Modular Autonomy},
author={RobotFlowLabs},
year={2026},
url={https://huggingface.co/robotflowlabs}
}