Skip to page content
SAVRN
Search Plan a project

Open-weight model · Zero shot image classification

siglip2-base-patch16-256-coreml

by Fluid Inference Community FluidInference/siglip2-base-patch16-256-coreml

siglip2-base-patch16-256-coreml is an open-weight model for zero shot image classification from Fluid Inference Community, released under Apache License 2.0. Its published files total 784.0 MB.

Core ML conversion of Google's SigLIP 2 google/siglip2-base-patch16-256, with both towers: an image encoder and a text encoder, each returning an L2-normalized 768-d embedding. Labels are plain text chosen at run time, so it classifies images zero-shot.

Parameters—
Context—
Weights749.6 MB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Model Card

By Fluid Inference Community, published under apache-2.0, revision 524a5a7d666f.

Core ML conversion of Google's SigLIP 2 google/siglip2-base-patch16-256, with both towers: an image encoder and a text encoder, each returning an L2-normalized 768-d embedding. Labels are plain text chosen at run time, so it classifies images zero-shot. Google authored the Apache-2.0 source model; Fluid Inference converted it. The image encoder runs entirely on the Apple Neural Engine. fp16 weights, macOS 14 / iOS 17 or newer. config.json holds the preprocessing and scoring constants: trained without an attention mask, so the padding must match. an independent probability per label; softmax or argmax over cos picks one label. Embed the labels once and reuse them for every image. ImageNet-1k…

Read Fluid Inference Community's full model card

SigLIP 2 base (256 px) for Core ML

Core ML conversion of Google's SigLIP 2 google/siglip2-base-patch16-256, with both towers: an image encoder and a text encoder, each returning an L2-normalized 768-d embedding. Labels are plain text chosen at run time, so it classifies images zero-shot. Google authored the Apache-2.0 source model; Fluid Inference converted it. The image encoder runs entirely on the Apple Neural Engine.

Packages

Package Input Output Size
siglip2-base-patch16-256-image-fp16.mlpackage pixel_values float32 [1, 3, 256, 256] image_embeds float32 [1, 768] 176 MB
siglip2-base-patch16-256-text-fp16.mlpackage input_ids int32 [1, 64] text_embeds float32 [1, 768] 539 MB

fp16 weights, macOS 14 / iOS 17 or newer. config.json holds the preprocessing and scoring constants:

  • Image: resize to 256 × 256 (bilinear, antialiased like PIL), scale to [0, 1], then (x − 0.5) / 0.5.
  • Text: lowercase, Gemma tokenizer (tokenizer.json), append <eos>, pad with <pad> to 64 tokens. SigLIP was trained without an attention mask, so the padding must match.
  • Scores: cos = image_embeds · text_embeds. sigmoid(logit_scale · cos + logit_bias) (112.90, −16.77) gives an independent probability per label; softmax or argmax over cos picks one label. Embed the labels once and reuse them for every image.

Accuracy

ImageNet-1k zero-shot, all 50,000 test images (clip-benchmark/wds_imagenet1k, prompt this is a photo of {class}.), fp16 on CPU + Neural Engine against the fp32 PyTorch model:

PyTorch fp32 Core ML fp16
Top-1 76.79% 76.76%
Same prediction as PyTorch — 99.32%
Image embedding cosine, mean / min — 0.99990 / 0.975

Google reports 79.1% with its own class names and prompts; the single-prompt protocol here is lower for both backends. Oxford-IIIT Pets test (3,669 photos, 37 breeds): Core ML 94.77%, PyTorch 94.74%, 99.89% identical.

Speed and memory

Apple M5 Pro (24 GB), macOS 27. Image encoder alone, one call at a time: 5.2 ms on CPU + Neural Engine (100% of ops on the ANE), 3.5 ms CPU + GPU, versus 19.1 ms for PyTorch fp32 on MPS.

End to end on 7,349 Oxford-IIIT Pets photos (JPEG decode, resize, encoder, scoring against 37 cached breed prompts), same photos and prompts, measured after model load:

Core ML (Swift, 4 photos in flight) PyTorch fp32, MPS, batch 32
Time 36.3 s 102.2 s
Photos per second 202 72
Peak memory (process) 262 MB 4.24 GB
Model on disk 715 MB 1.50 GB
Accuracy 94.26% 94.11%

PyTorch batch 1: 153.5 s, 48 photos/s, 3.64 GB. Reports: reports/.

Use from Swift

FluidUse wraps both packages (SigLIP2Manager, Swift Gemma tokenizer with token ids identical to the Python tokenizer) and includes the photo-sorting demo ImageSortDemo. Conversion scripts: FluidInference/mobius models/emb/siglip2/coreml.

Identity and Version

Repository
FluidInference/siglip2-base-patch16-256-coreml
Publisher
Fluid Inference Community
Task
Zero shot image classification
Modality
Other
Library
coremltools
Parameters
Not stated by the source
Languages
Not stated by the source
Revision
524a5a7d666f23002853831915cf1cc13734f73f
First published
2026-09-26
Last updated
2026-09-26

Files and Weights

14 files, 784.0 MB in total. The weights are 4 files totalling 749.6 MB in bin, mlmodel.

