Ultralytics v8.4.89 is here!
Ultralytics v8.4.89 focuses on reliability, edge-case correctness, and smoother workflows across prediction, training, benchmarking, AI Gym, installation, and release publishing. This release includes important fixes for grayscale NumPy inference, signed model URLs, AI Gym tracking alignment, multi-GPU training, and more.
Quick Highlights
Grayscale NumPy arrays now work correctly with standard color Ultralytics YOLO models.
Multi-GPU training can see reduced synchronization overhead with broadcast_buffers=False.
AI Gym workout outputs now stay aligned with currently visible tracked people.
Benchmarking is more forgiving with case-insensitive formatvalues.
Signed model URLs like model.pt?token=abcnow validate correctly.
segment2box()now handles objects touching the left image edge.
Installation reliability improves by excluding a problematic OpenCV wheel.
New Features
GhostNetV2 modules and YOLOv8 GhostV2 configs
In PR #23108, @kaanrkaraman added GhostNetV2 DFC attention modules and YOLOv8 GhostV2 configurations, expanding the available model architecture options for experimentation and development.
Improvements
Better multi-GPU training efficiency
In PR #24412, @ExtReMLapin set DDP broadcast_buffers=False by default. This can reduce unnecessary GPU synchronization, especially on systems without NVLink or during high-resolution training.
More user-friendly benchmarking
In PR #24453, @zhanghuiwan made benchmark format comparisons case-insensitive, so values like ONNX and TensorRT now work as expected.
In PR #24560, @raimbekovm improved benchmark documentation by adding the eps argument and clarifying standalone benchmark() defaults, including model="yolo26n.pt" and imgsz=160.
More robust release publishing
In PR #25027, @glenn-jocher hardened the release publishing workflow with safer recovery handling, more graceful behavior for existing PyPI artifacts and release uploads, and improved notification timing after publishing and SBOM generation.
README updates
In PR #23656, @versa-dev contributed README updates to improve project documentation.
Bug Fixes
Fixed grayscale NumPy prediction on color models
In PR #24751, @maxime2476 fixed prediction for raw 2D grayscale NumPy arrays shaped like (H, W) when used with 3-channel color models. These inputs are now expanded correctly, making NumPy behavior more consistent with PIL images and file paths while preventing PyTorch channel mismatch crashes.
Fixed AI Gym workout result alignment
In PR #24228, @SuperMarioYL fixed AI Gym result lists so workout_count, workout_stage, and workout_angle only report currently visible tracked people. This keeps outputs aligned with total_tracks and avoids stale data from people who have left the frame.
Fixed YOLOE and YOLO-World CLI class parsing
In PR #24677, @ahmet-f-gumustas fixed CLI class parsing by stripping extra whitespace. For example, classes="person, bus" now becomes ["person", "bus"] instead of ["person", " bus"].
Fixed signed model URL validation
In PR #24369, @diaz3z updated check_suffix to strip URL query strings before suffix validation. Signed URLs such as model.pt?token=abc now correctly pass .pt checks.
Fixed segment2box() for left-edge objects
In PR #24679, @bujna94 fixed an edge case where segments with all x-coordinates equal to 0 were incorrectly dropped. This improves bounding box generation for objects touching the left image border.
Improved installation reliability
In PR #23376, @Nailujj excluded the known problematic opencv-python==4.13.0.90 wheel, helping avoid OpenCV-related crashes in managed environments such as Databricks.
New Contributors
A big welcome and thank you to our new contributors in this release:
- @SuperMarioYL made their first contribution in PR #24228.
- @Nailujj made their first contribution in PR #23376.
- @maxime2476 made their first contribution in PR #24751.
- @versa-dev made their first contribution in PR #23656.
- @diaz3z made their first contribution in PR #24369.
- @zhanghuiwan made their first contribution in PR #24453.
- @bujna94 made their first contribution in PR #24679.
Upgrade Today
Upgrade to the latest release with:
pip install -U ultralytics
You can review the full release details in the Ultralytics v8.4.89 release notes, and you can compare every change in the full changelog from v8.4.88 to v8.4.89.
Please try v8.4.89 and let us know how it works in your training, benchmarking, deployment, and AI Gym workflows. Thanks as always to the YOLO community and the Ultralytics team for the continued improvements! ![]()