Ultralytics v8.4.93: Expanded MNN Export, More Reliable Workflows, and Cloud Storage Guides
Ultralytics v8.4.93 is now available! This release expands Alibaba MNN export capabilities with dynamic shapes and embedded NMS, strengthens training and inference reliability, improves segmentation utilities, and adds comprehensive Ultralytics Platform cloud-storage documentation.
Explore the v8.4.93 GitHub release for the packaged release details.
New Features
Alibaba MNN export enhancements
Alibaba MNN exports now support:
dynamic=Truefor variable image dimensions.nms=Truefor detect and pose models using static shapes.- Clear validation for unsupported dynamic-shape plus NMS combinations.
- Safe handling of empty NMS outputs when export metadata confirms NMS is enabled.
- Validated MNN 3.5.0 inference across YOLO11 detection, pose, and OBB workflows.
Implemented in PR #22348 by @Y-T-G.
Custom pose evaluation sigmas
Pose datasets can now define kpt_oks_sigmas in dataset YAML files. Values are validated against the configured keypoint count and must be positive.
Implemented in PR #24381 by @cosmo-gb.
Ultralytics Platform cloud-storage documentation
New guides explain how to connect Google Cloud Storage, Amazon S3, and Azure Blob Storage to the Ultralytics Platform. Images and YOLO labels can be indexed in place without copying source data.
The guides cover read-only credentials, dataset creation, revision pinning, retries, import limits, and current limitations. These integrations require a Pro or Enterprise plan.
Improvements
Faster and more accurate segmentation utilities
segment2boxis significantly faster while preserving its output in PR #25095 by @Y-T-G.process_mask(upsample=True)now upsamples before cropping, preventing mask leakage outside bounding boxes, in PR #24463 by @wjddnwp29.- Segment-mask conversion now creates missing output directories and correctly handles Windows grayscale shapes in PR #25117 by @zhanghuiwan.
Stronger configuration and runtime behavior
- Boolean-or-string CLI arguments such as
compileare validated earlier in PR #25082 by @Joe-KI333. - Invalid integer values and compile types are rejected at the configuration layer in PR #25114 by @glenn-jocher.
- TorchScript optimization now provides a helpful message when XNNPACK is unavailable in PR #25116 by @glenn-jocher.
- CPU
torch.compilegracefully falls back to eager execution when the first forward pass cannot compile in PR #25115 by @glenn-jocher. - Common environment-variable truthy values such as
1,yes,on,y, andtare now accepted in PR #24730 by @raimbekovm. - Training resume now preserves an explicit
save_diroverride in PR #23623 by @yegeniy.
Bug Fixes
Tracking, counting, and inference
- Polygon-based
ObjectCounternow determines IN/OUT direction from object motion rather than region shape in PR #25104 by @JESUSROYETH. - BoT-SORT native ReID no longer crashes when detections are supplied without feature tensors in PR #25102 by @JESUSROYETH.
- YOLOE visual prompts now support PyTorch tensor inputs in PR #22251 by @emmanuel-ferdman.
- Calling prediction with
embed=[]no longer raises aValueErrorin PR #25123 by @ahmet-f-gumustas.
Training, benchmarking, and export
- Semantic segmentation loss remains finite when an entire batch contains ignore pixels in PR #25097 by @JESUSROYETH.
- Legacy
benchmark(half=True)andbenchmark(int8=True)flags now correctly select quantized benchmarking instead of silently falling back to FP32 in PR #25106 by @JESUSROYETH. - CoreML export now pins
numpy<=2.3.5to prevent NumPy 2.4 compatibility crashes in PR #25100 by @fcakyon. - Axelera exports now reject image dimensions below the backend’s 64-pixel minimum in PR #25131 by @glenn-jocher.
- Deprecated
crop_fractionusage now emits a warning instead of stopping classification transforms in PR #24236 by @Dheeraj-Bhaskaruni.
Documentation and Infrastructure
- Segmentation dataset documentation was refreshed with corrected split counts, class information, download sizes, and clearer guidance in PR #25063 by @raimbekovm.
- Dataset YAML guides now document
.txtimage lists for train, validation, and test splits in PR #24472 by @raimbekovm. - A new Apple Core AI guide describes the planned
.aimodelworkflow in PR #25129 by @glenn-jocher. Core AI export is not yet available; Core ML remains the supported Apple deployment path. - Rust inference examples now use
ultralytics-inference0.0.27 in PR #25130 by @onuralpszr. - Python Docker images now use Python 3.13 on Debian Trixie in PR #25127 by @glenn-jocher.
- The Slack GitHub Action was updated from v3.0.3 to v3.0.5 in PR #25110 by @UltralyticsAssistant.
Welcome, New Contributors!
A warm welcome and thank you to our first-time contributors:
- @Dheeraj-Bhaskaruni with PR #24236
- @yegeniy with PR #23623
- @Joe-KI333 with PR #25082
- @wjddnwp29 with PR #24463
- @cosmo-gb with PR #24381
Thank you to every contributor and the wider YOLO community for making this release possible! ![]()
Try v8.4.93
Upgrade your installation with:
pip install -U ultralytics
Review every commit in the full v8.4.92 to v8.4.93 changelog, then try the new export, training, tracking, and dataset workflows.
Please share your results, questions, and feedback with the community. Happy building! ![]()