New Release: Ultralytics v8.4.48

Ultralytics v8.4.48 is out :rocket:

Summary

Ultralytics v8.4.48 is a stability-focused release that improves training reliability, makes failure cases much clearer, and adds a few important fixes across benchmarking, reporting, and documentation. While this release is not centered on new model launches, it makes existing Ultralytics YOLO workflows safer and more production-friendly :white_check_mark:

If you train on the Ultralytics Platform or run automated pipelines, this update is especially worth pulling.

Highlights

:hammer_and_wrench: Platform training edge-case fixes

The biggest improvements in v8.4.48 come from PR #24431 by @glenn-jocher:

  • Added guards for empty semantic-mask batches to prevent segmentation training crashes :performing_arts:
  • Added safe handling for empty RLE keypoint masks during loss computation :person_cartwheeling:
  • Training now fails early with a clear error if no best or last checkpoint is saved :floppy_disk:
  • Model loading now raises a much clearer error when a checkpoint depends on a missing ultralytics.* module, with guidance to retrain or use current official models :package:

These changes are especially helpful for edge cases in mixed or imperfect datasets and for automated training jobs where fast, understandable failures matter.

:bar_chart: Better benchmark and export robustness

With PR #24418 by @lakshanthad, the data argument is now only passed to export formats that actually support it.

That means fewer avoidable failures during benchmark/export workflows and more reliable cross-format testing :counterclockwise_arrows_button:

:bullseye: Correct bestEpoch reporting on Platform

Thanks to PR #24425 by @mykolaxboiko, training_complete.bestEpoch now reports the true best epoch, including when early stopping is used.

This makes experiment tracking on Platform more accurate and more trustworthy :chart_increasing:

Documentation Improvements

:books: Safer multi-GPU guidance with SyncBatchNorm

PR #24422 by @artest08 adds a practical SyncBatchNorm example to the custom trainer guide.

This is particularly useful for multi-GPU training with small per-GPU batch sizes, where batch norm behavior can otherwise be tricky.

:mobile_phone: CI docs cleanup

PR #24430 by @glenn-jocher updates CI docs with a corrected iOS App Store link and some table cleanup.

Maintenance

:date: Dependabot schedule update

With PR #24411 by @glenn-jocher, Dependabot pip updates now run monthly instead of daily, reducing maintenance noise while keeping dependencies fresh.

Why this release matters

v8.4.48 is all about reliability:

  • More resilient training for segmentation and pose edge cases
  • Clearer failures when checkpoints are missing or incompatible
  • More accurate Platform metrics for experiment tracking
  • More stable benchmark/export behavior across formats

In short, this release helps make YOLO training and deployment workflows more predictable, easier to debug, and friendlier for production use :white_check_mark:

Getting started

Update with:

pip install -U ultralytics

Then explore the release details in the v8.4.48 release page or review every change in the full changelog from v8.4.47 to v8.4.48.

If you’re starting a new project, we recommend YOLO26 as the latest stable and recommended model family. YOLO11 remains fully supported as the previous generation model.

Try it and let us know :speech_balloon:

Please give v8.4.48 a try and share your feedback, especially if you work with:

  • Platform training jobs
  • segmentation datasets with sparse or empty masks
  • pose workflows with unusual annotations
  • export/benchmark pipelines across multiple formats

Thanks to all contributors and community members helping improve Ultralytics YOLO every release :raising_hands: