pypi ultralytics 8.4.67
v8.4.67 - Add opt-in weights_only model loading via ULTRALYTICS_SAFE_LOAD (#24829)

5 hours ago

🌟 Summary

v8.4.67 is a small but meaningful release focused on safer model loading πŸ”’, plus an important TT100K dataset label fix πŸ›£οΈ and a batch of documentation/link cleanups πŸ“š.

πŸ“Š Key Changes

  • πŸ”’ New opt-in safe model loading via ULTRALYTICS_SAFE_LOAD (@glenn-jocher, PR #24829)

    • Ultralytics added a new environment flag, ULTRALYTICS_SAFE_LOAD=true, that enables a safer way to load model checkpoints.
    • When enabled, checkpoint loading uses PyTorch’s newer weights_only=True behavior and only rebuilds known Ultralytics and PyTorch model classes from an automatically generated allow-list.
    • This replaces the older unused SafeUnpickler approach.
    • Important: this is off by default, so existing workflows keep working as before.
  • πŸ›£οΈ TT100K dataset class list corrected to the official 221-category set (@glenn-jocher, PR #24718)

    • The TT100K.yaml dataset config had duplicated and incorrect class names.
    • That caused some class IDs to silently lose labels during conversion, even though training still proceeded.
    • The release now aligns TT100K with the official upstream category list, including missing real classes.
  • πŸ“˜ Rust inference docs updated to ultralytics-inference 0.0.21 (@onuralpszr, PR #24825)

    • Documentation examples now point to the latest Rust inference crate version.
  • πŸ”— Many documentation links were refreshed and corrected (@glenn-jocher, PR #24824 and #24817)

    • Updated links across integrations, datasets, examples, and guides.
    • Includes a fix for the CoreML NMS glossary link and many canonical URL updates.

🎯 Purpose & Impact

  • πŸ” Safer checkpoint loading for security-conscious users

    • The new opt-in safe loading mode helps reduce risk when loading model files by allowing only recognized model components.
    • This is especially useful for teams working in stricter environments or aligning with newer PyTorch defaults.
    • Because it is optional, users with custom or forked architectures are not disrupted.
  • ♻️ Better future compatibility with PyTorch

    • PyTorch 2.6+ is moving toward weights_only loading by default.
    • This update helps Ultralytics stay aligned with that direction while preserving backward compatibility today.
  • 🚫 Less chance of silent dataset errors

    • The TT100K fix is a big quality improvement for anyone training on that traffic-sign dataset.
    • Previously, some categories could effectively receive no labels without an obvious crash.
    • Now, dataset conversion and training should be much more trustworthy 🎯
  • 🧰 Minimal disruption for most users

    • No major model architecture changes were introduced in this tag.
    • Standard loading behavior remains unchanged unless you explicitly enable safe loading.
    • Most other changes are documentation polish, so the release is low-risk and practical βœ…
  • πŸ“š Clearer onboarding and fewer broken docs

    • Updated links and version references make tutorials and integration guides easier to follow, especially for newer users.

If you want, I can also provide a one-paragraph release note version or a developer-focused summary of v8.4.67.

What's Changed

Full Changelog: v8.4.66...v8.4.67

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.