sam3-image / README.md
Deekshith
Update Readme
4c25caf verified
---
license: other
license_name: apache-2.0
license_link: https://huggingface.co/facebook/sam3/blob/main/LICENSE
base_model:
- facebook/sam3
library_name: mlx
tags:
- mlx
- apple-silicon
- segmentation
- sam3
- image-segmentation
- vision
language:
- en
pipeline_tag: image-segmentation
---
# 🎯 MLX SAM3
**Segment Anything Model 3 — Native Apple Silicon Implementation**
<p align="center">
<a href="https://github.com/ml-explore/mlx"><img src="https://img.shields.io/badge/MLX-Framework-blue" alt="MLX"></a>
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/Python-3.13+-green" alt="Python 3.13+"></a>
<a href="https://github.com/Deekshith-Dade/mlx_sam3"><img src="https://img.shields.io/badge/GitHub-Repository-black" alt="GitHub"></a>
</p>
This is an **MLX port** of [Meta's SAM3](https://huggingface.co/facebook/sam3) model, optimized for native execution on Apple Silicon (M1/M2/M3/M4) Macs.
> 📖 **Learn more**: Check out the [accompanying blog post](https://deekshith.me/blog/mlx-sam3) explaining the SAM3 architecture and this implementation.
## Model Description
SAM3 (Segment Anything Model 3) is a powerful image segmentation model that can segment objects in images using:
- **Text prompts** — Describe what you want to segment ("car", "person", "dog")
- **Box prompts** — Draw bounding boxes to include or exclude regions
This MLX port provides native Apple Silicon performance, leveraging Apple's MLX framework for optimized inference on Mac.
## Intended Uses
- **Interactive image segmentation** on Apple Silicon Macs
- **Object detection and masking** with text descriptions
- **Region-based segmentation** using bounding box prompts
- **Rapid prototyping** of segmentation workflows on Mac
## How to Use
### Installation
```bash
# Clone the repository
git clone https://github.com/Deekshith-Dade/mlx_sam3.git
cd mlx-sam3
# Install with uv (recommended)
uv sync
# Or with pip
pip install -e .
```
### Python API
```python
from PIL import Image
from sam3 import build_sam3_image_model
from sam3.model.sam3_image_processor import Sam3Processor
# Load model (auto-downloads weights on first run)
model = build_sam3_image_model()
processor = Sam3Processor(model, confidence_threshold=0.5)
# Load and process an image
image = Image.open("your_image.jpg")
state = processor.set_image(image)
# Segment with text prompt
state = processor.set_text_prompt("person", state)
# Access results
masks = state["masks"] # Binary segmentation masks
boxes = state["boxes"] # Bounding boxes [x0, y0, x1, y1]
scores = state["scores"] # Confidence scores
print(f"Found {len(scores)} objects")
```
### Web Interface
Launch the interactive web application:
```bash
cd app && ./run.sh
```
- **Frontend**: http://localhost:3000
- **API**: http://localhost:8000
- **API Docs**: http://localhost:8000/docs
## Requirements
| Requirement | Version | Notes |
|-------------|---------|-------|
| **macOS** | 13.0+ | Apple Silicon required (M1/M2/M3/M4) |
| **Python** | 3.13+ | Required for MLX compatibility |
| **Node.js** | 18+ | For the web interface (optional) |
> ⚠️ **Apple Silicon Only**: This implementation uses MLX, which is optimized exclusively for Apple Silicon.
## Model Details
- **Architecture**: SAM3 with ViTDet backbone
- **Framework**: MLX (Apple's machine learning framework)
- **Weights**: Converted from original PyTorch weights
- **Model Size**: ~3.5GB
## Limitations
- Runs **only on Apple Silicon** Macs (M1/M2/M3/M4)
- Requires macOS 13.0 or later
- Python 3.13+ required for MLX compatibility
## Citation
If you use this model, please cite the original SAM3 paper and this MLX implementation:
```bibtex
@misc{mlx-sam3,
author = {Deekshith Dade},
title = {MLX SAM3: Native Apple Silicon Implementation},
year = {2024},
url = {https://github.com/Deekshith-Dade/mlx_sam3}
}
```
## Links
- **GitHub Repository**: [https://github.com/Deekshith-Dade/mlx_sam3](https://github.com/Deekshith-Dade/mlx_sam3)
- **Blog Post**: [https://deekshith.me/blog/mlx-sam3](https://deekshith.me/blog/mlx-sam3)
- **Original SAM3**: [https://huggingface.co/facebook/sam3](https://huggingface.co/facebook/sam3)
## Acknowledgments
- [Meta AI](https://ai.meta.com/) for the original SAM3 model
- [Apple MLX Team](https://github.com/ml-explore/mlx) for the MLX framework
- The open-source community for continuous inspiration
---
**Built with ❤️ for Apple Silicon**