π Summary (single-line synopsis)
Ultralytics v8.4.25 mainly restores TensorFlow.js export for most users β
, while also improving training speed paths, visualization behavior, box alignment accuracy, CI reliability, and YOLO26/platform documentation clarity ππ.
π Key Changes
-
(Top priority) TF.js export restored for supported systems π§
From PR #23985 by @glenn-jocher:- Added dependency pin
ydf<0.13.0(non-ARM64) to avoid a TensorFlow/protobuf conflict. - Removed the previous hard disable on TF.js export.
- TF.js export is now allowed again on supported environments (still blocked on ARM64 Linux).
- Platform checks were clarified: TF.js and CoreML now have separate, cleaner rules.
- Version bumped to
8.4.25.
- Added dependency pin
-
Faster training internals for pose/detection/OBB losses β‘
From PRs #23937 and #23966:- Replaced Python loops with vectorized tensor ops in loss preprocessing and keypoint batching.
- Keeps model outputs/behavior consistent, but improves efficiency in heavy training paths.
-
Bounding box alignment fix in
scale_boxesπ―
From PR #23967:- Corrected padding math to match
LetterBoxrounding. - Fixes subtle systematic box shifts (pixel-level misalignment) on certain image sizes.
- Corrected padding math to match
-
Visualization improvement: confidence can be shown without class labels π
From PR #23951:show_conf=Truenow works independently ofshow_labels.- Enables βconfidence-onlyβ overlays when class text is hidden.
-
Docs and platform guidance expanded (especially YOLO26 end-to-end detection) π
From PRs #23947, #23974, #23975, #23931:- Added a full guide for YOLO26 end-to-end, NMS-free detection and migration from YOLO11/YOLOv8.
- Improved API/reference doc rendering (including proper
Referencessections). - Broad Ultralytics Platform docs refresh: clearer API key usage, pricing/GPU tables, onboarding/deploy/help updates.
-
CI and runner infrastructure updates π§ͺ
From PR #23875 and #23974:- More workflows moved to
cpu-latestfor better consistency/speed. - Updated runner Docker images to
2.333.0.
- More workflows moved to
-
Prediction telemetry enhancement π‘
From PR #23948:- Prediction events now include inference backend metadata for better analytics/debugging.
π― Purpose & Impact
-
Big win for web deployment π
Teams exporting to TF.js can now resume browser/JavaScript workflows in most supported environments. -
Fewer export headaches π§©
Dependency pinning reduces breakage from upstream package mismatches, making exports more dependable. -
Potentially faster training iterations β±οΈ
Vectorized loss preprocessing should reduce Python overhead and improve throughput, especially for larger batches. -
Better output quality and trust in predictions β
The box-scaling fix helps prevent annoying small coordinate offsets that can affect visual quality and downstream logic. -
Improved usability for debugging and demos π οΈ
Confidence-only display and richer backend telemetry make model behavior easier to inspect. -
Smoother onboarding for YOLO26 + Platform users π
Updated docs lower migration friction and make it easier for both new and advanced users to train/deploy via the Ultralytics Platform.
What's Changed
- Added autobacked events name by @ambitious-octopus in #23948
- Use new
cpu-latestrunner for faster CI tests by @Laughing-q in #23875 - Vectorize keypoint batching loop for Pose loss calculation by @ahmet-f-gumustas in #23937
- Vectorize preprocess for
detect/obbloss calculation by @Laughing-q in #23966 - Fix
Referencesdocstring sections rendering incorrectly in API docs by @raimbekovm in #23931 - Add end-to-end detection guide for YOLO26 by @raimbekovm in #23947
- Update Dockerfile-runner to v2.333.0 by @glenn-jocher in #23974
- Update Platform docs with RTX PRO 4500 by @glenn-jocher in #23975
- Fix pad calculation in
scale_boxesto matchLetterBoxrounding by @a17sol in #23967 - Allow show_conf to be used independently of show_labels in visualization by @K-saif in #23951
ultralytics 8.4.25TensorFlow.js fix pinydf<0.13.0by @glenn-jocher in #23985
New Contributors
Full Changelog: v8.4.24...v8.4.25