MCPcopy Index your code
hub / github.com/facebookresearch/sam3

github.com/facebookresearch/sam3 @main

repository ↗ · DeepWiki ↗ · + Follow
2,115 symbols 6,694 edges 170 files 960 documented · 45% updated 20d ago★ 10,814262 open issues
README

SAM 3: Segment Anything with Concepts

Meta Superintelligence Labs

Nicolas Carion*, Laura Gustafson*, Yuan-Ting Hu*, Shoubhik Debnath*, Ronghang Hu*, Didac Suris*, Chaitanya Ryali*, Kalyan Vasudev Alwala*, Haitham Khedr*, Andrew Huang, Jie Lei, Tengyu Ma, Baishan Guo, Arpit Kalla, Markus Marks, Joseph Greer, Meng Wang, Peize Sun, Roman Rädle, Triantafyllos Afouras, Effrosyni Mavroudi, Katherine Xu°, Tsung-Han Wu°, Yu Zhou°, Liliane Momeni°, Rishi Hazra°, Shuangrui Ding°, Sagar Vaze°, Francois Porcher°, Feng Li°, Siyuan Li°, Aishwarya Kamath°, Ho Kei Cheng°, Piotr Dollar†, Nikhila Ravi†, Kate Saenko†, Pengchuan Zhang†, Christoph Feichtenhofer

* core contributor, ° intern, † project lead, order is random within groups

[Paper] [Project] [Demo] [Blog] [BibTeX]

SAM 3 architecture SAM 3 is a unified foundation model for promptable segmentation in images and videos. It can detect, segment, and track objects using text or visual prompts such as points, boxes, and masks. Compared to its predecessor SAM 2, SAM 3 introduces the ability to exhaustively segment all instances of an open-vocabulary concept specified by a short text phrase or exemplars. Unlike prior work, SAM 3 can handle a vastly larger set of open-vocabulary prompts. It achieves 75-80% of human performance on our new SA-CO benchmark which contains 270K unique concepts, over 50 times more than existing benchmarks.

This breakthrough is driven by an innovative data engine that has automatically annotated over 4 million unique concepts, creating the largest high-quality open-vocabulary segmentation dataset to date. In addition, SAM 3 introduces a new model architecture featuring a presence token that improves discrimination between closely related text prompts (e.g., “a player in white” vs. “a player in red”), as well as a decoupled detector–tracker design that minimizes task interference and scales efficiently with data.

Latest updates

03/27/2026 -- SAM 3.1 Object Multiplex is released. It introduces a shared-memory approach for joint multi-object tracking that is significantly faster without sacrificing accuracy.

  • A new suite of improved model checkpoints (denoted as SAM 3.1) are released on Hugging Face. See RELEASE_SAM3p1.md for full details.
  • To use the new SAM 3.1 checkpoints, you need the latest model code from this repo. If you have installed an earlier version of this repo, pull the latest code from this repo (with git pull), and then reinstall the repo following Installation below.

Installation

Prerequisites

  • Python 3.12 or higher
  • PyTorch 2.7 or higher
  • CUDA-compatible GPU with CUDA 12.6 or higher

  • Create a new Conda environment:

conda create -n sam3 python=3.12
conda deactivate
conda activate sam3
  1. Install PyTorch with CUDA support:
pip install torch==2.10.0 torchvision --index-url https://download.pytorch.org/whl/cu128
  1. Clone the repository and install the package:
git clone https://github.com/facebookresearch/sam3.git
cd sam3
pip install -e .
  1. Install additional dependencies for example notebooks or development:
# For running example notebooks
pip install -e ".[notebooks]"

# For development
pip install -e ".[train,dev]"
  1. Optional dependencies for faster inference
pip install einops ninja && pip install flash-attn-3 --no-deps --index-url https://download.pytorch.org/whl/cu128
pip install git+https://github.com/ronghanghu/cc_torch.git

Getting Started

⚠️ Before using SAM 3, please request access to the checkpoints on the SAM 3 Hugging Face repo. Once accepted, you need to be authenticated to download the checkpoints. You can do this by running the following steps (e.g. hf auth login after generating an access token.)

