yolo-models · diff
git:20260904.9c3b8ec to git:20261006.e5cd7b8
22 added, 52 removed. Audit A to A.
---
name: yolo-models
description: >
- Use when choosing or comparing Ultralytics models in Platform or code — picking a
- model family (YOLO26/YOLO11/YOLOv8, YOLO-World, YOLOE, SAM/SAM2/FastSAM, RT-DETR,
- YOLO-NAS), size (n/s/m/l/x), task variant (-seg, -sem, -cls, -pose, -obb, -depth),
- pretrained checkpoint, open-vocabulary or promptable detection/segmentation, or custom
- architecture. Covers Platform Explore/model flows, weight names and availability,
- selection guidance, and family trade-offs.
+ Use when choosing or comparing Ultralytics models in Platform or code — picking a model family (YOLO26/YOLO11/YOLOv8, YOLO-World, YOLOE, SAM/SAM2/FastSAM, RT-DETR, YOLO-NAS), size (n/s/m/l/x), task variant (-seg, -sem, -cls, -pose, -obb, -depth), pretrained checkpoint, open-vocabulary or promptable detection/segmentation, custom architecture, Platform Explore, or exact weight names and availability.
---
# Choosing an Ultralytics model
- **Default recommendation: YOLO26, pretrained.** Latest generation, NMS-free end-to-end
- (fastest CPU inference, simplest deployment). Use YOLO11/YOLOv8 only to match an existing
- codebase or a deployment target that doesn't support YOLO26 yet. Most official weights
- auto-download on first use; `sam3.pt` requires manual access and download.
+ **Default recommendation: YOLO26, pretrained.** Latest generation, NMS-free end-to-end (fastest CPU inference, simplest deployment). Use YOLO11/YOLOv8 only to match an existing codebase or a deployment target that doesn't support YOLO26 yet. Most official weights auto-download on first use; `sam3.pt` requires manual access and download.
## Choose in Platform
- For the quickest no-code start, open [Platform Explore](https://platform.ultralytics.com/explore),
- select **Projects**, clone the official `@ultralytics` project for the model family, then
- train one of its pretrained models on your dataset. The **New Model** dialog filters base
- models to the selected dataset task and offers official models plus your own completed
- checkpoints for further fine-tuning.
+ For the quickest no-code start, click **New Model** in a project. Its **Official** tab lists YOLO26 (recommended), YOLO11, YOLOv8, and YOLOv5 models whose task can train the selected dataset; **My Models** lists your completed or uploaded checkpoints for further fine-tuning. To browse the official models first, open the `@ultralytics` projects under **Projects** in [Platform Explore](https://platform.ultralytics.com/explore).
- Use a Platform model page to inspect metrics, test it in **Predict**, export it, deploy it,
- clone it into another project, or download its `.pt` weights for the Python/CLI workflows
- below. See [Platform Models](https://docs.ultralytics.com/platform/train/models) and
- [Explore](https://docs.ultralytics.com/platform/explore).
+ Use a Platform model page to inspect metrics, test it in **Predict**, export it, deploy it, clone a public model into your workspace, or download its `.pt` weights for the Python/CLI workflows below. See [Platform Models](https://docs.ultralytics.com/platform/train/models) and [Explore](https://docs.ultralytics.com/platform/explore).
## Model = family + size + task suffix
`yolo26` + `n/s/m/l/x` + task suffix → `yolo26s-seg.pt`
| Size | COCO mAP50-95 | Params | T4 TensorRT | Pick for |
| ---- | ------------- | ------ | ----------- | ------------------------------------------ |
| n | 40.9 | 2.4M | ~1.7 ms | edge/mobile, CPU realtime, first prototype |
| s | 48.6 | 9.5M | ~2.5 ms | balanced default for most projects |
| m | 53.1 | 20.4M | ~4.7 ms | GPU server, accuracy matters |
| l | 55.0 | 24.8M | ~6.2 ms | accuracy-critical, ample GPU |
| x | 57.5 | 55.7M | ~11.8 ms | max accuracy, offline/batch |
- Strategy: prototype on `n` to validate the pipeline cheaply, then scale up until accuracy
- stops paying for the latency. A bigger model never fixes bad labels.
+ Strategy: prototype on `n` to validate the pipeline cheaply, then scale up until accuracy stops paying for the latency. A bigger model never fixes bad labels.
| Suffix | Task | Output |
| -------- | ------------------------------- | -------------------- |
| _(none)_ | detect | boxes |
| `-seg` | instance segmentation | polygons + boxes |
| `-sem` | semantic segmentation (YOLO26+) | per-pixel class mask |
| `-depth` | monocular depth (YOLO26+) | depth map |
| `-cls` | classification | class probabilities |
| `-pose` | pose/keypoints | keypoints + boxes |
| `-obb` | oriented boxes | rotated boxes |
Notes on the newer tasks:
- - **semantic** (`-sem`): dataset uses PNG masks via `masks_dir` (default `masks/`) or
- polygon labels; metric is mIoU.
- - **depth** (`-depth`): targets are scaled uint16 PNG maps (preferred) or floating-point
- `.npy` maps in meters; metric is delta1. Exposes a unique `model.calibrate(data=...)`
- step that fits a metric-scale correction, then `model.save(...)` to persist it.
+ - **semantic** (`-sem`): dataset uses PNG masks via `masks_dir` (default `masks/`) or polygon labels; metric is mIoU.
+ - **depth** (`-depth`): targets are scaled uint16 PNG maps (preferred) or floating-point `.npy` maps in meters; metric is delta1. Depth models also expose `model.calibrate(data=...)`, which fits a metric-scale correction; persist it with `model.save(...)`.
## Family cheat sheet
- | Family | Class | When |
- | ------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
- | YOLO26 / YOLO11 / YOLO12 / YOLOv8–v10 | `YOLO("yolo26n.pt")` | standard closed-set tasks; default choice |
- | YOLO-World | `YOLOWorld("yolov8s-world.pt")` | zero-shot detection of arbitrary text classes; `model.set_classes(["person", "helmet"])` |
- | YOLOE | `YOLOE("yoloe-26s-seg.pt")` | open-vocabulary detect+segment via text or visual prompts; `set_classes(names, embeddings)`, visual prompts via `predict(..., visual_prompts={"bboxes": ..., "cls": ...})`; `-pf` variants are prompt-free |
- | SAM / SAM2 / SAM3 / MobileSAM | `SAM("sam_b.pt")` | promptable segmentation: `predict(source, bboxes=... / points=... / labels=...)`; SAM2/3 add video and semantic variants |
- | FastSAM | `FastSAM("FastSAM-s.pt")` | CNN-based segment-anything, much faster than SAM |
- | RT-DETR | `RTDETR("rtdetr-l.pt")` | transformer detector, strong accuracy on GPU |
- | YOLO-NAS | `NAS("yolo_nas_s.pt")` | inference/val only, no training |
+ | Family | Class | When |
+ | ------------------------------------- | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+ | YOLO26 / YOLO11 / YOLO12 / YOLOv8–v10 | `YOLO("yolo26n.pt")` | standard closed-set tasks; default choice |
+ | YOLO-World | `YOLOWorld("yolov8s-worldv2.pt")` | zero-shot detection of arbitrary text classes; `model.set_classes(["person", "helmet"])`; prefer `-worldv2` (original `-world` weights cannot export) |
+ | YOLOE | `YOLOE("yoloe-26s-seg.pt")` | open-vocabulary detect+segment via text or visual prompts; `set_classes(["person", "helmet"])`, visual prompts via `predict(..., visual_prompts={"bboxes": ..., "cls": ...}, predictor=YOLOEVPSegPredictor)` (the default predictor returns boxes only); `-pf` variants are prompt-free |
+ | SAM / SAM2 / SAM3 / MobileSAM | `SAM("sam_b.pt")` | promptable segmentation: `predict(source, bboxes=... / points=... / labels=...)`; SAM2/SAM3 add video predictors; SAM3 adds text/exemplar concept segmentation (`SAM3SemanticPredictor`); inference only |
+ | FastSAM | `FastSAM("FastSAM-s.pt")` | CNN-based segment-anything, much faster than SAM; no training |
+ | RT-DETR | `RTDETR("rtdetr-l.pt")` | transformer detector, strong accuracy on GPU |
+ | YOLO-NAS | `NAS("yolo_nas_s.pt")` | no training (val/predict/export only) |
- All classes share the same `Model` API (`train/val/predict/track/export/...`) —
- everything in the other yolo-\* skills applies to them, with the exceptions noted above.
+ All classes share the same `Model` API (`train/val/predict/track/export/...`) — everything in the other yolo-\* skills applies to them, with the exceptions noted above.
- Open-vocabulary decision: need arbitrary classes at inference with no training →
- YOLO-World (detect) or YOLOE (detect+segment, also visual prompts). Need pixel-precise
- masks from clicks/boxes → SAM family. Need a trained model for a fixed class list →
- plain YOLO26 fine-tune (faster and more accurate on that closed set).
+ Open-vocabulary decision: need arbitrary classes at inference with no training → YOLO-World (detect) or YOLOE (detect+segment, also visual prompts). Need pixel-precise masks from clicks/boxes → SAM family. Need a trained model for a fixed class list → plain YOLO26 fine-tune (faster and more accurate on that closed set).
## Architecture YAMLs (custom models)
- `ultralytics/cfg/models/` ships editable architecture definitions (`yolo26.yaml`,
- `yolo11.yaml`, `yolov8.yaml`, scale variants `-p2` for small objects, `-p6` for large
- imgsz, `-ghost`, etc.). Loading `YOLO("yolo26n.yaml")` builds from scratch — scale is
- picked from the letter in the stem. To customize the architecture but keep pretrained
- weights where layers match:
+ `ultralytics/cfg/models/` ships editable architecture definitions (`yolo26.yaml`, `yolo11.yaml`, `yolov8.yaml`, and variants such as `-p2` (small objects), `-p6` (large imgsz), and `-ghost`). Loading `YOLO("yolo26n.yaml")` builds from scratch — scale is picked from the letter in the stem. To customize the architecture but keep pretrained weights where layers match:
```python
model = YOLO("yolo26n.yaml").load("yolo26n.pt") # transfer matching weights
```
Only go here for research/unusual constraints; for normal work fine-tune the stock `.pt`.
## Related pages
- - `weights-catalog.md` (this folder) — read for package-known weight patterns and
- specialized official assets. Do not guess weight names.
+ - `weights-catalog.md` (this folder) — read for package-known weight patterns and specialized official assets. Do not guess weight names.
## Verify against the installed version
- Model availability moves fast. This prints the installed package's known fast-path set;
- read `weights-catalog.md` before treating an unlisted official asset as invalid:
+ Model availability moves fast. This prints the installed package's known fast-path set; read `weights-catalog.md` before treating an unlisted official asset as invalid:
```bash
python -c "from ultralytics.utils.downloads import GITHUB_ASSETS_NAMES; print(*sorted(GITHUB_ASSETS_NAMES), sep='\\n')"
```
- If a weight 404s or a class import fails, check `yolo checks` and trust the
- installed-version error.
+ If a weight 404s or a class import fails, check `yolo checks` and trust the installed-version error.