Weights4 files · 749.6 MB
Configuration6 files · 3.6 KB
Tokenizer2 files · 34.4 MB
Documentation1 file · 3.4 KB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
siglip2-base-patch16-256-image-fp16.mlpackage/Data/com.apple.CoreML/model.mlmodelWeights140.0 KB 702fdc0b5579
siglip2-base-patch16-256-image-fp16.mlpackage/Data/com.apple.CoreML/weights/weight.binWeights184.7 MB da086438b60a
siglip2-base-patch16-256-text-fp16.mlpackage/Data/com.apple.CoreML/model.mlmodelWeights128.8 KB 69fce0f538fb
siglip2-base-patch16-256-text-fp16.mlpackage/Data/com.apple.CoreML/weights/weight.binWeights564.6 MB 9a52dd822297
config.jsonConfiguration468 B —
reports/imagenet1k-zeroshot-base-256-fp16-ane.jsonConfiguration465 B —
reports/oxford-pets-zeroshot-base-256-fp16-ane.jsonConfiguration324 B —
reports/pets-7349-coreml-vs-pytorch.jsonConfiguration1.1 KB —
siglip2-base-patch16-256-image-fp16.mlpackage/Manifest.jsonConfiguration617 B —
siglip2-base-patch16-256-text-fp16.mlpackage/Manifest.jsonConfiguration617 B —
README.mdDocumentation3.4 KB —
.gitattributesRepository1.6 KB —
tokenizer.jsonTokenizer34.4 MB caefd6311953
tokenizer_config.jsonTokenizer656 B —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
749.6 MB
Download from Fluid Inference Community

Released by Fluid Inference Community through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published749.6 MB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About siglip2-base-patch16-256-coreml

Can I use siglip2-base-patch16-256-coreml commercially?

Yes. siglip2-base-patch16-256-coreml is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Zero shot image classification

clip-vit-base-patch32

OpenAI

Disclaimer: The model card is taken and modified from the official CLIP repository, it can be found here. The CLIP model was developed by researchers at OpenAI to learn about what contributes to robustness in computer vision tasks. The model was also developed to test the ability of models to generalize to arbitrary image classification tasks in a zero-shot manner. It was not developed for general model deployment - to deploy models like CLIP, researchers will first need to carefully study their capabilities in relation to the specific context they’re being deployed within. January 2021 The model uses a ViT-B/32 Transformer architecture as an image encoder and uses a masked self-attention…

Open weights 77 tokens transformers

Model · Zero shot image classification

clip-vit-large-patch14-336

OpenAI

This model was trained from scratch on an unknown dataset. It achieves the following results on the evaluation set: The following hyperparameters were used during training: - trainingprecision: float32 - Transformers 4.21.3 - TensorFlow 2.8.2 - Tokenizers 0.12.1

Open weights 77 tokens transformers

Model · Zero shot image classification

CLIP-convnext_base_w-laion2B-s13B-b82K-augreg

LAION eV

A series of CLIP ConvNeXt-Base (w/ wide embed dim) models trained on subsets LAION-5B (https://laion.ai/blog/laion-5b/) using OpenCLIP (https://github.com/mlfoundations/openclip). Explore an alternative to ViT and ResNet (w/ AttentionPooling) CLIP models that scales well with model size and image resolution First known ConvNeXt CLIP models trained at scale in the range of CLIP ViT-B/16 and RN50x4 models First released model weights exploring increase of augmentation + regularization for image tower via adding (greater scale range of RRC, random erasing, stochastic depth) The models utilize the timm ConvNeXt-Base model (convnextbase) as the image tower, and the same text tower as the RN50x4…

Open weights mit open_clip

Model · Zero shot image classification

clip-vit-base-patch16

OpenAI

Disclaimer: The model card is taken and modified from the official CLIP repository, it can be found here. The CLIP model was developed by researchers at OpenAI to learn about what contributes to robustness in computer vision tasks. The model was also developed to test the ability of models to generalize to arbitrary image classification tasks in a zero-shot manner. It was not developed for general model deployment - to deploy models like CLIP, researchers will first need to carefully study their capabilities in relation to the specific context they’re being deployed within. January 2021 The base model uses a ViT-B/16 Transformer architecture as an image encoder and uses a masked…

Open weights 77 tokens transformers

Model · Zero shot image classification

DermLIP_ViT-B-16

Siyuan Yan

DermLIP is a vision-language model for dermatology, trained on the Derm1M dataset—the largest dermatological image-text corpus to date. python import openclip from PIL import Image import torch model,, preprocess = openclip.createmodelandtransforms( 'hf-hub:redlessone/DermLIPViT-B-16' model.eval() tokenizer = openclip.gettokenizer('hf-hub:redlessone/DermLIPViT-B-16') image = preprocess(Image.open("yourskinimage.png")).unsqueeze(0) PADCLASSNAMES = [ "nevus", "basal cell carcinoma", "actinic keratosis", "seborrheic keratosis", "squamous cell carcinoma", "melanoma" template = lambda c: f'This is a skin image of {c}' text = tokenizer([template(c) for c in PADCLASSNAMES]) with torch.nograd()…

Open weights cc-by-4.0 transformers

Model · Zero shot image classification

DermFM-Zero

Siyuan Yan

DermFM-Zero: A Vision-Language Foundation Model for Zero-shot Clinical Collaboration and Automated Concept Discovery in Dermatology DermFM-Zero pairs a PanDerm ViT-L/16 vision encoder with a knowledge-enhanced PubMedBERT text encoder, aligned on dermatology image–text pairs with multi-aspect knowledge contrastive learning. It classifies dermoscopic and clinical images from text prompts without task-specific training, retrieves images from text and text from images, serves as a backbone for multimodal fine-tuning and VQA, and exposes interpretable concepts through sparse autoencoders. In the paper, it was evaluated on diverse benchmarks and in three multinational reader studies with 761…

Access requested at publisher cc-by-nc-4.0 open_clip