Ultralytics v8.4.116 Released
Ultralytics v8.4.116 is now available! This release improves installation reliability, introduces reusable YOLOE prompt embeddings, expands tracking and Ultralytics Platform workflows, reduces export memory usage, and refreshes guidance around YOLO26, the recommended model for new projects.
Explore the complete v8.4.116 release for all details.
Highlights
More reliable OpenCV installation with opencv-python>=4.7.0, excluding the affected4.13.0.90release.
Reusable YOLOE prompt embeddings for text and visual prompt configurations.
Lower-memory ONNX and QNN calibration through streamed data processing.
Expanded tracking support, including OBB and safer handling of unsupported tasks.
Richer Ultralytics Platform metadata workflows for datasets, images, projects, and models.
Clearer model selection guidance, with YOLO26 recommended for new projects and YOLO11 remaining fully supported.
Improved reliability across downloads, CoreML export, segmentation, depth calibration, and pose gradients.
New Features
Reusable YOLOE prompt embeddings
PR #25572 from @zgh2022 adds save_prompt_embeddings() and load_prompt_embeddings() for storing text or visual prompt configurations in NPZ files.
Profiles are validated against their source YOLOE model and can be reused before exporting to ONNX, OpenVINO, TensorRT, CoreML, LiteRT, and RKNN. Exported models remain standard single-input models and do not require the NPZ profile at runtime.
Expanded Ultralytics Platform metadata
PR #25697 from @glenn-jocher documents image upload metadata, while PR #25700 from @glenn-jocher adds custom metadata guidance for Platform datasets, images, projects, and models.
These workflows support nested metadata, metadata search, NDJSON image metadata, and Dataset Ingest API uploads—making it easier to organize provenance, review status, equipment details, and deployment context.
Performance and Export Improvements
- PR #25617 from @amanharshx streams ONNX and QNN calibration data instead of retaining every transformed image in memory.
- PR #25619 from @glenn-jocher updates anchor creation with CoreML-friendly tensor operations for improved dynamic export compatibility.
- PR #25585 from @JESUSROYETH accelerates semantic-mask overlays by building them in a single pass with palette lookup.
- PR #25360 from @lakshanthad refreshes OpenVINO 2026.2.1 benchmarks across Intel 155H, 258V, and 358H systems.
Tracking Improvements
- PR #25661 from @raimbekovm adds OBB to the documented tracking task summaries alongside detection, segmentation, and pose.
- PR #25665 from @raimbekovm rejects unsupported semantic and depth tracking tasks with a clear error before processing starts.
- PR #25636 from @raimbekovm skips unnecessary camera-motion compensation when
gmc_method: none. - PR #25638 from @raimbekovm keeps OC-SORT observation history bounded across every recording path.
Bug Fixes
- PR #25702 from @Y-T-G raises the minimum
opencv-pythonversion to4.7.0, retains the4.13.0.90exclusion for its FIPS self-test crash, and removes an outdated ONNX DNN backend check. - PR #25613 from @JESUSROYETH fixes FP16 end-to-end segmentation with class-agnostic NMS.
- PR #25607 from @Y-T-G preserves YOLOE one-to-one classifier weights during linear probing, preventing a severe accuracy regression.
- PR #25614 from @JESUSROYETH excludes out-of-range ground-truth values from depth calibration.
- PR #25694 from @glenn-jocher makes pose activation-map gradients compatible with autograd and
torch.compile. - PR #25600 from @rudrakumar07 restores percentage labels in analytics pie charts.
- PR #25612 from @glenn-jocher makes downloads atomic, preventing concurrent processes from reading partially written files.
Platform and Documentation
- PR #25622 from @glenn-jocher refactors Platform callbacks so they load only where needed, reducing unnecessary imports during prediction, validation, and export.
- PR #25627 from @glenn-jocher refreshes Platform integration screenshots.
- PR #25641 from @sergiuwaxmann updates Platform documentation to cover native YOLOv8 and YOLOv5 support.
- PR #25659 from @raimbekovm replaces the model index list with a clearer task-and-mode chooser.
- PR #25642 from @RizwanMunawar adds a YOLO26 custom-dataset training video to the documentation.
- PR #25645 from @raimbekovm updates the documentation banner to highlight depth estimation.
- PR #25649 from @onuralpszr clarifies that the depth estimation workflow is monocular.
- PR #25624 from @glenn-jocher removes a stale reproduction command from the Chinese depth notes.
- PR #25663 from @raimbekovm ensures documentation deployment runs when
ultralytics/cfg/default.yamlchanges.
Infrastructure
- PR #25673 from @glenn-jocher upgrades CI runner images to Node.js 24.
- PR #25651 from @dependabot updates
eviden-actions/clean-self-hosted-runnerto1.4.34. - PR #25680 from @UltralyticsAssistant updates the same runner action to
1.4.35. - PR #25606 from @MGPOCKY names the PyPI version-check step for clearer CI output.
New Contributor
A warm welcome to @MGPOCKY, who made their first contribution in PR #25606! Thank you to every contributor and the wider YOLO community for helping improve this release. ![]()
Try v8.4.116
Upgrade to the latest release with:
pip install -U ultralytics
For every commit included in this release, review the full v8.4.115 to v8.4.116 changelog.
Give v8.4.116 a try and share your feedback, benchmarks, and workflow experiences with the community! ![]()