New Release: Ultralytics v8.4.95

:rocket: Ultralytics v8.4.95 Released

Ultralytics v8.4.95 improves training reliability, RT-DETR deployment behavior, image input compatibility, dataset efficiency, and documentation. Highlights include safer checkpoint loading for Ultralytics Platform GPU jobs, consistent max_det handling, broader NumPy image support, and COCO downloads reduced by roughly 7 GB. :glowing_star:

:locked: Training and Input Reliability

  • Safer checkpoint loading: Raw training checkpoints no longer include training-only loss objects or NumPy scalar metadata that may be rejected by secure weights_only=True loading. This was completed in PR #25154 by @glenn-jocher.
  • Expanded NumPy compatibility: Grayscale, gray-plus-alpha, BGR, and BGRA inputs are normalized to the model’s expected channel count in LoadPilAndNumpy, thanks to PR #25151 from @JESUSROYETH.
  • Correct uint8 tensor preprocessing: Integer image tensors are now normalized without invalid floating-point dtype operations, while existing floating-point behavior remains unchanged. See PR #23743 by @jahsef.

:bullseye: RT-DETR and Metrics Fixes

  • Consistent RT-DETR max_det support: Native prediction, validation, and decoder exports—including CoreML and other deployment formats—now correctly respect the configured detection limit through PR #25153 by @Hasnaathussain.
  • Correct pose metric labels: PoseMetrics.curves no longer returns duplicated box labels, improving compatibility with experiment dashboards such as Weights & Biases. This fix arrived in PR #25148 from @JESUSROYETH.

:package: Dataset and Conversion Improvements

  • Smaller default COCO downloads: COCO detection, segmentation, and pose configurations no longer download the optional 7 GB test2017.zip archive by default. Standard downloads are now approximately 20.2–20.3 GB, following PR #25136 by @raimbekovm.
  • Deterministic segmentation conversion: Mask files are processed in sorted filename order for more reproducible conversion and debugging. See PR #24390 by @AlexRTer.
  • Simpler empty-segment handling: segment2box now immediately returns a valid zero box for empty segmentation inputs through PR #23770 from @1548093028.

:books: Documentation and Examples

  • The ObjectCounter example now uses its returned results object correctly, thanks to PR #23417 by @parthivdholaria.
  • Training documentation now explains automatic dataset download behavior more precisely through PR #24155 by @vedantparnaik.
  • Prediction documentation and type hints now clarify that streaming returns an iterator while non-streaming calls return lists, following PR #24391 by @thiliapr.
  • Embedding return types received the same streaming clarification in PR #24134 from @waketzheng.

:waving_hand: Welcome, New Contributors!

A warm welcome to first-time contributors @thiliapr, @parthivdholaria, @jahsef, @vedantparnaik, @1548093028, @AlexRTer, @waketzheng, and @Hasnaathussain. Thank you for helping improve Ultralytics YOLO! :raising_hands:

:up_arrow: Try v8.4.95

Upgrade to the latest release with:

pip install -U ultralytics

This release focuses on reliability, compatibility, exports, datasets, and documentation rather than introducing a new model family. YOLO26 remains the latest stable and recommended Ultralytics model for new projects.

Explore the v8.4.95 GitHub release for release assets, or review the complete v8.4.94-to-v8.4.95 changelog for every change.

Please give v8.4.95 a try and share your feedback, questions, or reproducible issues with the community. :rocket: