SAM 3

SAM 3 amplía SAM con un prompt de concepto en texto además de los puntos y cajas habituales, así que una frase como "yellow school bus" devuelve todas las instancias que coinciden. LibreYOLO soporta su camino de imagen mediante una factoría LibreSAM dedicada, separada de la factoría de detectores LibreYOLO().

Tareas
instance segmentation
Tamaños
large at 1008 px
Instalación
pip install libreyolo
Nivel de compatibilidad
Nivel hermano, desde v. Una superficie de producto independiente con su propia factoría y su propio contrato.
Proyecto original
SAM 3 de Meta FAIR, SAM License (Meta custom, gated). Artículo, fuente
Licencias
Código MIT, pesos SAM License (Meta custom, gated). Uso comercial

Instalación

SAM 3 necesita el extra sam, que arrastra transformers y timm.

bash
pip install "libreyolo[sam]"

Los pesos están restringidos: visita huggingface.co/facebook/sam3, acepta la SAM License de Meta y luego ejecuta hf auth login (o define HF_TOKEN) antes de la primera descarga. LibreYOLO registra un aviso de licencia la primera vez que descarga esta familia.

Predicción

LibreSAM(...) (o el LibreSAM3(...) específico de la familia) es un punto de entrada distinto de LibreYOLO(...): devuelve un segmentador guiado por prompts en lugar de un detector, porque aquí un forward pass no significa nada sin un prompt. No hay comando de CLI libreyolo predict para esta familia; usa la API de Python. Solo se admite inferencia sobre imágenes; los modelos de vídeo de SAM 3 quedan fuera del alcance aquí.

Prompts de punto y de caja
from libreyolo import LibreSAM, SAMPLE_IMAGE # "sam3" es el único tamaño ("large"); alias: "sam3", "sam-3", "sam3-large".model = LibreSAM("sam3") # Un prompt de punto: [x, y] en coordenadas de píxel, label 1 = primer plano.result = model.predict(SAMPLE_IMAGE, points=[640, 420], labels=[1])print(result.masks.xy)      # un polígono por máscaraprint(result.boxes.xyxy)    # caja ajustada derivada de la máscara # Un prompt de caja en lugar de un punto.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700])
Prompt de texto (concepto)
from libreyolo import LibreSAM3, SAMPLE_IMAGE model = LibreSAM3("large") # Encuentra todas las instancias que coinciden con la frase, no solo un objeto.# text= es mutuamente excluyente con points, bboxes, labels y masks.result = model.predict(SAMPLE_IMAGE, text="a person")print(result.names)         # {0: "a person"}print(result.boxes.conf)    # la puntuación de detección PCS por instancia
Codifica una vez, lanza muchos prompts
from libreyolo import LibreSAM3, SAMPLE_IMAGE model = LibreSAM3("large") # El encoder de imagen es la parte cara. set_image() lo ejecuta una vez;# cada llamada posterior a predict() reutiliza el embedding cacheado. Una# llamada con text= vuelve a codificar internamente, ya que el tracker y# el encoder de segmentación por concepto no comparten caché.model.set_image(SAMPLE_IMAGE)a = model.predict(points=[640, 420], labels=[1])b = model.predict(bboxes=[300, 200, 900, 700])model.reset_image()

El camino de punto y caja coincide con el resto de la familia SAM: un prompt de punto acepta [x, y] para un objeto o [[x, y], ...] para varios, labels marca cada punto con 1 (primer plano) o 0 (fondo), y un prompt de caja toma [x1, y1, x2, y2] o una lista de cajas. En este camino, conf filtra por la calidad de máscara predicha (IoU), no por una confianza de detección.

El camino de text= es lo que añade SAM 3: una cadena de concepto devuelve todas las instancias coincidentes de la imagen mediante Promptable Concept Segmentation, y no se puede combinar con puntos, cajas, labels o máscaras. Ahí conf es la puntuación de detección PCS en lugar del IoU de la máscara; dejarlo en su valor por defecto aplica el propio umbral de 0.3 del modelo, y conf=0.0 conserva todos los candidatos. El names devuelto asigna el id de clase 0 a la cadena de concepto solicitada, ya que una máscara guiada por prompts no tiene por lo demás ningún conjunto fijo de clases. device= mueve el modelo y, si hay una sesión de set_image() activa, su embedding cacheado. train(), val(), export() y track() lanzan todos NotImplementedError en esta familia: en LibreYOLO, SAM 3 es solo de predicción, y el seguimiento en vídeo queda fuera de alcance. Consulta predicción para los tipos de fuente.

Variantes

Un único tamaño, large, con una entrada fija de 1008 px. SAM 3.1 no está soportado: su implementación lleva una licencia propia que no se puede incorporar a este repositorio MIT, y la versión de Transformers de la que depende LibreYOLO todavía no carga su formato de checkpoint.

Licencia

Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.

Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.

Trabajo original
SAM 3, Meta FAIR
Licencia del proyecto original
SAM License (Meta custom, gated)
Fuente del proyecto original
github.com/facebookresearch/sam3
Código de LibreYOLO
MIT
Pesos
SAM License (Meta custom, gated), distribuidos por sus autores. LibreYOLO no los aloja ni los replica.
Interpretación
The SAM License is Meta's own agreement, not an OSI-approved license like MIT or Apache-2.0. It grants a worldwide, royalty-free license to use, reproduce, distribute and create derivative works, and does not itself say the weights are non-commercial. It does add terms Apache and MIT do not: publications that use the results must acknowledge SAM Materials, reverse engineering is prohibited, use is subject to export-control and sanctions compliance, filing IP litigation against Meta over the materials terminates your license, and Meta may amend the agreement. Weights are gated on facebook/sam3 on Hugging Face: you must accept the terms there and authenticate before downloading. LibreYOLO calls SAM 3 through the Apache-2.0 Transformers implementation and vendors none of Meta's model source, but does not redistribute the weights themselves; read the license yourself before relying on it commercially.

LibreYOLO no aloja una copia propia de los pesos de SAM 3 y no los redistribuye. LibreSAM("sam3") descarga directamente del repositorio restringido facebook/sam3 de Meta en Hugging Face, que exige aceptar la SAM License de Meta y autenticarse antes de la primera descarga.

Cita

@misc{carion2025sam3segmentconcepts,
      title={SAM 3: Segment Anything with Concepts},
      author={Nicolas Carion and Laura Gustafson and Yuan-Ting Hu and Shoubhik Debnath and Ronghang Hu and Didac Suris and Chaitanya Ryali and Kalyan Vasudev Alwala and Haitham Khedr and Andrew Huang and Jie Lei and Tengyu Ma and Baishan Guo and Arpit Kalla and Markus Marks and Joseph Greer and Meng Wang and Peize Sun and Roman Rädle and Triantafyllos Afouras and Effrosyni Mavroudi and Katherine Xu and Tsung-Han Wu and Yu Zhou and Liliane Momeni and Rishi Hazra and Shuangrui Ding and Sagar Vaze and Francois Porcher and Feng Li and Siyuan Li and Aishwarya Kamath and Ho Kei Cheng and Piotr Dollár and Nikhila Ravi and Kate Saenko and Pengchuan Zhang and Christoph Feichtenhofer},
      year={2025},
      eprint={2511.16719},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2511.16719},
}

Copiado del bloque de cita de los autores en github.com/facebookresearch/sam3#citing-sam-3.

Verificado con LibreYOLO v1.5.0. Las tablas de compatibilidad, los checkpoints y las cifras de rendimiento de esta página se generan a partir de la biblioteca publicada y los pesos publicados; no se escriben a mano.