--- 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 - Model: `google/siglip2-base-patch16-224`, , revision `75de2d55ec2d0b4efc50b3e9ad70dba96a7b2fa2`. Licence: Apache-2.0 (model card `license: apache-2.0`). - Code: (Apache-2.0). - Paper: Tschannen et al., "SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features", 2025, . - Training data: WebLI (Google internal, never released). ## 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 — ; full text in [`LICENSES/Apache-2.0.txt`](../../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`](../../THIRD_PARTY_MODELS.md).