π Summary
Release v8.4.178 makes Platform training links more reliable and brings a broad set of fixes for model validation, tracking, exports, data loading, and training integrations. It also adds a cross-domain benchmark resource and expands Platform documentation.
π Key Changes
- Reliable Platform training links (PR #26699): Training now prints the model URL returned by the server, which knows the final owner, project, and model name. This avoids broken links when those details differ from the local training arguments; if the server provides no URL, no link is printed.
- Broader model evaluation: A new Ultralytics Benchmark page describes a fixed evaluation protocol across 37 real-world detection datasets, spanning areas such as medical imaging, retail, industry, and aerial imagery. The YOLO27 documentation also updates its reported performance figures and links to the benchmark.
- Model and tracking compatibility: YOLO-NAS receives fixes for loading by model name, prediction, validation, export, and ReID tracking. FastSAM prompts now persist across later images and video frames; SAM tracking preserves object IDs when masks are blank; and oriented-box tracking handles equivalent box representations more consistently.
- More dependable validation and exports: Validation now respects non-square input shapes recorded in static exports. Fixes also address TorchScript loading on Apple MPS, dynamic ONNX execution on MPS, and full-integer LiteRT/TensorFlow input handling.
- Platform reporting improvements: Validation curves now better match segmentation and pose results, and class labels stay aligned when validation data omits classes. Confusion-matrix logging is corrected for Comet and DVC, including cases where no matrix is available.
- Training and workflow reliability: TensorBoard writers close cleanly after training, FP32 optimizer momentum is retained in checkpoints, Ascend NPU training avoids an unsupported reduction, and Docker publishing skips overwriting tags with images built from newer commits.
- Platform and documentation updates: Platform guides document paid annotation and image-generation models, new Explore filters, and AI-assisted training diagnosis. Other fixes improve UTF-8 dataset and source-manifest reading, screenshot inputs, ZIP naming, and CLI error messages.
π― Purpose & Impact
- Platform users get working model links and clearer, more accurate training results.
- Developers benefit from more consistent behavior across model families, trackers, export formats, and hardware backends.
- Teams managing experiments and data get safer Docker releases, cleaner training teardown, and fewer failures caused by encoding, file naming, or configuration-directory issues.
- Model evaluators gain a broader reference for comparing performance beyond COCO; the benchmark results are documentation and evaluation resources, not a new model architecture in this release.
What's Changed
- Skip Docker pushes over images built from newer commits by @glenn-jocher in #26666
- Send Platform curve row class indices when val lacks classes by @JaviChulvi in #26665
- List every Platform class-prompted annotation model by @glenn-jocher in #26668
- Show plain CLI argument errors and skip callables in suggestions by @glenn-jocher in #26675
- Document paid image generation models in Ultralytics Platform by @glenn-jocher in #26683
- Fix Comet confusion matrix orientation and labels by @raimbekovm in #26669
- Send the task's own validation curves to Platform for segment and pose by @JaviChulvi in #26678
- Fix FastSAM prompts on later frames and keep SAM2 object ids as classes by @raimbekovm in #26676
- Document new explore filters, diagnose with ai and platform api details by @raimbekovm in #26677
- Fix YOLO-NAS export, loading by name and ReID tracking by @raimbekovm in #26670
- Read NDJSON datasets with UTF-8 encoding by @Nikhi00718 in #26681
- Close TensorBoard writers during trainer teardown by @Vaishnavi220506 in #26682
- Fix OBB tracking boxes when a detection flips to its equivalent (h, w, ΞΈΒ±Ο/2) form by @raimbekovm in #26680
- Use improved task and guide images from Ultralytics Academy by @glenn-jocher in #26684
- Fix two figures and the retrain chart alt text by @glenn-jocher in #26685
- Add Ultralytics Benchmark dataset page by @Laughing-q in #26691
- Fix screenshot prediction with monitor and region parameters by @Nikhi00718 in #26664
- Keep Adam exp_avg momentum in FP32 in optimizer FP16 conversion by @cainiao33 in #26672
- Preserve distinct same-box grounding segmentation polygons by @Vaishnavi220506 in #26667
- Create a missing YOLO_CONFIG_DIR instead of falling back to /tmp by @raimbekovm in #26692
- Fix UTF-8 BOM source manifests and add autocast_list URL timeout by @cainiao33 in #26671
- Preserve full directory names when creating ZIP archives by @Vaishnavi220506 in #26694
- Skip empty workout lists when printing SolutionResults by @MohammadHijjawi97 in #26697
- Load TorchScript exports on MPS by casting traced float64 scalars to float32 by @raimbekovm in #26693
- Keep dynamic-shape ONNX nodes off the CoreML execution provider on mps by @raimbekovm in #26686
- Clamp full-integer LiteRT inputs before casting by @aswanth-07 in #26674
- Use MLflow's default tracking store when no tracking URI is set by @raimbekovm in #26688
- Fix Ascend NPU crash in TaskAlignedAssigner: cast int8 mask to int64 for max reduction by @Eric-Lotus in #26687
- Fix SAM mask prompts crash: downsample to encoder low-res size by @cainiao33 in #26673
- Validate static rectangular exports at their recorded input shape by @Nikhi00718 in #26690
- 8.4.178 Print the Platform-resolved model link after training starts by @glenn-jocher in #26699
New Contributors
- @Eric-Lotus made their first contribution in #26687
Full Changelog: v8.4.177...v8.4.178