{
  "id": "siglip2-so400m-patch16-naflex",
  "identity": {
    "family": "siglip2",
    "display_name": "SigLIP 2 so400m patch16 NaFlex",
    "hub_id": "google/siglip2-so400m-patch16-naflex",
    "api_name": null,
    "revision": null,
    "variants": [],
    "license": "Apache-2.0",
    "commercial_use": true,
    "commercial_use_note": "Apache-2.0 weights and code; no use restrictions.",
    "release_date": "2025-02-18",
    "paper_url": "https://arxiv.org/abs/2502.14786",
    "repo_url": "https://github.com/google-research/big_vision"
  },
  "task": {
    "category": "embedding",
    "modalities_in": [
      "image",
      "text",
      "document"
    ],
    "modalities_out": [
      "vector"
    ],
    "best_at": "Documents, screenshots, receipts and wide or tall images: keeps the native aspect ratio instead of squashing to a square.",
    "worst_at": "Variable sequence length per image makes batching uneven; square photos gain nothing over the fixed-resolution model."
  },
  "io": {
    "input": {
      "image": {
        "resolution": "native aspect ratio, resized so patches <= max_num_patches (default 256; 128 to 1024)",
        "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"
      }
    }
  },
  "mixpeek_wiring": {
    "extractors": [],
    "feature_uris": [],
    "vector_indexes": [],
    "retriever_stages": [
      "feature_search"
    ],
    "composes_with": [
      "PDF pages and screenshots -> NaFlex image vectors -> feature_search with a text query"
    ]
  },
  "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. The processor takes max_num_patches; batches carry a pixel attention mask.",
    "serve_apps": [],
    "runtime": "transformers AutoModel + AutoProcessor (Siglip2Model, NaFlex processor)",
    "weights_format": "safetensors",
    "trust_remote_code": false,
    "size_on_disk_mb": 4543,
    "params_millions": 1136,
    "preprocessing": "Resize keeping aspect ratio to fit max_num_patches of 16x16, normalize mean 0.5 std 0.5, pad patches and build pixel_attention_mask.",
    "postprocessing": "L2-normalize pooled image and text embeddings; sigmoid of scaled logits for zero-shot scores.",
    "serving_shape": "both",
    "batch_size": 16,
    "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-naflex@cc24074f717b612951c2dead130904ab9b65a81e"
  ],
  "formats": [
    {
      "ref": "hf://google/siglip2-so400m-patch16-naflex@cc24074f717b612951c2dead130904ab9b65a81e",
      "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",
    "document-search"
  ],
  "recommended": {
    "value": false,
    "for": [],
    "reason": null
  },
  "demos": [],
  "seo": {
    "title": "SigLIP 2 so400m patch16 NaFlex: embedding model",
    "description": "SigLIP 2 so400m patch16 NaFlex is a image, text and document embedding model (Apache-2.0). Can run on Mixpeek as a custom plugin.",
    "keywords": [
      "SigLIP 2 so400m patch16 NaFlex",
      "siglip2",
      "embedding",
      "google/siglip2-so400m-patch16-naflex",
      "visual-search",
      "document-search"
    ],
    "faqs": [
      {
        "q": "What is SigLIP 2 so400m patch16 NaFlex best at?",
        "a": "Documents, screenshots, receipts and wide or tall images: keeps the native aspect ratio instead of squashing to a square."
      },
      {
        "q": "What are the limits of SigLIP 2 so400m patch16 NaFlex?",
        "a": "Variable sequence length per image makes batching uneven; square photos gain nothing over the fixed-resolution model."
      },
      {
        "q": "Can SigLIP 2 so400m patch16 NaFlex be used commercially?",
        "a": "Yes. Apache-2.0 weights and code; no use restrictions."
      },
      {
        "q": "How does SigLIP 2 so400m patch16 NaFlex 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. The processor takes max_num_patches; batches carry a pixel attention mask."
      },
      {
        "q": "What does SigLIP 2 so400m patch16 NaFlex output?",
        "a": "A 1152-dimensional dense vector, compared by cosine similarity."
      }
    ]
  },
  "last_verified": "2026-11-05",
  "sources": [
    "https://huggingface.co/google/siglip2-so400m-patch16-naflex",
    "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",
      "document"
    ],
    "modalities_out": [
      "vector"
    ],
    "use_cases": [
      "visual-search",
      "document-search"
    ],
    "recommended": false,
    "release_date": "2025-02-18",
    "params_millions": 1136,
    "size_on_disk_mb": 4543,
    "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
}
