{
  "id": "siglip2-so400m-patch16-384",
  "identity": {
    "family": "siglip2",
    "display_name": "SigLIP 2 so400m patch16 (256/384/512)",
    "hub_id": "google/siglip2-so400m-patch16-384",
    "api_name": null,
    "revision": null,
    "variants": [
      "google/siglip2-so400m-patch16-256",
      "google/siglip2-so400m-patch16-512"
    ],
    "license": "Apache-2.0",
    "commercial_use": true,
    "commercial_use_note": "Apache-2.0 weights and code; no use restrictions.",
    "release_date": "2025-02-17",
    "paper_url": "https://arxiv.org/abs/2502.14786",
    "repo_url": "https://github.com/google-research/big_vision"
  },
  "task": {
    "category": "embedding",
    "modalities_in": [
      "image",
      "text"
    ],
    "modalities_out": [
      "vector"
    ],
    "best_at": "Patch16 so400m: fewer tokens than patch14 at the same resolution, so faster per frame.",
    "worst_at": "Same 1.1B parameter cost as patch14; GPU in practice."
  },
  "io": {
    "input": {
      "image": {
        "resolution": "384x384 (256, 512 siblings)",
        "color": "RGB",
        "normalize": "mean 0.5, std 0.5"
      },
      "text": {
        "max_tokens": 64
      },
      "prompts": "lowercase captions; the card uses 'this is a photo of {label}.'; Gemma tokenizer, padded to max_length 64"
    },
    "output": {
      "vector": {
        "dims": 1152,
        "distance": "cosine",
        "type": "dense"
      },
      "note": "image and text vectors share one space; L2-normalize before cosine"
    }
  },
  "mixpeek_wiring": {
    "extractors": [],
    "feature_uris": [],
    "vector_indexes": [],
    "retriever_stages": [
      "feature_search",
      "mmr"
    ],
    "composes_with": [
      "video frames (VideoFrameExpander) -> image vectors -> feature_search with a text query",
      "detector boxes (RT-DETR, D-FINE) -> crops -> image vectors per object",
      "image vectors + E5 text vectors on captions -> feature_search fusion (dbsf)"
    ]
  },
  "run": {
    "status": "plugin",
    "status_reason": "Not served. Would run as a custom extractor plugin (engine/extractors/<name>/v1/ with realtime.py for query embedding), loading safetensors with trust_remote_code false.",
    "serve_apps": [],
    "runtime": "transformers AutoModel + AutoProcessor (Siglip2Model)",
    "weights_format": "safetensors",
    "trust_remote_code": false,
    "size_on_disk_mb": 4544,
    "params_millions": 1136,
    "preprocessing": "Resize to 384x384, rescale to 0..1, normalize mean 0.5 std 0.5; text padded to 64 tokens (max_length).",
    "postprocessing": "L2-normalize pooled image and text embeddings; sigmoid of scaled logits for zero-shot scores.",
    "serving_shape": "both",
    "batch_size": 32,
    "serve_batch": null,
    "scale_to_zero": {
      "min_replicas": 0,
      "max_replicas": 1,
      "idle_timeout_s": 600,
      "memory_gb": 8,
      "num_cpus": 2,
      "num_gpus": 1,
      "cold_start_s": {
        "warm_node_s": null,
        "new_node_s": null,
        "source": null
      },
      "cpu_fallback": true
    }
  },
  "cost": {
    "unmeasured": true,
    "measured": null,
    "note": "No committed measurement; plan row 3 measures it in the standalone image."
  },
  "evidence": {
    "unmeasured": true,
    "items": []
  },
  "refs": [
    "hf://google/siglip2-so400m-patch16-384@dd658faac399427308559e2c3ac1e99cbe43845d"
  ],
  "formats": [
    {
      "ref": "hf://google/siglip2-so400m-patch16-384@dd658faac399427308559e2c3ac1e99cbe43845d",
      "format": "safetensors",
      "file": "model.safetensors",
      "loader": "transformers / open_clip from_pretrained; Mixpeek Hub import (api/models/huggingface.py)",
      "supported_today": true
    }
  ],
  "use_cases": [
    "visual-search",
    "product-search"
  ],
  "recommended": {
    "value": false,
    "for": [],
    "reason": null
  },
  "demos": [],
  "seo": {
    "title": "SigLIP 2 so400m patch16 (256/384/512): embedding model",
    "description": "SigLIP 2 so400m patch16 (256/384/512) is a image and text embedding model (Apache-2.0). Can run on Mixpeek as a custom plugin.",
    "keywords": [
      "SigLIP 2 so400m patch16 (256/384/512)",
      "siglip2",
      "embedding",
      "google/siglip2-so400m-patch16-384",
      "visual-search",
      "product-search"
    ],
    "faqs": [
      {
        "q": "What is SigLIP 2 so400m patch16 (256/384/512) best at?",
        "a": "Patch16 so400m: fewer tokens than patch14 at the same resolution, so faster per frame."
      },
      {
        "q": "What are the limits of SigLIP 2 so400m patch16 (256/384/512)?",
        "a": "Same 1.1B parameter cost as patch14; GPU in practice."
      },
      {
        "q": "Can SigLIP 2 so400m patch16 (256/384/512) be used commercially?",
        "a": "Yes. Apache-2.0 weights and code; no use restrictions."
      },
      {
        "q": "How does SigLIP 2 so400m patch16 (256/384/512) run on Mixpeek?",
        "a": "Not served. Would run as a custom extractor plugin (engine/extractors/<name>/v1/ with realtime.py for query embedding), loading safetensors with trust_remote_code false."
      },
      {
        "q": "What does SigLIP 2 so400m patch16 (256/384/512) output?",
        "a": "A 1152-dimensional dense vector, compared by cosine similarity."
      }
    ]
  },
  "last_verified": "2026-11-05",
  "sources": [
    "https://huggingface.co/google/siglip2-so400m-patch16-384",
    "https://arxiv.org/abs/2502.14786",
    "https://huggingface.co/docs/transformers/model_doc/siglip2"
  ],
  "registry": null,
  "templates": [],
  "usage": {
    "namespaces": null,
    "collections": null,
    "uncounted": true,
    "templates": 0,
    "counted_at": null,
    "source": null
  },
  "facets": {
    "status": "plugin",
    "category": "embedding",
    "family": "siglip2",
    "license": "Apache-2.0",
    "commercial_use": true,
    "modalities_in": [
      "image",
      "text"
    ],
    "modalities_out": [
      "vector"
    ],
    "use_cases": [
      "visual-search",
      "product-search"
    ],
    "recommended": false,
    "release_date": "2025-02-17",
    "params_millions": 1136,
    "size_on_disk_mb": 4544,
    "vector_dims": 1152,
    "vector_distance": "cosine",
    "weights_format": "safetensors",
    "formats": [
      "safetensors"
    ],
    "loadable_today": true,
    "trust_remote_code": false,
    "cpu_fallback": true,
    "num_gpus": 1,
    "memory_gb": 8,
    "min_replicas": 0,
    "serving_shape": "both",
    "served": false,
    "ref_schemes": [
      "hf"
    ],
    "has_evidence": false,
    "cost_measured": false,
    "template_count": 0,
    "usage_namespaces": null,
    "usage_collections": null,
    "usage_uncounted": true,
    "has_demo": false,
    "rank_score": 1
  },
  "rank_score": 1
}