Basic Usage

import torch
#################################### For Image ####################################
from PIL import Image
from sam3.model_builder import build_sam3_image_model
from sam3.model.sam3_image_processor import Sam3Processor
# Load the model
model = build_sam3_image_model()
processor = Sam3Processor(model)
# Load an image
image = Image.open("<YOUR_IMAGE_PATH.jpg>")
inference_state = processor.set_image(image)
# Prompt the model with text
output = processor.set_text_prompt(state=inference_state, prompt="<YOUR_TEXT_PROMPT>")

# Get the masks, bounding boxes, and scores
masks, boxes, scores = output["masks"], output["boxes"], output["scores"]

#################################### For Video ####################################

from sam3.model_builder import build_sam3_video_predictor

video_predictor = build_sam3_video_predictor()
video_path = "<YOUR_VIDEO_PATH>" # a JPEG folder or an MP4 video file
# Start a session
response = video_predictor.handle_request(
    request=dict(
        type="start_session",
        resource_path=video_path,
    )
)
response = video_predictor.handle_request(
    request=dict(
        type="add_prompt",
        session_id=response["session_id"],
        frame_index=0, # Arbitrary frame index
        text="<YOUR_TEXT_PROMPT>",
    )
)
output = response["outputs"]

Examples

The examples directory contains notebooks demonstrating how to use SAM3 with various types of prompts:

There are additional notebooks in the examples directory that demonstrate how to use SAM 3 for interactive instance segmentation in images and videos (SAM 1/2 tasks), or as a tool for an MLLM, and how to run evaluations on the SA-Co dataset.

To run the Jupyter notebook examples:

# Make sure you have the notebooks dependencies installed
pip install -e ".[notebooks]"

# Start Jupyter notebook
jupyter notebook examples/sam3_image_predictor_example.ipynb

Model

SAM 3 consists of a detector and a tracker that share a vision encoder. It has 848M parameters. The detector is a DETR-based model conditioned on text, geometry, and image exemplars. The tracker inherits the SAM 2 transformer encoder-decoder architecture, supporting video segmentation and interactive refinement.

Image Results

Model Instance Segmentation Box Detection
LVIS SA-Co/Gold LVIS COCO SA-Co/Gold
cgF1 AP cgF1 cgF1 AP AP APo cgF1
Human - - 72.8 - - - - 74.0
OWLv2* 29.3 43.4 24.6 30.2 45.5 46.1 23.9 24.5
DINO-X - 38.5 21.3 - 52.4 56.0 - 22.5
Gemini 2.5 13.4 - 13.0 16.1 - - - 14.4

Core symbols most depended-on inside this repo

append
called by 462
sam3/model/model_misc.py
cat
called by 150
sam3/agent/helpers/boxes.py
to
called by 106
sam3/model/sam3_image.py
update
called by 91
sam3/eval/coco_eval.py
format
called by 58
sam3/logger.py
add
called by 52
sam3/train/utils/train_utils.py
to
called by 51
sam3/agent/helpers/boxes.py
clone
called by 47
sam3/model/data_misc.py

Shape

Method 1,302
Function 524
Class 282
Route 7

Languages

Python100%

Modules by API surface

sam3/train/transforms/basic_for_api.py80 symbols
sam3/agent/helpers/visualizer.py55 symbols
sam3/train/transforms/basic.py49 symbols
sam3/model/sam3_multiplex_tracking.py48 symbols
sam3/train/trainer.py47 symbols
sam3/train/transforms/filter_query_transforms.py46 symbols
sam3/model/model_misc.py44 symbols
sam3/model/video_tracking_multiplex.py41 symbols
sam3/model/sam3_video_base.py41 symbols
sam3/agent/helpers/masks.py40 symbols
sam3/model/decoder.py37 symbols
sam3/model/sam3_video_inference.py36 symbols

Dependencies from manifests, versioned

ftfy6.1.1 · 1×
iopath0.1.10 · 1×
regex
timm1.0.17 · 1×
tqdm
typing_extensions

For agents

$ claude mcp add sam3 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact