pypi ultralytics 8.4.106
v8.4.106 - Reject unreadable image sources, and harden download failure paths (#25431)

6 hours ago

๐ŸŒŸ Summary

๐Ÿ›ก๏ธ Ultralytics v8.4.106 improves reliability by rejecting invalid inputs early, providing clearer model-loading errors, and strengthening automated testing and download recovery.

๐Ÿ“Š Key Changes

  • ๐Ÿ–ผ๏ธ Clear validation for unreadable image sources (PR #25431, @glenn-jocher)

    • Empty image lists, zero-sized images, invalid channel dimensions, and empty tensors are now rejected at the image loader.
    • Users receive direct, actionable errors instead of obscure failures such as division-by-zero or array-stacking exceptions.
    • Input type checks now use explicit exceptions rather than assertions, so validation remains active when Python runs in optimized mode.
  • โฌ‡๏ธ More reliable download failure handling (PR #25431)

    • Failed downloads are removed instead of being left behind as incomplete files.
    • Prevents a partial file from being mistaken for a valid cached download on a later run.
    • Retry exhaustion now reports a clear download failure.
    • Full-disk detection remains enabled; this release does not address the separate ULTRALYTICS-21BX / 21CW disk-space issues.
  • ๐Ÿ“ฆ Cleaner errors for corrupt or unsupported checkpoints (PRs #25428 and #25430)

    • Empty, truncated, corrupted, or non-checkpoint files renamed with a .pt extension now produce a consistent explanation.
    • Error messages recommend re-downloading, re-exporting, or using an official Ultralytics model such as yolo26n.pt.
    • Safe-loading errors for unsupported checkpoint types retain their specialized guidance.
  • ๐Ÿ”— Improved ONNX error messages (PR #25430)

    • Unparseable or corrupted ONNX graphs now raise a helpful error rather than exposing a low-level protobuf exception.
    • The message suggests re-exporting with a command such as yolo export model=yolo26n.pt format=onnx.
  • ๐Ÿงช Broader and smarter fuzz testing (PR #25424)

    • Automated fuzzing now explores malformed CLI arguments, devices, datasets, checkpoints, ONNX files, and image sources.
    • A rolling seven-day history reduces repeated tests across workflow runs, allowing more unique command combinations to be tested.
    • Synthetic datasets and intentionally damaged model files improve coverage of common user failure scenarios.
  • ๐ŸŽจ Documentation formatting maintenance (PR #25429)

    • Documentation was reformatted with Prettier 3.8.5.
    • No substantive documentation content changed.

๐ŸŽฏ Purpose & Impact

  • โœ… Better user experience: Failures now identify what went wrong and how to fix it.
  • ๐Ÿš€ Earlier validation: Invalid image, dataset, checkpoint, and model inputs are stopped before reaching deeper inference code.
  • ๐Ÿ’พ Safer caching: Incomplete downloads are less likely to persist and cause repeated failures.
  • ๐Ÿงฐ Easier troubleshooting: Clear recommendations reduce guesswork when files are corrupted or incompatible.
  • ๐Ÿ” Improved long-term stability: Expanded fuzz testing should uncover more edge cases before users encounter them.
  • ๐Ÿ“Œ No model architecture or training-performance changes: This release focuses primarily on robustness, diagnostics, and developer tooling.

What's Changed

Full Changelog: v8.4.105...v8.4.106

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.