Instructions to use zeromodels/sam3 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ZeroModels
How to use zeromodels/sam3 with ZeroModels:
# pip install -U zeromodels # ZeroModels is pure Keras 3, so pick a backend: "jax", "torch" or "tensorflow". import os os.environ["KERAS_BACKEND"] = "jax" from zeromodels import AutoZModel # AutoZModel reads the repo's model_type and loads the matching class. # For a task head use the matching loader, e.g. AutoZMImageClassify / AutoZMDetect / # AutoZMSemanticSegment / AutoZMTextGenerate (see zeromodels.auto). model = AutoZModel.from_weights("zeromodels/sam3") - Keras
How to use zeromodels/sam3 with Keras:
# !pip install -U keras tensorflow huggingface_hub # Keras needs TensorFlow installed to read "hf://" paths, so the tensorflow backend is selected here; # "jax" and "torch" also work for computation once TensorFlow is installed. import os os.environ["KERAS_BACKEND"] = "tensorflow" import keras model = keras.saving.load_model("hf://zeromodels/sam3") - Notebooks
- Google Colab
- Kaggle
See our collection for all versions of SAM.
Run SAM3 with Keras 3: JAX, PyTorch, or TensorFlow
zeromodels/sam3
Paper: SAM 3: Segment Anything with Concepts (arXiv:2511.16719) · HF Papers
SAM3 segments by concept, not location: give it a noun phrase and it finds every matching instance. A ViT-L backbone and FPN feed a DETR-style encoder/decoder with object queries; a CLIP text encoder supplies the open-vocabulary side. Boxes can still be mixed with text.
For more details on the model, please go to Meta's original model card.
Pure-Keras 3 conversion of facebook/sam3 for zeromodels. One implementation runs unmodified on TensorFlow / Torch / JAX.
This is a concept-prompted checkpoint (SAM3InstanceSegment / SAM3Detect / SAM3SemanticSegment): pass a text noun phrase (backbone ViT-L/14).
✨ Quick start
import os
os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow"
from zeromodels.models.sam3 import SAM3InstanceSegment
segmenter = SAM3InstanceSegment.from_weights("zeromodels/sam3")
result = segmenter.predict(
images="your_image.jpg", text="person", threshold=0.3
)[0]
print(len(result["scores"]), result["masks"].shape)
Load any SAM / SAM2 / SAM3 variant the same way with from_weights("zeromodels/<variant>") (use SAM3InstanceSegment for this repo):
| Variant | Hub | Family |
|---|---|---|
sam_vit_base |
zeromodels/sam_vit_base |
SAM |
sam_vit_large |
zeromodels/sam_vit_large |
SAM |
sam_vit_huge |
zeromodels/sam_vit_huge |
SAM |
sam2_hiera_small |
zeromodels/sam2_hiera_small |
SAM2 |
sam2_hiera_base_plus |
zeromodels/sam2_hiera_base_plus |
SAM2 |
sam2_hiera_large |
zeromodels/sam2_hiera_large |
SAM2 |
sam3 |
zeromodels/sam3 |
SAM3 |
Tips
- Set
KERAS_BACKENDbefore importing Keras / zeromodels. - SAM / SAM2: point coordinates are in original pixel space; box prompts need
enable_boxes=True/include_box_input=Truewhen building the graph. - SAM2 in this port is image-only (no video memory bank).
- SAM3: prefer
SAM3InstanceSegment.predict(...)for text prompts; upstreamfacebook/sam3is gated. - See SAM3 docs and Loading Weights.
- Community / upstream safetensors still work via the
hf:prefix, e.g.SAM3Model.from_weights("hf:facebook/sam3").
Special Thanks
A huge thank you to the Meta SAM 3 authors for creating and releasing these models.
License: see the SAM 3 LICENSE (Hub tag: other / sam-license). Upstream facebook/sam3 is gated.
- Downloads last month
- 45
Model tree for zeromodels/sam3
Base model
facebook/sam3