🌟 Summary (single-line synopsis)
Ultralytics v8.4.19 focuses on much more reliable Ultralytics Platform training sync (especially model tracking via model_id), plus a few quality improvements for SAM outputs, lightweight model stability, and clearer YOLO26 end-to-end docs 🚀
📊 Key Changes
-
🔴 Most important (current PR #23761 by @glenn-jocher): Platform training
model_idfix- Training callbacks now consistently pass
model_idduring model uploads and training events. - Platform callback state was refactored into a single
trainer.platformcontext (instead of scattered trainer fields), including:model_id- last upload time
- cancellation status
- console/system loggers
- Upload and event flow was tightened for better session continuity, cancellation handling, and final result linking.
- Platform URL handling now better supports server-adjusted model slugs (for example when names auto-increment).
- Training callbacks now consistently pass
-
🧠 SAM prediction cleanup (#23751 by @Laughing-q)
- Added NMS in
SAM3SemanticPredictorpostprocessing and feature-inference paths. - Reduces duplicate overlapping detections and keeps boxes/masks aligned.
- Added NMS in
-
🛡️ PSA attention edge-case fix (#23758 by @Y-T-G)
- Prevents zero attention heads in
PSABlockfor very small channel configs. - Improves robustness for lightweight/custom model scales.
- Prevents zero attention heads in
-
📘 Docs clarification for end-to-end models (#23720 by @raimbekovm)
- Clarifies that in end-to-end mode (YOLO26, YOLOv10),
max_detandagnostic_nmsare supported directly. - Notes that setting
end2end=Falseis mainly for enabling traditionaliou-based NMS behavior.
- Clarifies that in end-to-end mode (YOLO26, YOLOv10),
-
⚙️ CI maintenance
🎯 Purpose & Impact
-
For Ultralytics Platform users: ✅
Training runs should now be more reliable to track end-to-end, with fewer mismatches between uploaded checkpoints and the correct model session. This is the biggest practical improvement in this release. -
For production and team workflows: 📡
Better callback state management means cleaner event handling, better cancellation behavior, and improved confidence that results and artifacts land in the right place. -
For segmentation users (SAM): 🎯
Cleaner predictions with fewer duplicate overlaps can improve downstream usability and visual quality. -
For custom/small models: 🧱
Fewer architecture edge-case failures when using very small widths or low channel counts. -
For all users reading docs: 📚
Clearer expectations around end-to-end inference/validation args in YOLO26 and YOLOv10 reduce confusion and setup mistakes.
What's Changed
- Document
max_detandagnostic_nmssupport in end2end mode by @raimbekovm in #23720 - Bump actions/download-artifact from 7 to 8 in /.github/workflows by @dependabot[bot] in #23749
- Bump actions/upload-artifact from 6 to 7 in /.github/workflows by @dependabot[bot] in #23748
- Add NMS to
SAM3SemanticPredictorto eliminate overlapping boxes by @Laughing-q in #23751 - Add https://youtu.be/EXYB-dbgJjY to docs by @RizwanMunawar in #23757
- Fix division by zero in PSABlock
num_headsby @Y-T-G in #23758 ultralytics 8.4.19Platform training pass model ID fix by @glenn-jocher in #23761
Full Changelog: v8.4.18...v8.4.19