# What changed in ultralytics

> 24 changes in ultralytics 8 from its official release notes, upgrade guides and advisories: 1 breaking. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/pypi/ultralytics/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## ultralytics 8

### Breaking changes

- Positive matching, conflict resolution, and confidence targets now consider keypoint OKS alongside box overlap; ground truths with no visible keypoints still use box overlap alone. Enabled by default and limited to YOLO26-pose. (8.4.180) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.180)

### Performance

- Results are written into a preallocated output stack, avoiding extra full-size copies and repeated GPU-to-CPU synchronization. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)

### Behavior and default changes

- Existing dataset caches are rescanned using the updated label checks. (8.4.182) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.182)
- Dataset hashing now supports filenames with non-UTF-8 characters. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)
- JetPack detection now includes JetPack 7.2. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)
- Compatibility checks cover newer PyTorch and Torchvision releases. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)
- URLs without extensions that return images are treated as single images. (8.4.180) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.180)
- Stream manifests are recognized regardless of extension capitalization, making stream data-source handling more robust. (8.4.180) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.180)
- Dataset lookup accepts .yml files as well as .yaml files. (8.4.180) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.180)

### Fixes and other changes

- Label verification now rejects boxes with negative dimensions while preserving coordinate tolerance and allowing zero-size boxes, catching invalid labels before validation plotting. (8.4.182) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.182)
- Linux drive discovery reports each block device once, avoiding duplicate entries caused by bind mounts. (8.4.182) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.182)
- Label files are named using the detector’s prediction output path, keeping labels matched to images with the same filename stem. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)
- Depth maps for one-row, one-column, and 1×1 images retain their expected two-dimensional shape. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)
- GPU metrics report the GPUs used by the training run rather than unrelated GPUs on the same machine. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)
- .txt and .csv prediction-source lists work regardless of filename capitalization. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)
- Tracked object angles stay consistent between frames instead of unexpectedly flipping. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)
- Guidance clarifies TensorRT 11 DLA limitations. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)
- Dataset discovery now prioritizes .yaml files before .yml files, preventing unrelated YAML files from breaking dataset loading. (8.4.181) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.181)
- Multiline text rendering is less likely to crash with Pillow 13. (8.4.180) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.180)
- Tracking camera-motion compensation updates box sizes and oriented-box angles appropriately, reducing geometry errors that could accumulate in tracks. (8.4.180) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.180)
- Unlabeled DOTA background images are skipped during data handling. (8.4.180) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.180)
- Conversion handles non-ASCII cache paths more reliably. (8.4.180) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.180)
- Returns an empty list instead of failing when there are no boxes or oriented boxes. (8.4.180) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.180)
- Validation text labels use split-relative image paths so images with the same filename in different folders are not merged into one label file. (8.4.180) — [release notes](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.180)
