apocaliss92's picture
Squash history: mirror holds only the models CamStack offers (2026-10-06)
fb3cc07
|
Raw History Blame Contribute Delete
3.35 kB
metadata
license: apache-2.0
library_name: onnx
base_model: google/siglip2-base-patch16-224
tags:
  - clip
  - siglip2
  - semantic-search
  - camstack

SigLIP2 B/16-224: CamStack build

Google SigLIP2 base (patch 16, 224×224) image and text encoders, re-packaged for the CamStack inference pool and embedding encoder. 768-dimensional embeddings. Selectable on the clip-embedding step as siglip2-b16-224 (image) with the text encoder siglip2-b16-224-text.

Tower Format File Precision
vision ONNX onnx/camstack-siglip2-b16-224-vision.onnx fp32 (reference; not in the catalog)
vision OpenVINO IR openvino/camstack-siglip2-b16-224-vision.{xml,bin} fp16
vision CoreML coreml/camstack-siglip2-b16-224-vision.mlpackage fp16
text ONNX onnx/camstack-siglip2-b16-224-text.onnx fp16 weights, fp32 I/O
text OpenVINO IR openvino/camstack-siglip2-b16-224-text.{xml,bin} fp16
text CoreML coreml/camstack-siglip2-b16-224-text.mlpackage fp16, input_ids int32 [1,64]
tokenizer HF tokenizers onnx/camstack-siglip2-b16-224-tokenizer.json —

Source

Modifications

These files are a modified version of the upstream model (Apache-2.0 §4(b)):

  1. Vision input contract. The vision graph takes RGB float in [0,1] (NCHW, N×3×224×224) and applies SigLIP's (x - 0.5) / 0.5 = 2x - 1 inside the graph, ahead of the patch embedding. The output is the single pooled embedding [N,768], not L2-normalised.
  2. Text slice. The text graph takes input_ids int64 [1,L] and slices it to the model's 64 positions (input_ids[:, :64]) before the embedding lookup, so a caller that pads to CLIP's 77 tokens gets the same embedding for any query under 64 tokens.
  3. Lower-casing tokenizer. camstack-siglip2-b16-224-tokenizer.json is the upstream tokenizer.json with a Lowercase normalizer prepended: the model was trained on lower-cased text and the upstream processor does not lower-case.
  4. Format conversion and precision. OpenVINO IR and CoreML at fp16; the text ONNX weights converted to fp16 (inputs and outputs stay int64/fp32).

Built and verified by scripts/build-siglip2-model.py in the CamStack repository (https://github.com/camstack/server): cross-format cosine against the fp32 reference, tokenizer ids equal to the reference processor, and the image-text embedding space checked on reference images.

Licence

Apache License, Version 2.0 — https://www.apache.org/licenses/LICENSE-2.0; full text in LICENSES/Apache-2.0.txt. The upstream model is © Google LLC. CamStack's changes are listed above. Every model's attribution is in THIRD_PARTY_MODELS.md.