New Release: Ultralytics v8.4.106

:rocket: Ultralytics v8.4.106 Released

Ultralytics v8.4.106 focuses on stronger input validation, clearer model-loading errors, safer download recovery, and broader automated testing. Invalid images, corrupted checkpoints, damaged ONNX graphs, and incomplete downloads now fail earlier with more actionable guidance.

Explore the complete v8.4.106 release notes for all details.

:sparkles: Improvements

:framed_picture: Clear validation for unreadable image sources

Empty image lists, zero-sized images, invalid channel dimensions, and empty tensors are now rejected directly by the image loader.

Instead of obscure division-by-zero or array-stacking failures, users receive clear errors identifying the invalid input. Explicit exceptions also replace assertions so validation remains active in Python optimized mode.

Implemented by @glenn-jocher in PR #25431.

:package: Cleaner checkpoint and ONNX errors

Empty, truncated, corrupted, or unsupported .pt files now produce consistent guidance recommending that users re-download, re-export, or select an official Ultralytics YOLO model such as yolo26n.pt.

Corrupted or unparseable ONNX graphs also return a helpful error instead of exposing a low-level protobuf exception. A suggested recovery command is included:

yolo export model=yolo26n.pt format=onnx

Checkpoint handling was improved by @glenn-jocher in PR #25428, with additional checkpoint and ONNX diagnostics added in PR #25430.

:hammer_and_wrench: Bug Fixes

:down_arrow: Safer download failure recovery

Failed downloads are now removed rather than retained as incomplete cached files. This prevents partial files from being treated as valid downloads during later runs, while exhausted retries now report a clear failure.

Full-disk detection remains enabled, though this release does not address the separate ULTRALYTICS-21BX or ULTRALYTICS-21CW disk-space issues.

These changes were contributed by @glenn-jocher in PR #25431.

:test_tube: Testing and Reliability

Automated fuzz testing now covers more malformed CLI arguments, devices, datasets, checkpoints, ONNX files, and image sources.

A rolling seven-day history reduces repeated cases between workflow runs, allowing more unique command combinations to be explored. Synthetic datasets and intentionally damaged model files further improve coverage of common failure scenarios.

The expanded fuzzing work is available in PR #25424 from @glenn-jocher.

:artist_palette: Documentation Maintenance

Documentation formatting has been updated with Prettier 3.8.5. This is a formatting-only change with no substantive documentation updates.

See PR #25429 from @glenn-jocher for the maintenance update.

:bullseye: Why This Release Matters

  • :white_check_mark: Invalid inputs fail earlier with actionable explanations.
  • :toolbox: Corrupted checkpoints and ONNX files are easier to troubleshoot.
  • :floppy_disk: Incomplete downloads are less likely to pollute caches.
  • :magnifying_glass_tilted_left: Expanded fuzz testing helps uncover edge cases before users encounter them.
  • :pushpin: Model architectures and training performance are unchanged.

:inbox_tray: Try v8.4.106

Upgrade to the latest release with:

pip install -U ultralytics

You can review every commit in the full v8.4.105 to v8.4.106 changelog.

Give v8.4.106 a try and share your feedback, unexpected edge cases, or reproducible issues with the Ultralytics community. :raising_hands: