Download README.md from OfflineBase/sam3.1-muse: direct link, hf CLI and curl.
- Browser
- Download file 8.02 kB
-
https://huggingface.co/OfflineBase/sam3.1-muse/resolve/main/README.md
- Command line
-
hf download hf://OfflineBase/sam3.1-muse/README.md
-
curl -L -o README.md https://huggingface.co/OfflineBase/sam3.1-muse/resolve/main/README.md
license: other
license_name: sam-license
license_link: LICENSE
base_model: facebook/sam3.1
tags:
- sam3
- sam3.1
- segmentation
- open-vocabulary-detection
- jetson
- fine-tuned
SAM 3.1, tuned for "muse"
Made by Offline Base during the Meta Global AI Developer Hackathon (tuned Nov 3, 2026). Code and the rover demo that uses it: Offline-Base/muse-muse, scripts/edge/sam3/. Results and runs: docs/BUILD_LOG.md.
A fine-tune of Meta's SAM 3.1 that teaches it a new word: "muse", the Muse mascot (a small cream plush figure). Tuned on an NVIDIA Jetson Orin Nano (8 GB) and served on another one, for the Muse Muse rover demo, where a rover's camera looks for the mascot live.
Boxes and scores: SAM 3.1 on jetson-04, Nov 3, 2026, boxes at 0.5 or more (per_image.json); held-out counts from sam31-muse31-before-after.json. Photo: COCO val2017 249129 (Flickr, CC BY 2.0), changed: one held-out mascot cut-out pasted in, boxes drawn.
What is in this repo
muse31_delta_fp16.pt: 58 MB of fp16 weights for SAM 3.1's detector only (transformer encoder and decoder, geometry encoder, scoring heads: 30.4M of 838M parameters). Load Meta's SAM 3.1 first, then swap these tensors in. The vision and language encoders are Meta's, unchanged.LICENSE: Meta's SAM License, which covers this derivative.
How it was tuned
- Meta's own trainer (
sam3/train/train.py), Roboflow 100-shot recipe, 5 epochs, batch 1, lr scale 0.1, 1008 px. - Vision and language encoders frozen (bf16).
- Data: 160 made-up training images of the mascot.
- Held out: 50 images from a video it never trained on (38 show the mascot, 12 don't).
- Hardware: tuned on a Jetson Orin Nano (jetson-03), served on another (jetson-04) beside Meta's weights. Both share one process, using about 3.6 GB of GPU memory in all.
Results on the 50 held-out images
| Model, prompt | Box AP | AP50 | Found at 0.5 (of 38) | Wrong boxes | Right about Muse there or not (of 50) | "Small" set AP |
|---|---|---|---|---|---|---|
| SAM 3.1, Meta's weights, "muse" | 0.000 | 0.000 | 0 | 0 | 12 | 0.000 |
| SAM 3.1, Meta's weights, "plush toy" | 1.000 | 1.000 | 38 | 0 | 50 | 1.000 |
| SAM 3.1 tuned, "muse" | 1.000 | 1.000 | 38 | 0 | 50 | 0.996 |
The "small" set pastes each held-out mascot at 30% size onto the 12 images without it.
Limits
- The tune taught SAM 3.1 a name. On these images Meta's SAM 3.1 already finds the mascot when asked for a "plush toy", so the tune adds a word, not accuracy.
- The held-out set had no other toys, and in live use the tuned model also scores other plush toys, and pictures of the mascot on screens, as "muse" above 0.95. Check matches before trusting them.
- Nothing else was measured beyond one sanity photo, which was unchanged (a truck: "truck" 0.87 to 0.99, 4 wheels both ways).
Samples
The data
- Training: 160 made-up images of the mascot (Jolly, the Muse plush). Like the held-out images, they are composites: the mascot cut out and pasted on plain backgrounds. They stay on the training board (jetson-03) and are not published here; the exact way they were made is recorded only on that board.
- Held out: 50 images from a video the training set never used (38 show the mascot, 12 don't). Not published either.
- Below: the held-out mascot cut-outs pasted into public COCO teddy-bear photos, from a second test on Nov 3 (set B: 30 COCO val2017 photos, each with one held-out mascot cut out by its own mask, scaled to the bears' size and pasted touching no bear). Only the three CC BY photos are shown.
Real outputs: Meta's weights against the tune
Boxes and scores: SAM 3.1 on jetson-04, Nov 3, 2026, boxes at 0.5 or more, drawn from the board's own answers (docs/log/bench/2026-11-03/distract/). Photos: COCO val2017 20553 (Flickr, CC BY 2.0) and 113403 (Flickr, CC BY 2.0), changed: one held-out mascot pasted in, boxes drawn.
Where it goes wrong
The tune saw only the mascot, never another toy to leave out, so "muse" still partly means "a plush toy".
| SAM 3.1, prompt | Set B: mascot AP | Set B: mascot found at 0.5 (of 30) | Set B: other boxes at 0.5 | Set B: mascot and only the mascot | Set A (no mascot): photos with a box | Set A: boxes at 0.5 |
|---|---|---|---|---|---|---|
| Meta's weights, "muse" | 0.000 | 0 | 0 | 0 | 0 | 0 |
| Meta's weights, "plush toy" | 0.466 | 30 | 73 | 0 | 30 | 76 |
| Meta's weights, "toy" | 0.498 | 30 | 82 | 0 | 29 | 71 |
| Tuned, "muse" | 0.773 | 29 | 30 | 8 | 22 | 38 |
Set A is 30 COCO val2017 teddy-bear photos with no mascot (63 bears); set B is the same 30 with one held-out mascot pasted in. The service keeps only boxes at 0.5 or more, so these AP values are lower bounds. The tune boxed 34 of the 63 bears in set A, and on one set-A photo (COCO 145020) it boxed a teddy bear at 0.988. Numbers: scores.json and docs/BUILD_LOG.md, "Nov 3, 2026, about 1 to 1:20 PM ET". The next step would be to tune again with other plush toys as negatives, then photograph the real mascot among toys.
Use
The serving code is in the Muse Muse repo, scripts/edge/sam3/ (server.py --tuned muse=muse31_delta_fp16.pt;
POST /segment with {"image_b64", "prompt": "muse", "tuned": "muse"}).
Built with SAM 3.1 by Meta. Distributed under the SAM License; see LICENSE.



