NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1672 most downloaded on PyPI
Ultralytics YOLO 🚀 for SOTA object detection, instance segmentation, semantic segmentation, depth estimation, classification, pose estimation, oriented object detection, and multi-object tracking.
Last release today
29 Sep 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
11 versions withdrawn
withdrawn after publishing
4 years old
841 releases · first in 2022
v8.4.119 improves Intel NPU classification performance with OpenVINO, strengthens detection and tracking reliability, expands Platform integration, an
v8.4.119 improves Intel NPU classification performance with OpenVINO, strengthens detection and tracking reliability, expands Platform integration, and refreshes documentation and developer tooling. 🚀
⚡ OpenVINO NPU_TURBO for classification
NPU_TURBO automatically for classification models running on supported Intel NPU devices.🔌 Platform SDK exposed from ultralytics
Platform, AsyncPlatform, APIError, and APIConnectionError directly from the main package.🛰️ More efficient Platform training callbacks
🛡️ Improved tracking robustness
🎯 Safer detection export postprocessing
🧩 Corrected CopyPaste augmentation probability
CopyPaste transform now respects its configured probability in flip mode.📚 Documentation and usability updates
Cmd/Ctrl+Delete image-deletion shortcut to the Platform annotation guide.🧰 CI maintenance
ultralytics imports.is_ascii loop with str.isascii() by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/25801BYTETracker by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25769Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.118...v8.4.119
One column per quarter.
Ultralytics v8.4.118 introduces a standalone OpenAI-compatible LLM interface alongside YOLO, while improving OBB training, dataset handling, model tra
Ultralytics v8.4.118 introduces a standalone OpenAI-compatible LLM interface alongside YOLO, while improving OBB training, dataset handling, model training reliability, and documentation workflows. 🚀
🤖 New standalone LLM model interface by @glenn-jocher
from ultralytics import LLM for text and image-based language-model requests.openai dependency and remains independent of Ultralytics Platform and workflow-runtime components.📐 Improved oriented bounding box training
⚡ Faster CopyPaste augmentation
🧠 More reliable YOLOE behavior
🏋️ Training and inference stability fixes
train() and tune() calls on the same model object.🗂️ Dataset and prediction improvements
FileNotFoundError instead of failing later with an unrelated directory error.📚 Documentation and deployment updates
0.0.34.LLM interface.LLM class works with OpenAI and compatible providers without requiring Platform or workflow features.autocast_list loses image filename after exif_transpose by @Q-qqq in https://github.com/ultralytics/ultralytics/pull/25741drop_last to the classify train loader under compile, not val by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25734Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.117...v8.4.118
Ultralytics v8.4.118 introduces a standalone OpenAI-compatible LLM interface alongside YOLO, while improving OBB training, dataset handling, model training reliability, and documentation workflows. 🚀
🤖 New standalone LLM model interface by @glenn-jocher
from ultralytics import LLM for text and image-based language-model requests.openai dependency and remains independent of Ultralytics Platform and workflow-runtime components.📐 Improved oriented bounding box training
⚡ Faster CopyPaste augmentation
🧠 More reliable YOLOE behavior
🏋️ Training and inference stability fixes
train() and tune() calls on the same model object.🗂️ Dataset and prediction improvements
FileNotFoundError instead of failing later with an unrelated directory error.📚 Documentation and deployment updates
0.0.34.LLM interface.LLM class works with OpenAI and compatible providers without requiring Platform or workflow features.autocast_list loses image filename after exif_transpose by @Q-qqq in #25741drop_last to the classify train loader under compile, not val by @JESUSROYETH in #25734Full Changelog: v8.4.117...v8.4.118
v8.4.117 improves augmentation correctness, model reliability, deployment safety, and documentation across Ultralytics YOLO and YOLO26. 🚀
v8.4.117 improves augmentation correctness, model reliability, deployment safety, and documentation across Ultralytics YOLO and YOLO26. 🚀
🧩 Albumentations now handles spatial transforms by type
OneOf correctly update annotations.flip_idx mapping.🔐 Improved security for dependency installation
check_requirements() now prevents untrusted requirement strings from being interpreted as shell commands.🛡️ More reliable dataset and mask processing
🧠 Depth estimation improvements
⚡ Faster and more consistent inference
🎯 Expanded model and training support
kpt_oks_sigmas, with validation that the configuration matches the model’s keypoint count.📚 Documentation and platform updates
name, split, conf, iou, max_det, and agnostic_nms.ultralytics-inference version 0.0.33.main branch to prevent accidental production releases.rect=True by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25646DepthLoss26 gradient pyramids per image by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25637Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.116...v8.4.117
v8.4.117 improves augmentation correctness, model reliability, deployment safety, and documentation across Ultralytics YOLO and YOLO26. 🚀
🧩 Albumentations now handles spatial transforms by type
OneOf correctly update annotations.flip_idx mapping.🔐 Improved security for dependency installation
check_requirements() now prevents untrusted requirement strings from being interpreted as shell commands.🛡️ More reliable dataset and mask processing
🧠 Depth estimation improvements
⚡ Faster and more consistent inference
🎯 Expanded model and training support
kpt_oks_sigmas, with validation that the configuration matches the model’s keypoint count.📚 Documentation and platform updates
name, split, conf, iou, max_det, and agnostic_nms.ultralytics-inference version 0.0.33.main branch to prevent accidental production releases.rect=True by @JESUSROYETH in #25646DepthLoss26 gradient pyramids per image by @JESUSROYETH in #25637Full Changelog: v8.4.116...v8.4.117
🚀 v8.4.116 improves installation reliability, expands YOLOE and Platform workflows, strengthens tracking and export support, and refreshes YOLO26 docu
🚀 v8.4.116 improves installation reliability, expands YOLOE and Platform workflows, strengthens tracking and export support, and refreshes YOLO26 documentation.
🔧 OpenCV compatibility fix — current PR #25702 by @Y-T-G
opencv-python version from 4.6.0 to 4.7.0.4.13.0.90, which is affected by a FIPS self-test crash.cv2.imdecodemulti, which Ultralytics uses internally.🧠 Reusable YOLOE prompt embeddings
save_prompt_embeddings() and load_prompt_embeddings() for storing text or visual prompt configurations in NPZ files.📚 Improved model guidance
🎯 Broader and safer tracking support
gmc_method: none.📦 More efficient model export
🧪 Depth and segmentation fixes
torch.compile.🖼️ Visualization and analytics improvements
☁️ Expanded Ultralytics Platform workflows
🛡️ Reliability and infrastructure
openvino 2026.2.1 benchmarks with Intel 155H, 258V and 358H systems by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/25360gmc_method: none by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/25636ultralytics/cfg/default.yaml changes by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/25663opencv-python to 4.7.0 by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/25702Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.115...v8.4.116
Deprecate HUB in favor of Ultralytics Platform by @sergiuwaxmann in https://github.com/ultralytics/ultralytics/pull/25608
v8.4.115 transitions Ultralytics from legacy HUB integrations to the streamlined Ultralytics Platform experience, with simpler authentication and a leaner training codebase. 🚀
🔐 Introduced validated Platform CLI authentication
yolo login API_KEYyolo logout🔄 Added settings migration to schema 0.0.7
🧹 Removed the legacy ultralytics.hub package
🧠 Simplified model and trainer workflows
📚 Updated documentation and examples
✅ Expanded test coverage
yolo login command validates credentials directly and provides a more intuitive alternative to manually editing settings.ultralytics.hub, use HUB training sessions, load models from HUB URLs, or rely on HUB-specific utilities must migrate to Ultralytics Platform workflows.yolo login YOUR_API_KEY
For no-code dataset annotation, training, and deployment, use the Ultralytics Platform.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.114...v8.4.115
v8.4.114 improves reliability across Platform workflows, exported models, validation, edge inference, and advanced vision tasks—while delivering clear
v8.4.114 improves reliability across Platform workflows, exported models, validation, edge inference, and advanced vision tasks—while delivering clearer errors and faster, more robust execution. 🚀
Clearer Ultralytics Platform errors and quieter retries — PR #25581 by @glenn-jocher:
GET instead of HEAD, preserving the detailed error messages returned by the Platform.Improved exported-model validation:
imgsz during validation. ✅More reliable model export and deployment:
Faster LiteRT CPU inference:
Fixes for SAM3, visualization, and pose rendering:
AttributeError.Improved training and data pipelines:
names fields more safely.Documentation and maintenance updates:
channels_last.AttributeError on mask_threshold in SAM3 semantic prediction by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25563Annotator.kpts() dropping keypoints and limbs on image borders by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25565Python syntax error in similarity-search solution by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/25579Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.113...v8.4.114
🚀 Ultralytics 8.4.113 expands Qualcomm QNN deployment to Dragonwing IQ-8275 devices, improves model visualization and export reliability, and standard
🚀 Ultralytics 8.4.113 expands Qualcomm QNN deployment to Dragonwing IQ-8275 devices, improves model visualization and export reliability, and standardizes task support documentation across the project.
Qualcomm Dragonwing IQ-8275 QNN export
iq-8275 and qcs8275 as QNN export targets using Qualcomm SoC model 82.onnxruntime-qnn==2.4.0.model.export(format="qnn", name="iq-8275").New class activation heatmaps for prediction 🔥
visualize=True feature-map dump with a more useful LayerCAM-style heatmap.More accurate attention FLOPs reporting 📊
Improved RKNN and quantized export support
rknn-toolkit2 dependencies, including setuptools<82.Export and runtime reliability fixes 🛠️
gather where needed.Performance and stability improvements ⚡
Documentation consistency and accuracy 📚
yt-dlp for YouTube streams by @ambitious-octopus in https://github.com/ultralytics/ultralytics/pull/16336yt-dlp for YouTube streams" by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25546Annotator.masks in row bands to cut mask plotting time and memory by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25554Heatmap overlay disappearing on frames without tracks by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25556Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.112...v8.4.113
Release v8.4.112 makes model export support much clearer and more reliable, with comprehensive task documentation across formats and a fix enabling DE
Release v8.4.112 makes model export support much clearer and more reliable, with comprehensive task documentation across formats and a fix enabling DEEPX classification exports. 📦✅
Documented supported tasks for every export format 📚
Verified export coverage across formats 🔍
Fixed DEEPX classification export 🛠️
root, rather than img_path; the exporter now handles this correctly.Removed outdated GraphDef benchmark restrictions ⚡
Minor documentation and release updates ✨
8.4.112.Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.111...v8.4.112
🚀 Ultralytics 8.4.111 expands hardware support with validated Huawei Ascend NPU training, broader accelerator compatibility, and important tracking, M
🚀 Ultralytics 8.4.111 expands hardware support with validated Huawei Ascend NPU training, broader accelerator compatibility, and important tracking, MPS, deployment, and documentation improvements.
Huawei Ascend NPU training support 🧠
torch_npu.device=npu:0 and device=npu:0,1..om export and deployment.Unified accelerator handling ⚙️
npuxpuAMD ROCm integration guide 🔴
device=0 or device=cuda:0, not device=rocm:0.Improved accelerator-aware data loading and profiling 📈
Tracking and numerical stability improvements 🎯
Apple MPS reliability fixes 🍎
Documentation and platform updates 📚
ultralytics-inference 0.0.32, including Intel CPU, GPU, and NPU device options.ObjectCounter region between frames by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25492linear_sum_assignment fallback by @ErenAta16 in https://github.com/ultralytics/ultralytics/pull/25508Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.110...v8.4.111
🚀 Version 8.4.110 expands RKNN export to every supported YOLO task and improves GPU-friendly tensor image plotting, making Rockchip deployment more ve
🚀 Version 8.4.110 expands RKNN export to every supported YOLO task and improves GPU-friendly tensor image plotting, making Rockchip deployment more versatile and visualization more efficient.
Expanded RKNN export support by @glenn-jocher:
rknn-toolkit2.More efficient tensor-based plotting:
Results.plot() and Annotator now accept contiguous HWC BGR torch.Tensor images.Documentation improvements:
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.109...v8.4.110
📊 v8.4.109 improves profiling accuracy, export reliability, inference efficiency, tracking stability, and Ultralytics Platform integrations—led by cor
📊 v8.4.109 improves profiling accuracy, export reliability, inference efficiency, tracking stability, and Ultralytics Platform integrations—led by correctly reporting GFLOPs for the actual training image size.
Accurate GFLOPs logging at training resolution 🎯
model_info_for_loggers() now passes the trainer’s actual imgsz to FLOPs profiling.ultralytics-thop dependency.Improved model fusion and profiling ⚙️
model.fuse() now accepts an imgsz argument so reported model information matches the intended input resolution.More reliable INT8 calibration 📦
fraction setting when selecting calibration images.Faster and more efficient mask plotting 🖼️
Inference warmup now uses the real input shape 🔥
Training recovery behavior made safer 🛡️
Tracking and numerical stability improvements 🚦
Heatmap and validation performance improvements 📈
Expanded Ultralytics Platform documentation and integrations 🌐
System and CI maintenance 🧰
actions/stale@v11.get_flops by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25468Heatmap counting region once per frame instead of once per object by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25467ConfusionMatrix.process_batch with a lookup by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25466fraction for classify models by @synml in https://github.com/ultralytics/ultralytics/pull/25469imgsz by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25483Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.108...v8.4.109
🛠️ v8.4.108 improves MuSGD stability, inference and tracking efficiency, analytics quality, ONNX compatibility, and documentation usability—without ch
🛠️ v8.4.108 improves MuSGD stability, inference and tracking efficiency, analytics quality, ONNX compatibility, and documentation usability—without changing model accuracy or architecture.
Fixed a MuSGD training crash by @Y-T-G:
AssertionError failures when training models containing parameters such as (C, 1, 1) LayerScale tensors.Improved prediction performance reporting:
predictor.speed.predictor.pixels.Reduced tracking overhead and preserved device placement:
Improved ONNX Runtime example compatibility:
Strengthened training and inference analytics:
Expanded Ultralytics Platform integration:
Improved generated reference documentation:
str | Path.Updated documentation links and CI reliability:
RandomFlip by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25462Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.107...v8.4.108
Huawei Ascend support arrives in Ultralytics, enabling YOLO models to export and run as hardware-optimized .om models on Ascend NPUs. 🚀
Huawei Ascend support arrives in Ultralytics, enabling YOLO models to export and run as hardware-optimized .om models on Ascend NPUs. 🚀
Huawei Ascend export and inference 🧠
format=ascend to compile YOLO models through Huawei’s CANN ATC compiler..om files with metadata, targeting a specified Ascend SoC through name, such as Ascend310P3 or Ascend310B4.AutoBackend support using ais_bench for inference on Ascend hardware.huawei, cann, and om, while preventing cann from being incorrectly routed to NCNN.Ultralytics Platform support ☁️
Faster and cleaner FLOPs profiling ⚡
get_flops_with_torch_profiler utility.ultralytics-thop to version 2.1.0 or newer for improved profiling performance and cleanup reliability.More reliable distributed training 🌐
Tracking and evaluation fixes ✅
PR_curve.png when classes have no predictions.GroundingDataset.musgd work correctly.Clearer low-disk-space reporting 💾
0.0 MB values.Broader hardware deployment: Users targeting Huawei Atlas boards and OrangePi AIPro devices now have a direct path from a trained YOLO checkpoint to accelerated Ascend inference. 🏭🤖
Simpler deployment workflow: Export with a familiar command such as:
yolo export model=yolo26n.pt format=ascend name=Ascend310B4
The generated model directory can then be loaded through standard Ultralytics prediction APIs.
Improved edge performance potential: Ascend’s AI Core executes compiled FP16 models on-device, supporting low-power applications such as robotics, industrial inspection, and smart cameras.
Faster development workflows: FLOPs profiling should require less time and memory, particularly for larger models.
More dependable training and tracking: Distributed jobs, TrackTrack recovery, optimizer selection, and evaluation plots behave more consistently.
Better diagnostics: Disk-space errors now provide actionable information, making it easier to distinguish a nearly full disk from one with only a small amount of free space.
⚠️ Ascend export requires the Linux-based CANN toolkit and the
atccompiler. Ascend inference additionally requires the CANN runtime andais_benchon the target device.
PR_curve.png when a class has no predictions by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25419GroundingDataset by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25420Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.106...v8.4.107
🛡️ Ultralytics v8.4.106 improves reliability by rejecting invalid inputs early, providing clearer model-loading errors, and strengthening automated te
🛡️ Ultralytics v8.4.106 improves reliability by rejecting invalid inputs early, providing clearer model-loading errors, and strengthening automated testing and download recovery.
🖼️ Clear validation for unreadable image sources (PR #25431, @glenn-jocher)
⬇️ More reliable download failure handling (PR #25431)
📦 Cleaner errors for corrupt or unsupported checkpoints (PRs #25428 and #25430)
.pt extension now produce a consistent explanation.yolo26n.pt.🔗 Improved ONNX error messages (PR #25430)
yolo export model=yolo26n.pt format=onnx.🧪 Broader and smarter fuzz testing (PR #25424)
🎨 Documentation formatting maintenance (PR #25429)
3.8.5.Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.105...v8.4.106
v8.4.105 improves reliability for distillation checkpoints, expands YOLO26 deployment options, and enhances CoreML, mobile, Hailo, QNN, Platform, and
v8.4.105 improves reliability for distillation checkpoints, expands YOLO26 deployment options, and enhances CoreML, mobile, Hailo, QNN, Platform, and documentation workflows.
fuse() delegation to DistillationModel. Checkpoints saved during or after interrupted training can now be used with yolo export, predict, and val without failing because the training-only wrapper lacks a fusion method. By @glenn-jocher.224640channels_last support for training and native PyTorch prediction, providing reported throughput improvements while preserving accuracy. Standard NCHW behavior remains unchanged by default.channels_last weights.opset and simplify options for ONNX-backed formats such as MNN, RKNN, QNN, DEEPX, Edge TPU, and TensorFlow exports.channels_last, tracker vectorization, lighter heatmap storage, and optimized loss calculations can improve throughput or reduce memory and CPU overhead.pip install -U ultralytics to receive the checkpoint, export, and deployment fixes.Heatmap accumulator single-channel by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25342correct matrix with torch.from_numpy instead of a device round-trip by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25344WorldDetect.forward by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25345multi_predict and multi_gmc track loops by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25343Model.calibrate() inference-tensor crash on CUDA by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25351BboxLoss weights and pose keypoint strides on matched anchors only by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25346overlap_mask=False by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25392RandomPerspective warps by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25411TRACKTRACK.update IndexError on a single torch-backed detection by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25394intel:gpu device alias resolution on multi-GPU OpenVINO machines by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25393Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.104...v8.4.105
YOLO26 gains a complete monocular depth estimation task, enabling per-pixel distance prediction, training, validation, visualization, calibration, and
YOLO26 gains a complete monocular depth estimation task, enabling per-pixel distance prediction, training, validation, visualization, calibration, and deployment alongside existing Ultralytics tasks. 🌍📐
New YOLO26-Depth model family 🤖
yolo26n-depth, yolo26s-depth, yolo26m-depth, yolo26l-depth, and yolo26x-depth.Depth is now a first-class Ultralytics task 🆕
yolo depth train
yolo depth val
yolo depth predict
yolo export
Model API, including prediction, training, validation, export, and model.calibrate().Improved depth training and evaluation 📊
Depth-aware data pipeline 🗂️
.npy float32 depth-map loading.Large dataset and benchmark support 🌐
Depth visualization and results support 🎨
DepthMap results, depth heatmap plotting, depth-aware result summaries, and access through result.depth.data..cpu() and .numpy() workflows.Export and deployment support 🚀
opset and workspace arguments.More reliable training logs 🧾
l1_loss as dfl_loss when DFL is not used.Performance and reliability improvements ⚡
log_softmax once instead of twice, improving the DFL loss path by approximately 1.5–1.75× in benchmarks.Export, dataset, and workflow fixes 🛠️
Path export arguments to strings, preventing exported ONNX metadata from failing to reload.safe_download(..., delete=True).Expands YOLO26 beyond object recognition 🌟
Users can now infer scene geometry and approximate camera-to-surface distances from a single RGB image, supporting robotics, navigation, AR/VR, 3D reconstruction, and spatial awareness applications.
Handles a wider range of environments 🏠🚗
The unbounded log-depth design avoids a fixed short-range ceiling, making the models better suited to both indoor scenes and long-range outdoor driving data such as KITTI.
Simplifies end-to-end development ✅
Depth estimation uses the same familiar Ultralytics workflow for dataset preparation, training, validation, prediction, export, and Python integration.
Improves custom-dataset adaptation 🎯
Users can fine-tune pretrained YOLO26-Depth models and calibrate absolute depth scale without retraining the network, helping adapt predictions to a particular camera or environment.
Makes deployments more dependable 🔒
Dynamic export shapes, corrected metadata serialization, more accurate TensorRT documentation, and safer archive handling reduce friction when moving models into production.
Benefits existing tasks as well ⚙️
The loss-dictionary refactor, DFL optimization, assigner optimization, semantic-mask caching, and CI robustness fixes improve maintainability, logging accuracy, training speed, and reliability across the broader Ultralytics framework.
For production workflows, YOLO26 remains the recommended latest stable model family. Users who prefer managed annotation, training, and deployment can also use the Ultralytics Platform.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.103...v8.4.104
v8.4.103 improves training reliability, result handling, deployment workflows, and documentation—most importantly ensuring warmup finishes on schedule
v8.4.103 improves training reliability, result handling, deployment workflows, and documentation—most importantly ensuring warmup finishes on schedule so short training runs reach their intended learning-rate behavior. 🚀
Training warmup no longer consumes entire short runs 🎯
warmup_epochs is now treated as a true epoch count rather than being forced to at least 100 iterations.More accurate validation and experiment reporting 📈
Improved model construction and performance ⚡
ModelEMA updates with batched PyTorch operations where supported.More robust results and mask processing 🖼️
Results methods such as plot(), save_txt(), save_crop(), summary(), and verbose() now work correctly with NumPy-backed results from Results.numpy().Safer and clearer exports 🔧
opset argument.Expanded Platform and API capabilities ☁️
latest tags.--device reservations for more reliable access across host daemon reloads.Documentation and workflow improvements 📚
actions/setup-python@v7.opset argument from Hailo export by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/25305ModelEMA update with batched _foreach_lerp_ by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/25315process_mask by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25298nc by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25297Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.102...v8.4.103
🚀 Ultralytics 8.4.102 makes MuSGD training up to 8× faster while expanding YOLO26 edge deployment, improving export reliability, and strengthening dat
🚀 Ultralytics 8.4.102 makes MuSGD training up to 8× faster while expanding YOLO26 edge deployment, improving export reliability, and strengthening dataset and GPU error handling.
⚡ Faster MuSGD optimizer
foreach operations for momentum and SGD updates.muon_update API while adding an optimized internal batched path.📱 YOLO26 semantic segmentation on Hailo
🛡️ More reliable GPU training recovery
CUBLAS_STATUS_ALLOC_FAILED as a recoverable first-epoch memory error, allowing automatic batch-size reduction and retry behavior similar to out-of-memory errors.📦 Improved classification dataset handling
0 when single_cls=True.🔧 Safer model export and inference
✅ Clearer validation errors
ValueError when mask_ratio is too large for the selected image size, instead of failing later inside OpenCV.📚 Platform and deployment documentation updates
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.101...v8.4.102
🚀 Ultralytics v8.4.101 expands Hailo deployment support across nearly the full YOLO task range and strengthens NDJSON dataset reliability, Platform va
🚀 Ultralytics v8.4.101 expands Hailo deployment support across nearly the full YOLO task range and strengthens NDJSON dataset reliability, Platform validation insights, and documentation.
🧠 Expanded Hailo export and inference
format="hailo" now supports:
🛡️ More reliable NDJSON dataset conversion
filelock as a required dependency.📈 Improved Platform validation reporting
🏢 Clearer On Premise data boundaries
🗂️ Improved dataset ingest documentation
classMapping parameter for mapping incoming archive classes to existing dataset classes.null to skip labels.📚 Documentation and maintenance updates
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.100...v8.4.101
🚀 v8.4.100 expands edge deployment capabilities with Hailo instance segmentation support for YOLOv8 and YOLO11, while improving deployment guidance, t
🚀 v8.4.100 expands edge deployment capabilities with Hailo instance segmentation support for YOLOv8 and YOLO11, while improving deployment guidance, training validation, Platform workers, fuzz testing, and export reliability.
🟢 Hailo instance segmentation export and inference
📚 Improved Hailo INT8 deployment documentation
⚠️ Clearer TensorRT compatibility guidance
🧪 Broader and more effective fuzz testing
🛑 Cleaner training errors for invalid small configurations
batch=1 is used with an image size too small for BatchNorm.🔧 More reliable Axelera exports
omnimalloc==0.5.0 to avoid compatibility failures with Axelera Devkit 1.7.0.☁️ Improved Platform managed-worker integration
PLATFORM_API_URL.SETTINGS["runs_dir"] value at runtime.📌 For the simplest workflow to annotate datasets, train models, and deploy them, visit the Ultralytics Platform.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.99...v8.4.100
🚀 v8.4.99 adds native Hailo inference support, allowing Ultralytics-exported Hailo models to run directly with predict and val, while also improving t
🚀 v8.4.99 adds native Hailo inference support, allowing Ultralytics-exported Hailo models to run directly with predict and val, while also improving training memory usage, platform checkpoint handling, downloads, and compatibility.
🧩 New Hailo inference backend
from ultralytics import YOLO
model = YOLO("yolo11n_hailo_model")
results = model.predict("image.jpg")
metadata.yaml file.🧠 Lower training memory usage
☁️ More reliable Platform checkpoint uploads
best.pt.🔗 Improved download and redirect handling
requests dependency for URL checks and downloads.urllib compatibility layer.🐍 Better Python 3.13 checkpoint compatibility
pathlib path names.🛠️ CI and documentation maintenance
setup-uv action.manager/through to the accurate manger/trough.manger/trough by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/25233profile_ops memory-envelope comment by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25235Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.98...v8.4.99
v8.4.98 improves Hailo export compatibility for legacy YOLO checkpoints while preserving strict model-family validation. 🚀
v8.4.98 improves Hailo export compatibility for legacy YOLO checkpoints while preserving strict model-family validation. 🚀
Legacy checkpoint support for Hailo export 🛠️
Hailo exports can now identify the model family from its architecture when older checkpoints do not include the optional yaml_file metadata.
Topology-based model detection 🔍
The exporter examines backbone and head components to recognize supported YOLOv8, YOLO11, and YOLO26 checkpoints when metadata is missing.
Existing validation remains intact ✅
The detection-head checks and supported-family restrictions were preserved, preventing unsupported architectures such as YOLOv5, YOLOv10, and YOLO12 from being sent to Hailo’s Dataflow Compiler.
Patch version updated 📦
The package version was incremented from 8.4.97 to 8.4.98.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.97...v8.4.98
LiteRT is now used in new export examples, while the historical TFLite guide is clearly marked deprecated.
🚀 Ultralytics 8.4.97 adds direct Hailo HEF export, making it much easier to compile YOLOv8, YOLO11, and YOLO26 detection models for Hailo edge accelerators while also delivering several export fixes, inference improvements, and documentation updates.
Direct Hailo HEF export
model.export(format="hailo") and the equivalent CLI command..hef file.from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="hailo", name="hailo8l", data="my_dataset.yaml")
CoreML export reliability improvements
Inference and export bug fixes
save_crop=True now reliably writes crops even when save, save_txt, and show are disabled.Results.plot(), improving visualization performance for detection, segmentation, and pose results.torch.compile() mode, including max-autotune.fuse() method does not accept Ultralytics-specific arguments.HTTP_PROXY and HTTPS_PROXY environment variables.Deployment and ecosystem updates
rclpy examples alongside the existing ROS1 workflow.Results.plot() now performs fewer per-box and per-keypoint device synchronizations, which can improve rendering performance on GPU workloads.save_crop=True silently writing no crops without save/save_txt/show by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25204compute_precision for CoreML NMS export by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/25200semantic_mask by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/251912026.2.1 by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/25211TVPSegmentLoss crashing end-to-end YOLOE-Seg visual-prompt training on tal_topk2 by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25209Results.plot() by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25230max-autotune option for torch.compile() by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/25229Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.96...v8.4.97
Ultralytics v8.4.96 strengthens NDJSON dataset security and dramatically improves conversion speed, while adding YOLO26 depth deployment guidance, On
Ultralytics v8.4.96 strengthens NDJSON dataset security and dramatically improves conversion speed, while adding YOLO26 depth deployment guidance, On Premise Platform documentation, and numerous reliability fixes. 🚀
🔐 Faster and safer NDJSON conversion
📏 YOLO26 depth support in Rust inference
yolo26n-depth.onnx.--colormap and --depth-viz.ultralytics-inference documentation to version 0.0.29.🚀 New Intel deployment guide
🏢 Expanded Ultralytics Platform On Premise documentation
🧩 Reliability and correctness fixes
Results.update(probs=...) now correctly wraps probabilities in Probs, restoring methods such as summary(), plot(), and exports.single_cls and classes.save_one_box() now returns crops in the requested format regardless of whether the crop is saved.return_idxs=True.📚 Documentation improvements
masks/ folder fallback behavior.tracktrack.yaml.text for improved rendering and readability.Results.update(probs=...) to wrap probs in Probs like the other attributes by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25157single_cls and classes by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25158scale_coords letterbox pad so keypoints and mask polygons stay aligned with boxes by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25156ConfusionMatrix gaining a phantom background class by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25155v8SegmentationLoss silently dropping images when overlap_mask=False and instances < batch size by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25173save_one_box to return the crop in the requested BGR format regardless of save by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25172postprocess overwriting the first box by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25175GMC by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25181YOLOESegModel.loss mixing text prompts into visual-prompt training by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25178polygons2masks_overlap dropping instances past 128 overlaps by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25185Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.95...v8.4.96
v8.4.95 improves training reliability, RT-DETR detection limits, input compatibility, and dataset usability—headlined by safer checkpoint loading for
v8.4.95 improves training reliability, RT-DETR detection limits, input compatibility, and dataset usability—headlined by safer checkpoint loading for Platform GPU jobs. 🚀
weights_only=True loading.max_det support — The detection limit is now correctly applied during native prediction, validation, and model exports, including CoreML and other deployment formats.test2017.zip by default. Standard downloads are now approximately 20.2–20.3 GB instead of about 27 GB.ObjectCounter example now uses its returned results object, and automatic dataset download behavior is described more precisely.max_det, helping control output size, latency, and downstream processing requirements.uint8 tensors can handle a wider range of camera and image formats without manual channel conversion.PoseMetrics.curves returning duplicated box labels by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25148LoadPilAndNumpy by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25151Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.94...v8.4.95
Removed the deprecated PyTorch Mobile/XNNPACK optimization path and the TorchScript optimize argument.
🚀 Ultralytics 8.4.94 modernizes deployment, improves validation and tracking reliability, and expands edge-device and dataset documentation.
TorchScript mobile optimization removed 🛠️
optimize argument.optimize argument is retained for DEEPX exports only.New Ambarella CVflow deployment guide 📷
Improved semantic segmentation dataset support 🧩
masks/ directory when selecting PNG-mask data.Dataset configuration validation strengthened ✅
fraction must now be greater than zero, preventing empty training datasets caused by fraction=0.Pose26 training loss corrected 🎯
Pose26 models run with end-to-end mode disabled.ReID tracking made more robust 🔍
None so trackers can fall back to motion or IoU association.LVIS downloads reduced 💾
test2017.zip download because LVIS does not define a test split.Documentation and CI cleanup 📚
optimize=True is no longer supported.Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.93...v8.4.94
Deprecated crop_fraction usage now emits a warning instead of stopping classification transforms.
Ultralytics v8.4.93 expands Alibaba MNN export capabilities, improves training and inference reliability, and adds major dataset, cloud-storage, and integration documentation updates. 🚀
Alibaba MNN exports now support dynamic shapes and embedded NMS 🎯
dynamic=True enables variable image dimensions for MNN models.nms=True is supported for detect and pose models with static shapes.Improved model tracking and vision workflows 👁️
ObjectCounter now determines IN/OUT direction from object motion rather than region shape, improving counting in square and wide regions.embed=[] no longer causes prediction to fail.More reliable training, benchmarking, and export behavior 🛠️
benchmark(half=True) and benchmark(int8=True) flags now correctly map to quantized benchmarking instead of silently using FP32.nbs=0, max_det=0, mask_ratio=0, or negative seeds are rejected early with clear errors.torch.compile gracefully falls back to eager execution when no C++ compiler is available.Improved segmentation and conversion utilities ⚡
segment2box is significantly faster while preserving its output.process_mask(upsample=True) now upsamples before cropping, preventing mask pixels from leaking outside bounding boxes.crop_fraction usage now emits a warning instead of stopping classification transforms.Expanded pose evaluation customization 🧍
kpt_oks_sigmas values in their YAML files.Ultralytics Platform cloud-storage integrations documented ☁️
Documentation and deployment updates 📚
.aimodel workflow. Core AI export is not yet available; Core ML remains the supported Apple deployment path..txt image lists for train, validation, and test splits.ultralytics-inference 0.0.27.1, yes, on, y, and t.segment2box implementation and improved small-dataset documentation make testing and experimentation more efficient.ObjectCounter polygon direction to follow object motion by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25104BOTSORT native-ReID crash with user-supplied detections by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25102benchmark by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25106ValueError when predict is called with an empty embed list by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/25123raise DeprecationWarning halting classify_transforms by @Dheeraj-Bhaskaruni in https://github.com/ultralytics/ultralytics/pull/24236ultralytics-inference version to 0.0.27 in documentation by @onuralpszr in https://github.com/ultralytics/ultralytics/pull/25130save_dir override when resuming training by @yegeniy in https://github.com/ultralytics/ultralytics/pull/23623process_mask to prevent mask leakage by @wjddnwp29 in https://github.com/ultralytics/ultralytics/pull/24463.txt image-list usage in dataset YAML splits by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/24472kpt_oks_sigmas for pose evaluation via dataset YAML by @cosmo-gb in https://github.com/ultralytics/ultralytics/pull/24381Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.92...v8.4.93
Ultralytics v8.4.92 improves RKNN INT8 multi-batch export reliability, strengthens inference and dataset validation, and expands YOLO26 documentation
Ultralytics v8.4.92 improves RKNN INT8 multi-batch export reliability, strengthens inference and dataset validation, and expands YOLO26 documentation for web deployment. 🚀
🔧 Fixed RKNN INT8 multi-batch export (PR #25094, @glenn-jocher)
rknn_batch_size.batch=8.⚡ Improved compiled model predictor reuse (PR #25092, @glenn-jocher)
None.torch.compile model wrappers from triggering unsupported truth-value checks during repeated inference.✅ More accurate validation split handling (PR #25093, @glenn-jocher)
val or test, instead of always checking val.📦 More reliable polygon-to-box conversion (PR #25086, @JESUSROYETH)
segment2box() now preserves the visible portion of polygons that cross image boundaries.🌐 Expanded LiteRT web deployment documentation (PR #25087, @onuralpszr)
@ultralytics/yolo NPM package.npm i @ultralytics/yolo @litertjs/core.📚 Refreshed pose dataset documentation
🔐 Simplified contributor license workflow
ultralytics/actions workflow.test or val data earlier.segment2box shrinking boxes when augmented polygons cross image bounds by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25086Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.91...v8.4.92
Ultralytics v8.4.91 improves YOLO26 deployment quality—especially TensorRT INT8 confidence calibration—while adding stronger automated CLI fuzz testin
Ultralytics v8.4.91 improves YOLO26 deployment quality—especially TensorRT INT8 confidence calibration—while adding stronger automated CLI fuzz testing, better export reliability, and many training/inference bug fixes 🚀
Improved TensorRT INT8 exports for YOLO26 confidence scores ⚡
Sigmoid operation from INT8 quantization in TensorRT export paths.Sigmoid across TensorRT 7 through TensorRT 11+ using the appropriate backend mechanisms.Added daily YOLO CLI fuzz testing 🧪
yolo CLI across train, export, predict, validation, and chaos-style command variations.Improved ONNX INT8 export reliability 🔧
Conv, Gemm, and MatMul.Better pretrained fine-tuning behavior 🎯
Multiple inference, validation, and tracking fixes ✅
track() crashes caused by CPU/GPU tensor mismatches when using exported models with the default tracker.classes filtering being applied after max_det truncation for end-to-end NMS models, which could return too few or zero detections.save_txt=True keypoint scaling so saved keypoints correctly align with original image coordinates.Heatmap and ObjectBlurrer.Improved support for non-RGB and custom-channel workflows 🌈
Export and platform reliability improvements 🧩
4.13.0.90 correctly.Documentation refreshes 📚
CI and Docker workflow hardening 🐳
More accurate TensorRT INT8 confidence calibration 📈
Sigmoid at higher precision helps prevent confidence-score compression in YOLO26 TensorRT INT8 exports.More reliable production exports 🚀
Fewer silent or confusing failures 🛡️
Better results when fine-tuning custom datasets 🎓
Stronger support for specialized vision data 🛰️
Higher long-term stability through fuzzing 🧪
Clearer learning and dataset guidance 📖
track() device mismatch with exported models under the default tracktrack tracker by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25042classify_transforms ignoring interpolation for non-square sizes by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/25047classes filter applied after max_det truncation in end-to-end NMS by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25043Heatmap, ObjectBlurrer and other solutions crash with OBB models by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25058save_txt keypoint scaling in PoseValidator by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25053DistillationModel warmup for single-channel datasets by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25067Sigmoid/Softmax from TensorRT INT8 quantization by @davidnichols-ops in https://github.com/ultralytics/ultralytics/pull/25020Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.90...v8.4.91
Ultralytics v8.4.90 adds a major new YOLO Architecture Explained guide for understanding the evolution from YOLOv3 to YOLO26, while also improving tra
Ultralytics v8.4.90 adds a major new YOLO Architecture Explained guide for understanding the evolution from YOLOv3 to YOLO26, while also improving tracking reliability, segmentation edge-case handling, Docker GPU guidance, and contributor workflows 🚀📚
🧠 New YOLO Architecture Explained guide
Bottleneck, C3, C2f, C3k2, SPPF, C2PSA, DFL, anchor-free detection, and YOLO26’s NMS-free / DFL-free design.mkdocs.yml and the guides index for easier discovery.🎯 Improved ByteTrack and FastTrack low-confidence recovery
BYTETracker and FastTracker so low-confidence detections can correctly recover existing tracks when fuse_score=True.🧩 Segmentation mask utilities now handle zero detections
process_mask, process_mask_native, and scale_masks for valid empty inputs with zero detections.🐳 Docker GPU examples updated to CDI device requests
--runtime=nvidia --gpus all examples with modern CDI-style device requests such as --device nvidia.com/gpu=all.🤖 New AI-agent contributor guidance
AGENTS.md with repository overview, engineering principles, development commands, PR workflow expectations, and architecture notes.CLAUDE.md as a symlink for Claude Code compatibility.🔇 Cleaner safe-load behavior
🧪 CI compatibility fix
<2 for the PyTorch 2.3.0 / torchvision 0.18.0 slow-test shard to avoid a known ColorJitter hue overflow issue.🔗 Documentation link updates and cleanup
ai-in-* paths to new computer-vision-in-* paths.SolutionResults docs table formatting.Roboflow directly and clarifying API key requirements.SuperMarioYL.📚 Easier learning and model understanding
🚀 More reliable object tracking
✅ More robust segmentation workflows
🐳 More stable GPU containers
🤝 Better contributor and automation support
AGENTS.md gives human contributors and AI coding tools clearer expectations, helping future PRs stay consistent, tested, and maintainable.🧹 Smoother user experience
fuse_score=True by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25034process_mask, process_mask_native and scale_masks on empty 0-detection inputs by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25032Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.89...v8.4.90
Ultralytics v8.4.89 improves prediction reliability for grayscale NumPy images, adds several important edge-case fixes, and makes training, benchmarki
Ultralytics v8.4.89 improves prediction reliability for grayscale NumPy images, adds several important edge-case fixes, and makes training, benchmarking, AI Gym, and release publishing more robust 🚀
🖼️ Fixed 2D grayscale NumPy prediction on color models by @maxime2476
(H, W) are now expanded correctly for 3-channel color models.🏋️ Fixed AI Gym result alignment by @SuperMarioYL
workout_count, workout_stage, and workout_angle now only report currently visible tracked people.total_tracks, avoiding stale data from people who already left the frame.⚡ Improved multi-GPU training performance by @ExtReMLapin
broadcast_buffers=False by default.🧪 Improved benchmark usability by @zhanghuiwan and @raimbekovm
format values are now case-insensitive, so inputs like ONNX or TensorRT work as expected.eps argument and clarify standalone benchmark() defaults, including model="yolo26n.pt" and imgsz=160.🌍 Fixed YOLOE and YOLO-World CLI class parsing by @ahmet-f-gumustas
classes="person, bus" now becomes ["person", "bus"] instead of ["person", " bus"].🔗 Fixed signed model URL suffix validation by @diaz3z
model.pt?token=abc now pass .pt suffix checks correctly.📐 Fixed segment2box() for objects on the left image edge by @bujna94
0 are no longer incorrectly dropped.🧩 Improved installation reliability by @Nailujj
opencv-python==4.13.0.90 package.🛠️ Hardened release publishing workflow by @glenn-jocher
✅ More reliable inference inputs
Users can now pass grayscale NumPy arrays directly to standard color YOLO models without manual channel conversion.
🔄 More consistent behavior across input types
NumPy, PIL, and file-based grayscale images are now normalized more consistently before prediction.
🚀 Better distributed training efficiency
Multi-GPU users may see reduced synchronization bottlenecks, especially in bandwidth-limited setups.
📊 Clearer and more forgiving benchmarking
Benchmark workflows are easier to use, with fewer avoidable errors from capitalization or undocumented defaults.
🏋️ Cleaner AI Gym analytics
Workout tracking outputs are easier to consume because per-person lists now match the people currently visible in the frame.
🔐 Better support for real-world deployment workflows
Signed URLs and managed Python environments are handled more reliably, reducing friction for cloud and enterprise users.
🧪 Stronger regression coverage
New tests protect the grayscale NumPy fix, signed URL handling, segment2box() border behavior, and CLI class parsing from future regressions.
classes for YOLOE/World by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/24677opencv-python 4.13.0.90 wheel by @Nailujj in https://github.com/ultralytics/ultralytics/pull/23376check_suffix for signed model URLs by @diaz3z in https://github.com/ultralytics/ultralytics/pull/24369broadcast_buffers=False by default by @ExtReMLapin in https://github.com/ultralytics/ultralytics/pull/24412format comparison case-insensitive by @zhanghuiwan in https://github.com/ultralytics/ultralytics/pull/24453eps arg and standalone benchmark() defaults by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/24560segment2box dropping segments on the left image edge by @bujna94 in https://github.com/ultralytics/ultralytics/pull/24679Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.88...v8.4.89
Ultralytics v8.4.88 focuses on more reliable training for tiny datasets, stable NCNN export, and clearer documentation for model training concepts. 🚀
Ultralytics v8.4.88 focuses on more reliable training for tiny datasets, stable NCNN export, and clearer documentation for model training concepts. 🚀
Tiny dataset dataloader fix by @glenn-jocher 🧠
drop_last, and empty dataset behavior.Improved NCNN export stability by @glenn-jocher 🛠️
20260526 for NCNN export and CI checks.ncnn wheel.Clearer training documentation for dfl by @fcakyon 📚
dfl training argument description now correctly explains Distribution Focal Loss as a bounding box localization term, not a classification feature.Knowledge distillation guide visual update by @RizwanMunawar 🖼️
Version bump 📦
8.4.87 to 8.4.88.Better experience for small experiments and quick tests ⚡
Users training on very small datasets should see fewer unnecessary background worker processes, lower overhead, and fewer cases where stuck workers keep CUDA resources busy.
More robust distributed and edge-case training behavior ✅
The dataloader update preserves existing drop_last behavior while improving worker handling after sampler construction, making training safer across normal, tiny, and distributed dataset setups.
More dependable NCNN deployment workflows 📱
Pinning PNNX improves reliability for users exporting YOLO models, including YOLO26 models, to NCNN for lightweight or edge-device inference.
Clearer learning resources for all users 🌐
Documentation updates make advanced concepts like knowledge distillation and Distribution Focal Loss easier to understand for both new users and experienced developers.
knowledge-distillation.md by @RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/25026Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.87...v8.4.88
🚀 Ultralytics v8.4.87 delivers a cleaner, safer GPU device-selection system, plus stability and performance fixes for training, inference, tracking, e
🚀 Ultralytics v8.4.87 delivers a cleaner, safer GPU device-selection system, plus stability and performance fixes for training, inference, tracking, exports, and dataset checks.
Clean-sheet CUDA device selection 🧭
parse_device() to normalize device inputs such as cuda:0, 0,1, lists/tuples, torch.device, and -1 idle-GPU auto-selection.select_device() no longer mutates CUDA_VISIBLE_DEVICES, making device selection predictable across repeated calls and long-running Python processes.torch.cuda.set_device() instead of environment-variable remapping.ultralytics.utils.torch_utils.parse_device.Stronger GPU training tests 🧪
device=1 or higher works correctly from a fresh process without relying on previous CUDA initialization.Fixed DataLoader worker cleanup at training shutdown 🧹
close() method to InfiniteDataLoader.DataLoader worker ... killed by signal: Terminated errors after results are already saved.Improved inference warmup for standard NMS ⚡
AutoBackend.warmup() now preloads torchvision for non-end-to-end models.torchvision NMS when appropriate, reducing first-inference latency after warmup.Corrected dataset file-speed reporting 💾
check_file_speeds().Tracking ReID device alignment 🎯
Export reliability improvements 📦
More reliable GPU behavior 🚀
CUDA_VISIBLE_DEVICES mid-process can cause hard-to-debug issues.Better support for nonzero GPU training 🖥️
CUDA:0 is now more robust, including cold-start CLI usage common in production and Ultralytics Platform environments.Cleaner shutdowns after training ✅
Lower latency after warmup ⚡
More accurate dataset diagnostics 📊
More consistent tracking and export workflows 🔄
killed by signal: Terminated crash) by @Bovey0809 in https://github.com/ultralytics/ultralytics/pull/25024CUDA_VISIBLE_DEVICES by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25021Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.86...v8.4.87
Ultralytics v8.4.86 fixes a CUDA device selection regression that could interrupt training when using nonzero GPU indices, restoring reliable multi-GP
Ultralytics v8.4.86 fixes a CUDA device selection regression that could interrupt training when using nonzero GPU indices, restoring reliable multi-GPU workflows. 🚀
Fixed CUDA device re-selection after remapping 🛠️
Resolved an issue where training with a command like device=3 could fail later during validation or final evaluation after CUDA_VISIBLE_DEVICES remapped that GPU to cuda:0.
Restored expected behavior for remapped GPUs 🔁
If CUDA_VISIBLE_DEVICES already matches the requested device, Ultralytics now correctly recognizes that CUDA has already applied the remap and returns the proper visible device index.
Added regression test coverage ✅
A new test covers the specific case where a nonzero physical GPU, such as GPU 3, is remapped to the single visible CUDA device cuda:0 after CUDA initialization.
Version bump 📦
Updated the package version from 8.4.85 to 8.4.86.
Prevents unexpected training crashes 💥➡️✅
Users training on a specific nonzero GPU, for example device=3, should no longer see invalid CUDA device errors during later training stages such as trainer.final_eval().
Improves production reliability 🏭
This is especially important for servers, clusters, and shared GPU environments where jobs are often assigned to GPUs using CUDA_VISIBLE_DEVICES.
Keeps recent validation improvements intact 🔒
The fix preserves the stricter device validation introduced previously while correcting the special case where CUDA remapping has already taken effect.
Better support for multi-GPU systems 🖥️
Developers and teams using machines with multiple GPUs can expect more predictable behavior when selecting specific GPU indices.
No user action required beyond upgrading ⬆️
Install the latest release with:
pip install -U ultralytics
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.85...v8.4.86
Ultralytics v8.4.85 focuses on reliability and deployment polish, with important fixes for training out-of-memory recovery, AutoBatch memory estimatio
Ultralytics v8.4.85 focuses on reliability and deployment polish, with important fixes for training out-of-memory recovery, AutoBatch memory estimation, LiteRT INT8 calibration, dataset validation, YOLO-World validation, RT-DETR/CoreML behavior, and edge-device documentation 🚀
Fixed TaskAlignedAssigner OOM recovery during training 🧠
The CPU fallback for TaskAlignedAssigner now runs after the failed CUDA traceback is released, preventing the recovery path itself from running out of GPU memory.
Improved AutoBatch memory estimation 📦
AutoBatch now better estimates detection loss memory usage, including the large temporary tensors used during assignment and classification loss calculation. This should help choose safer batch sizes for heavy training jobs.
Improved LiteRT static INT8 calibration 📱
LiteRT calibration now handles smaller or partial calibration batches by repeating samples to match the traced batch size instead of failing when the dataset does not provide a perfectly sized batch.
Stricter dataset nc validation ✅
Dataset YAML files now validate that nc is an integer or integer-like value. Invalid values such as placeholders or decimals fail early with a clearer error.
YOLO-World standalone validation fix 🌍
Added a dedicated WorldValidator so model.val() correctly loads dataset class names and regenerates text embeddings when validating YOLO-World models on custom datasets.
Rectangular training shape fix 📐
Augmentations now respect rect=True batch shapes instead of incorrectly falling back to square sizing, improving training consistency for datasets with varied aspect ratios.
RT-DETR validation and docs cleanup ⚡
RT-DETR validation transforms were simplified by removing a special stretch path, and docs now clarify that max_det cannot make pretrained RT-DETR models return more detections than their decoder query limit.
CoreML RT-DETR inference improvement 🍎
CoreML export metadata now records the model head type, allowing RT-DETR models to use ComputeUnit.ALL. This improves RT-DETR CoreML speed and helps preserve FP16 accuracy compared with Neural Engine-only execution.
CUDA device selection fix 🖥️
select_device() now preserves the requested CUDA index after CUDA has already been initialized, avoiding confusing device remapping behavior.
Tracking index bug fix 🎯
ByteTrack now preserves original detection indices for low-confidence detections matched during second association, reducing callback/index mismatches in tracking workflows.
Better user-facing prediction windows 🪟
show=True display windows now auto-scale oversized images on Linux and Windows to avoid cropped previews.
YOLOE visual prompting verbosity fix 🔇
YOLOE visual prompting now respects verbose=False, preventing unwanted setup logs when users request quiet prediction.
Dataset name convenience 🗂️
Detection-style validation now supports bare dataset names like coco8 by resolving them to coco8.yaml when available.
Training fails fast when labels are missing 🚨
Training now raises an error when no labels are found, helping users catch dataset setup issues immediately. Unlabeled validation splits can still warn instead of failing.
Updated edge deployment documentation 📚
Hailo docs now include a cleaner YOLO11-to-HEF workflow, metadata.yaml handling, and expanded inference examples for images, videos, webcams, and Raspberry Pi cameras. LiteRT, TFLite, and QNN docs were refreshed with current YOLO26n Android benchmark context.
Security warning for HTTP console log streaming 🔐
ConsoleLogger now warns when logs are sent to plaintext http:// destinations, helping users avoid transmitting sensitive console output unencrypted.
More stable training on large or dense datasets 💪
The OOM recovery and AutoBatch fixes directly target real training failures, making Ultralytics more robust for workloads with many objects, large batches, or high memory pressure.
Fewer confusing export and deployment failures 📲
LiteRT calibration is more forgiving, CoreML RT-DETR inference is more accurate and faster, and Hailo deployment docs are clearer about required files and metadata.
Better validation across model families 🧪
YOLO-World, RT-DETR, and detection-style datasets now behave more consistently, especially when users validate custom datasets or use simplified dataset names.
Clearer errors for dataset problems 🛠️
Missing labels and invalid nc values are caught earlier, reducing wasted training time and making configuration issues easier to fix.
Improved day-to-day usability ✨
Rectangular training, CUDA device selection, tracking callbacks, prediction display windows, and YOLOE quiet mode all receive practical fixes that make common workflows smoother.
Stronger mobile and edge guidance 🚀
Refreshed YOLO26n LiteRT/TFLite/QNN benchmark documentation and expanded Hailo examples help users make better deployment decisions across Android, Raspberry Pi, and Hailo hardware.
rect=True training producing square instead of rectangular tensors by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/25009RTDETR dataset transforms and remove stretch argument from v8_transforms by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/25011WorldValidator for YOLO-World by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24974.yaml extension in train and val by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24765Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.84...v8.4.85
TensorFlow.js and TF SavedModel docs updated 🔗 Deprecated TensorFlow.js export guidance now points to Google’s official LiteRT.js web runtime document…
Ultralytics v8.4.84 improves training reliability, OBB stability, RT-DETR benchmarking accuracy, and LiteRT/mobile deployment documentation, with the most important fix ensuring valid training runs still save checkpoints even after transient NaN/Inf events 🚀
More reliable checkpoint saving during training 🛡️
Fixed a production issue where training could complete successfully but fail at the end because no best.pt or last.pt checkpoint was saved. This happened when transient NaN/Inf values contaminated the EMA model state.
Cleaner imgsz validation errors 🧭
Invalid image size strings like imgsz=640x480 now raise a clear ValueError explaining the correct formats, instead of exposing a raw Python parsing error.
Improved OBB training stability for tiny rotated boxes 📦
Added safer handling in rotated bounding box loss calculations by applying a small floor inside probabilistic IoU covariance calculations. This helps prevent loss divergence when training on very small oriented objects.
Fixed RT-DETR benchmark validation after export 📈
Exported RT-DETR models are now reloaded with the correct RTDETR wrapper during benchmarking instead of YOLO, ensuring the proper validator and postprocessing are used. This fixes cases where benchmark mAP incorrectly showed 0.
Axelera YOLO11 segmentation example improvements 🎥
The examples/YOLO-Axelera-Python/yolo11-seg.py example now handles numeric camera sources correctly by mapping them to /dev/video<N> and using the OpenCV backend. Single-image sources also keep the display window open properly.
LiteRT and mobile deployment docs expanded 📱
Documentation now highlights the official Ultralytics YOLO Flutter plugin for running LiteRT .tflite exports on Android, including real-time camera inference, single-image prediction, GPU acceleration, and YOLO26 task support.
New LiteRT performance guidance ⚡
Added measured Android LiteRT performance tables for YOLO26n models across detection, segmentation, semantic segmentation, classification, pose, and OBB tasks, helping users understand real-world CPU/GPU mobile performance.
TensorFlow.js and TF SavedModel docs updated 🔗
Deprecated TensorFlow.js export guidance now points to Google’s official LiteRT.js web runtime documentation, and TF SavedModel docs consistently refer to LiteRT instead of TensorFlow Lite where appropriate.
Documentation tooling maintenance 🧰
Updated the MkDocs Ultralytics plugin requirement to >=0.2.5 and added missing GitHub author metadata.
Fewer failed training jobs ✅
Users are less likely to lose completed training runs due to checkpoint-saving failures. Even if a temporary numerical issue appears in EMA/model tensors, Ultralytics now sanitizes the saved checkpoint instead of ending with no persistent weights.
Better user experience for configuration mistakes 💬
Clearer imgsz errors make it easier for both beginners and advanced users to fix incorrect command-line or Python arguments quickly.
More stable OBB model training 🧱
Datasets with tiny rotated objects should train more reliably, reducing the chance of unstable gradients or diverging losses in oriented bounding box workflows.
Trustworthy RT-DETR benchmark results 🎯
RT-DETR users should now see meaningful benchmark metrics after export instead of misleading zero-mAP results caused by the wrong validation pipeline.
Smoother edge and mobile deployment path 📲
The LiteRT documentation improvements make it easier to choose the right deployment route for Android, browser, Apple, and Qualcomm NPU targets, especially with YOLO26 as the recommended model family.
Improved examples and docs reduce friction 🙌
Axelera users get a more practical segmentation demo, while documentation updates help deployment users avoid dead links, outdated terminology, and unclear driver-version issues.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.83...v8.4.84
Legacy tflite and tfjs names still work, but now show deprecation warnings and redirect to LiteRT.
🚀 Ultralytics v8.4.83 is led by a major export upgrade: the new Google LiteRT format now replaces the older separate TFLite and TF.js export paths, while several reliability and performance fixes make training, segmentation, and deployment more stable.
🔄 New LiteRT export replaces legacy TFLite and TF.js workflows
format="litert" export option.tflite and tfjs names still work, but now show deprecation warnings and redirect to LiteRT..tflite models can be loaded for predict and val inside Ultralytics.📱 Broader on-device deployment support
.tflite models.🌐 Browser deployment is simplified
.tflite model.🧠 Segmentation memory use and speed improved
🛡️ Training checkpoint reliability improved
⚡ Mixed-precision attention made safer
inf/nan problems during AMP or half-precision training.🧹 Multi-dataset and dataloader memory/file-handle fixes
🎯 Classification INT8 calibration improved
✅ Better dataset validation
🌍 YOLO-World distributed training fix
For mobile, edge, and web developers 📦
LiteRT is the biggest change in this release. It simplifies deployment by replacing two older export formats with one modern, unified export flow. That means less confusion, fewer export branches, and a cleaner path from training to deployment.
For teams shipping browser apps 🌐
You no longer need to think of browser support as a separate TF.js pipeline. A single LiteRT .tflite model can now cover both on-device and web use cases more cleanly.
For users exporting quantized models ⚙️
The added LiteRT quantization options offer more choices for balancing size, speed, and accuracy, especially on constrained hardware.
For training stability 🛠️
Several fixes reduce frustrating failures:
For segmentation users 🎭
Lower memory usage and faster mask processing can make segmentation inference more practical on larger inputs and reduce OOM crashes.
For dataset preparation 🧾
Earlier validation catches common mistakes sooner, which saves debugging time and prevents invalid runs.
Overall impact ✨
This release is especially valuable for anyone deploying YOLO26 to mobile, embedded, edge, or browser environments, while also improving everyday robustness for training and segmentation workloads.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.82...v8.4.83
🔧 v8.4.82 is mainly a stability and usability release focused on fixing YOLO26 Axelera export issues, improving classification RAM caching, and tighte
🔧 v8.4.82 is mainly a stability and usability release focused on fixing YOLO26 Axelera export issues, improving classification RAM caching, and tightening several training/data handling edge cases.
🚀 Major fix for YOLO26 Axelera exports
🔄 Axelera export behavior restored for end2end=False
end2end=False where supported, avoiding unnecessary breakage in existing workflows such as Ultralytics Platform jobs.🧠 Classification cache='ram' re-enabled with a memory-safe design
🛑 Training now fails fast when all labels are empty
🖼️ Image format support cleanup
.heif images..jpeg2000 extension from supported image format lists.🧹 Python reliability improvements
📚 Docs and workflow polish
stream=True behavior in predict mode.MLFLOW_KEEP_RUN_ACTIVE for MLflow users.✅ More reliable Axelera exports for YOLO26
⚙️ Safer production workflows
💾 Better memory efficiency for classification training
🧪 Earlier and clearer failure signals
📷 Smoother handling of real-world image files
🛠️ Improved long-running stability
Overall, v8.4.82 is less about new models and more about making existing YOLO26 export and training workflows more dependable 📦✨
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.81...v8.4.82
This release is mainly a stability and export-quality update for Ultralytics, led by an important FastSAM fix for multiple text prompts 🧠, plus cleare
This release is mainly a stability and export-quality update for Ultralytics, led by an important FastSAM fix for multiple text prompts 🧠, plus clearer and stricter model export precision handling, better YOLO26 coverage, and several reliability improvements across platforms and integrations 🚀
🛠️ FastSAM multiple text prompts no longer crash
ValueError in FastSAMPredictor.prompt() when users passed more than one text prompt.["a photo of a dog", "a photo of a person"] now work as documented.📦 Export precision behavior is now clearer and stricter
quantize= consistently instead of relying on older half=True / int8=True internal state.📘 Export docs got a major accuracy upgrade
🤖 YOLO26 became the main export smoke-test model in more places
🧬 Embedding behavior is more intuitive
model.embed() and model.predict() now behave better when used back-to-back.model.predict() call returns standard Results again instead of unexpectedly staying in embedding mode.⚡ Faster, safer imports for standard YOLO use
torchvision pieces.torchvision::nms in environments that don’t need SAM at all.🪟 Windows ONNXRuntime C++ example handles non-ASCII paths better
🧩 Axelera export reliability improved
numpy<=2.3.5 pin to avoid broken YOLO26 attention-graph exports.📄 Hailo documentation was clarified
model.export(format="hailo") target.✅ FastSAM is more usable for natural-language prompting
🔒 Exports are more trustworthy
🚀 YOLO26 deployment confidence improves
😊 Prediction and embedding workflows feel less surprising
🧯 Fewer environment-related failures
📚 Better guidance for non-experts and deployers
Overall, v8.4.81 is a polish-and-reliability release ✨: it fixes an important FastSAM bug, makes export precision behavior much safer, and strengthens YOLO26 deployment readiness across the stack.
ValueError in FastSAM prompt() with multiple text prompts by @ahmet-f-gumustas in https://github.com/ultralytics/ultralytics/pull/24952Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.80...v8.4.81
🚀 Ultralytics v8.4.80 is mainly about making model export precision much simpler and more future-ready, with a new unified quantize argument replacing
🚀 Ultralytics v8.4.80 is mainly about making model export precision much simpler and more future-ready, with a new unified quantize argument replacing the older half and int8 switches—plus a few important reliability, validation, and training stability fixes.
New unified quantize export argument by @onuralpszr ⭐
half=True and int8=True style with one cleaner setting.quantize=16 for FP16quantize=8 for INT8quantize=32 for FP32quantize="w8a16" where supported.half and int8 arguments still work for now, so existing scripts should not break immediately. 🔄Export docs and integrations updated across the board
quantize instead of half/int8.Better support for modern and future quantization workflows
Distributed validation now combines confusion matrices across GPUs
OBB training stability improved
HUB/network request reliability improved
MLflow integration tests restored and modernized
Tracking docs clarified
persist=True and how to choose tracker backends like botsort.yaml or bytetrack.yaml. 🎯Ultralytics Platform dataset upload docs improved
Simpler exporting for everyone 😌
quantize.More future-proof deployment workflows 🔮
half/int8 flags were too limited for newer precision schemes.Safer upgrade path ✅
half or int8 should keep working while users gradually migrate.Better results in multi-GPU setups 🖥️
More stable training for OBB models 🎯
Fewer frustrating network hangs ⏱️
Improved docs and onboarding 📚
Overall, v8.4.80 is a quality-of-life and deployment-focused release: not a flashy new model drop, but a meaningful improvement for anyone exporting YOLO models to production 🚀
int8 and half args with new quantize by @onuralpszr in https://github.com/ultralytics/ultralytics/pull/24918Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.79...v8.4.80
v8.4.79 is a performance-focused release led by a major upgrade to semantic segmentation exports 🚀, plus several quality-of-life improvements in deplo
v8.4.79 is a performance-focused release led by a major upgrade to semantic segmentation exports 🚀, plus several quality-of-life improvements in deployment, docs, and developer tooling.
Big semantic segmentation export boost ⚡
The standout update from PR #24598 by @onuralpszr makes ONNX and TFLite semantic segmentation exports much faster and lighter by baking the class selection step directly into the exported model.
Better semantic export compatibility 🧠
Runtime and postprocessing were updated so exported semantic models work correctly whether they return:
Smaller and simpler similarity search setup 🔍
PR #24931 by @glenn-jocher removes heavier optional dependencies from the solutions extra:
Tracking code cleanup with no output changes 🛠️
PR #24930 by @glenn-jocher simplifies tracker internals by removing duplicated Kalman update logic and reusing helper functions.
Clearer validation for RegionCounter 🛡️
PR #24890 adds a more understandable error when a region polygon has too few points, making debugging easier for users building region-based counting apps.
Large documentation refresh across deployment and workflow guides 📚
Many merged PRs improved guides for:
Faster semantic segmentation on edge and mobile 📱
The main export change is especially valuable for ONNX and TFLite deployments, where output size and postprocessing overhead matter a lot.
Lower memory and bandwidth costs 💾
By returning compact class IDs instead of huge dense outputs, semantic models become much more practical for embedded devices, mobile apps, and production pipelines.
Simpler deployment pipelines 🚚
Baking argmax into the exported model means less custom postprocessing code outside the model, which reduces integration complexity and potential errors.
Lighter installs for solution users 🪶
The dependency cleanup should make optional solution environments easier to install and maintain, especially in constrained or CI environments.
Improved reliability and usability ✅
Better validation messages, cleaned-up internals, and more accurate docs help both new and advanced users work faster with fewer confusing issues.
Overall, this release is most important for anyone using semantic segmentation with ONNX or TFLite—those users should see the biggest real-world gains in speed, output size, and deployment simplicity 🎉
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.78...v8.4.79
Ultralytics v8.4.78 is mainly a lightweighting and usability release 🚀—the biggest change removes SciPy from core dependencies, making installs smalle
Ultralytics v8.4.78 is mainly a lightweighting and usability release 🚀—the biggest change removes SciPy from core dependencies, making installs smaller and simpler with no expected behavior changes, while docs were also improved for region counting, predictor argument persistence, and site navigation.
Removed SciPy from core dependencies 🪶
linear_sum_assignment, used in important matching logic across:
Smaller and cleaner installation footprint 📦
Region counting documentation was reworked 🎯
Clarified model.embed() / predictor argument persistence 📝
embed can persist unexpectedly unless reset, such as with embed=None.Large documentation link cleanup across the docs site 🔗
Easier installs for everyone ⚡
Better portability and deployment 🌍
No intended model behavior changes ✅
Improved reliability for advanced workflows 🤖
Fewer documentation gotchas 📚
model.embed() and model.predict().Better docs experience across languages and previews 🌐
Overall, v8.4.78 is a quality-of-life release 💡: lighter installs, cleaner internals, and clearer documentation, with the SciPy removal being the standout improvement.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.77...v8.4.78
Ultralytics v8.4.77 is headlined by new knowledge distillation support 🎓 for YOLO training, helping smaller models learn from larger ones to boost acc
Ultralytics v8.4.77 is headlined by new knowledge distillation support 🎓 for YOLO training, helping smaller models learn from larger ones to boost accuracy without slowing down inference, alongside a useful RegionCounter crash fix and clearer solution docs 📚.
🧠 Knowledge distillation added for YOLO training
distill_model argument.dis setting controls how strongly the teacher guides training.DistillationModel wrapper to handle:
🚀 New Knowledge Distillation guide
📈 Potential accuracy gains for compact YOLO26 models
🛠️ RegionCounter crash fixed
add_region() could crash during processing because required polygon preparation data was missing.RegionCounter more reliable.📚 Documentation refresh for real-time solutions
🔎 Documentation SEO/title improvements
🎯 Better small-model performance
⚡ No extra inference cost
🧪 More robust training workflows
🧰 More stable solution usage
RegionCounter fix removes a frustrating crash path, especially for users creating regions programmatically instead of only through predefined setup.📖 Easier onboarding
🌍 Better discoverability
If you'd like, I can also turn this into a short release note version or a more technical developer-focused summary.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.76...v8.4.77
Ultralytics v8.4.76 is headlined by a powerful new multi-dataset fine-tuning workflow 🚀, making it much easier to train one YOLO model across several
Ultralytics v8.4.76 is headlined by a powerful new multi-dataset fine-tuning workflow 🚀, making it much easier to train one YOLO model across several datasets in one run, while also improving tracking defaults, segmentation/tracking stability, and docs clarity.
🆕 Multi-dataset fine-tuning via MultiTrainer
model.train().📈 Better multi-dataset benchmarking outputs
multitrain directory.🔗 Easier Ultralytics Platform dataset/model loading
ul:// format behind the scenes.🎯 Default tracker changed to tracktrack.yaml
TrackTrack is now the default multi-object tracker instead of BoT-SORT.🛠️ Segmentation + ReID compatibility fix
📦 DDP training metrics recovery improved
🔄 Revert of recent predict() path-list loading change
🧩 Solutions improvements
show_boxes to instance segmentation solutions so users can turn bounding boxes on or off.RegionCounter so counts no longer remain stale on empty frames.region argument docs to better match actual behavior.📚 Documentation updates
For researchers and advanced users 🧪
For teams managing many datasets 📂
For tracking users 🚗
TrackTrack as the default tracker may improve out-of-the-box tracking quality, but it could also slightly change results in existing workflows that depended on default behavior.tracker=botsort.yaml explicitly.For deployment users ⚙️
predict() behavior helps avoid export/runtime issues, particularly when using static-batch exported models.For solution users 👀
For the broader community 📘
In short: v8.4.76 is mainly about making multi-dataset fine-tuning much more practical and scalable 🌟, while also improving default tracking behavior, restoring inference compatibility, and polishing the overall user experience.
tracktrack as default tracker by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24897Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.75...v8.4.76
Ultralytics v8.4.75 delivers an important CoreML reliability and speed fix for macOS 🍎⚡: CoreML models now run on Apple’s Neural Engine by default ins
Ultralytics v8.4.75 delivers an important CoreML reliability and speed fix for macOS 🍎⚡: CoreML models now run on Apple’s Neural Engine by default instead of using a setting that could crash Python processes on Mac hosts.
🚑 Major CoreML backend fix for macOS
ComputeUnit.CPU_AND_NE instead of the previous default behavior.coremltools issue where ComputeUnit.ALL or GPU-enabled paths could trigger a hard crash with Error: MLIR pass manager failed.⚡ Neural Engine enabled by default on supported Macs
🛡️ Compatibility fallback for older macOS versions
CPU_AND_NE is not supported, Ultralytics now falls back to CPU_ONLY rather than failing.📝 Documentation updated
🍏 Fixes a serious usability issue for Mac users
.mlpackage from Python on macOS could crash outright.🚀 Improves inference speed
🔧 Makes CoreML deployment more dependable
👥 Broad impact for Python users on Apple Silicon
.mlpackage models.✅ No major new model architecture changes
In short: v8.4.75 is a small but high-impact release 🎉—especially for macOS users running CoreML models locally, where it turns a crash-prone path into a fast, working default.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.74...v8.4.75
Ultralytics v8.4.74 focuses on more reliable model export and quantization 🔧—especially fixing INT8 export stability on affected GPU setups and preven
Ultralytics v8.4.74 focuses on more reliable model export and quantization 🔧—especially fixing INT8 export stability on affected GPU setups and preventing flaky OpenVINO export failures on NMS-enabled models.
🚨 INT8 calibration now always runs on CPU during ModelOpt export
✅ Safer INT8 export behavior across hardware environments
🛠️ Fixed intermittent OpenVINO export failures for NMS models
nms=True.More dependable INT8 exports on RTX and mixed-library environments 💪
Better stability is prioritized over calibration speed ⚖️
OpenVINO exports become more consistent 📦
Overall release theme: reliability and smoother deployment 🚀
v8.4.74 should feel safer, more predictable, and easier to trust.Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.73...v8.4.74
Ultralytics v8.4.73 is a stability-focused release that mainly improves INT8 TensorRT export reliability on RTX GPUs 🛠️⚡, while also fixing a memory i
Ultralytics v8.4.73 is a stability-focused release that mainly improves INT8 TensorRT export reliability on RTX GPUs 🛠️⚡, while also fixing a memory issue in predict(), improving input order handling, and polishing examples and docs.
Major fix: safer INT8 calibration on RTX GPUs 🚀
int8=True, RTX cards using the NvTensorRTRTXExecutionProvider now perform calibration on the CPU instead of cuda:0.Fix for out-of-memory errors when predicting from large file-path lists 💾
model.predict() could load too much into memory and trigger GPU OOM.Prediction input order is now preserved 📂
Better error handling in the OpenCV ONNX example 🖼️
FileNotFoundError if an image path is missing or unreadable.Small documentation and comment cleanups ✍️
QueueManager doc example so copied code uses the correct region format.CI installation step made more resilient 🔁
More dependable INT8 export on RTX hardware ✅
No model accuracy change from the RTX calibration fix 🎯
Better scalability for large inference jobs 📈
predict() on long image lists, memory use should be much more manageable.More predictable automation workflows 🤖
Friendlier debugging and onboarding 🙌
Overall, v8.4.73 is less about new models and more about making export, inference, and examples more robust and predictable—with the standout improvement being INT8 TensorRT export stability on RTX cards ⚡
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.72...v8.4.73
v8.4.72 is a small but important stability release that mainly fixes a TensorRT INT8 export crash on some RTX GPUs 🚀, while also improving export envi
v8.4.72 is a small but important stability release that mainly fixes a TensorRT INT8 export crash on some RTX GPUs 🚀, while also improving export environment reliability and cleaning up docs/CI.
Fixed TensorRT INT8 export crashes on certain RTX cards 🔧
format="engine", int8=True could fail on some RTX GPUs, including cases where ONNX Runtime exposed both TensorRT execution providers.Improved TensorRT/ONNX export image compatibility for CUDA 12 🐳
onnxruntime-gpu to below 1.27.0 in the export Docker image.GitHub Actions checkout updated from v6 to v7 ⚙️
actions/checkout version.Documentation updates and cleanup 📚
More reliable INT8 TensorRT exports on RTX hardware 💡
Better support for modern RTX environments 🖥️
Safer Docker-based export workflows 🛡️
onnxruntime-gpu prevents version mismatches that could break ONNX inference and export tests inside CUDA 12 environments.No major model architecture changes 📌
Practical benefit for users ✅
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.71...v8.4.72
Ultralytics v8.4.71 is mainly a release-tag update 📦, but the most important underlying change is a major refactor of the official C++ examples that m
Ultralytics v8.4.71 is mainly a release-tag update 📦, but the most important underlying change is a major refactor of the official C++ examples that makes YOLO deployment in C++ much more unified, easier to use, and more capable across backends 🚀
Release bump to 8.4.71 🔖
8.4.70 to 8.4.71.Big C++ examples refactor landed in this release 🛠️
examples/cpp/ structure instead of being scattered across many separate folders.Much broader C++ task support 🎯
Automatic task and model behavior detection 🤖
More consistent C++ developer experience 🧰
yolo_<backend>--model and --sourceUltralytics Platform GPU docs expanded ☁️
For most users: this release is mostly about packaging and delivery** ✅
v8.4.71 helps tools and environments track the newest Ultralytics build correctly.For C++ developers: this is the real headline** 💡
For teams using multiple model types: better flexibility** 🔄
For YOLO26 adoption: stronger deployment support** 🚀
For Ultralytics Platform users: more cloud hardware choices** ⚡
In short: the tag PR itself is just a version bump, but v8.4.71 packages a meaningful C++ usability upgrade and refreshed platform GPU documentation 🎉
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.70...v8.4.71
v8.4.70 is a reliability-focused release 🛠️ led by an important fix for multi-GPU training, plus safer checkpoint loading, a plotting fix for segmenta
v8.4.70 is a reliability-focused release 🛠️ led by an important fix for multi-GPU training, plus safer checkpoint loading, a plotting fix for segmentation results, and clearer docs around YOLO26 heatmaps, training outputs, and deployment 📚
🐛 Fixed DDP AMP synchronization in multi-GPU training in PR #24810 by @LZ-QWQ
✅ Safer checkpoint loading with clearer errors in PR #24857 by @glenn-jocher
state_dict files or some older YOLOv5-style module references.AttributeError or KeyError.🎨 Fixed Results.plot() for masks-only outputs in PR #24635 by @ahmet-f-gumustas
🔥 Heatmaps guide was rewritten around real tracking use cases in PR #24815 by @raimbekovm
📁 Documented the save_dir training argument in PR #24831 by @raimbekovm
🧩 Small quality-of-life fixes in docs and config
region argument from the instance segmentation guide in PR #24833 by @raimbekovmfigsize typing to floats in Solutions config in PR #24832 by @raimbekovm🚀 More reliable distributed training
🛡️ Fewer cryptic failures
🎯 Better support for segmentation workflows
📚 Clearer guidance for real-world YOLO26 usage
⚙️ Smoother day-to-day experience
In short: v8.4.70 is mainly a stability and usability release ✅ with the standout improvement being a critical fix for consistent AMP behavior in distributed multi-GPU training.
models.yolo by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24857Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.69...v8.4.70
Ultralytics v8.4.69 is a small but important reliability update 🔒 that improves safe checkpoint loading, especially for some YOLO11 and YOLOv8 segment
Ultralytics v8.4.69 is a small but important reliability update 🔒 that improves safe checkpoint loading, especially for some YOLO11 and YOLOv8 segmentation, pose, OBB, and classification models.
🔐 Safe loading now supports certain getattr references inside checkpoints
getattr, which were previously blocked when safe loading was enabled.🤖 Fixes safe loading for several model types
🧩 Added restricted support for enum-based references
🛡️ Still keeps the load process restricted
getattr use, the change adds a limited internal handler that only permits approved cases.📦 Version bump
8.4.68 to 8.4.69.✅ Fewer loading/export errors with safe mode enabled
ULTRALYTICS_SAFE_LOAD=1 should now be able to load and export affected checkpoints more smoothly.🔒 Better security without losing usability
🚀 Improves deployment and export workflows
👥 Good quality-of-life fix for everyday users
📌 Low-risk, high-value release
If helpful, I can also provide a one-paragraph changelog version or a more technical developer-focused summary.
getattr by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/24852Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.68...v8.4.69
Security fix for similarity search UI 🛡️
Ultralytics v8.4.68 is mainly a training-quality and reliability release, led by a major improvement for semantic segmentation: you can now use class weighting to better handle imbalanced datasets 🎯🧠
Semantic segmentation now supports class weights via cls_pw 🖼️⚖️
Default semantic training behavior stays the same 🔒
cls_pw is not set, or is 0, Ultralytics keeps the previous behavior.Better weighting logic for segmentation 🧮➡️🧠
More robust handling of missing or unreadable labels/masks 🛠️
Detection classification loss can now apply class weights too 📦
Several production stability fixes 🚑
Safer model loading on older PyTorch versions 🔐
torch<2.5 instead of erroring out.Security fix for similarity search UI 🛡️
Docs and platform updates 📚
Better semantic segmentation on imbalanced datasets 🌍
Safer upgrade path ✅
cls_pw, most users can upgrade without changing existing results.More control for advanced users 🎛️
Improved robustness in production 🏭
Broader hardware confidence 💻
Better security and compatibility 🔒
Overall, v8.4.68 is a practical quality release with its biggest win being more capable and customizable semantic segmentation training, plus several important fixes that make Ultralytics more stable and dependable in real-world use 🚀
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.67...v8.4.68
v8.4.67 is a small but meaningful release focused on safer model loading 🔒, plus an important TT100K dataset label fix 🛣️ and a batch of documentation
v8.4.67 is a small but meaningful release focused on safer model loading 🔒, plus an important TT100K dataset label fix 🛣️ and a batch of documentation/link cleanups 📚.
🔒 New opt-in safe model loading via ULTRALYTICS_SAFE_LOAD (@glenn-jocher, PR #24829)
ULTRALYTICS_SAFE_LOAD=true, that enables a safer way to load model checkpoints.weights_only=True behavior and only rebuilds known Ultralytics and PyTorch model classes from an automatically generated allow-list.SafeUnpickler approach.🛣️ TT100K dataset class list corrected to the official 221-category set (@glenn-jocher, PR #24718)
TT100K.yaml dataset config had duplicated and incorrect class names.📘 Rust inference docs updated to ultralytics-inference 0.0.21 (@onuralpszr, PR #24825)
🔗 Many documentation links were refreshed and corrected (@glenn-jocher, PR #24824 and #24817)
🔐 Safer checkpoint loading for security-conscious users
♻️ Better future compatibility with PyTorch
weights_only loading by default.🚫 Less chance of silent dataset errors
🧰 Minimal disruption for most users
📚 Clearer onboarding and fewer broken docs
If you want, I can also provide a one-paragraph release note version or a developer-focused summary of v8.4.67.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.66...v8.4.67
Ultralytics v8.4.66 improves built-in NVIDIA GPU monitoring reliability 🔋, adds better semantic segmentation class filtering and metrics 🧠, and enhanc
Ultralytics v8.4.66 improves built-in NVIDIA GPU monitoring reliability 🔋, adds better semantic segmentation class filtering and metrics 🧠, and enhances CoreML semantic exports on iPhone with full-resolution outputs 📱.
Main update: NVIDIA GPU monitoring is now more reliable 🚀
nvidia-ml-py was added as a standard dependency by @glenn-jocher.Semantic segmentation got a meaningful feature upgrade 🎯
classes filter now works properly for semantic segmentation during:
single_cls=True in semantic segmentation.Semantic segmentation metrics are more accurate 📈
CoreML semantic exports now keep full-resolution maps 📱✨
Updated iPhone CoreML benchmark docs 📊
TensorRT 11 export flow was simplified ⚙️
half argument was removed from ONNX precision conversion.Documentation improvements across YOLO26 guides 📝
CI and packaging cleanup 🛠️
nvidia-ml-py is now a standard dependency, extra manual installs were removed from CI and Docker setup.More dependable GPU stats for users with NVIDIA hardware ✅
Users should see fewer issues with built-in GPU monitoring, logging, and hardware-aware utilities because the required NVIDIA package is now installed up front instead of handled on the fly.
Better usability for semantic segmentation workflows 🎨
If you work with semantic segmentation and only care about certain classes, filtering now behaves much more intuitively during prediction and evaluation.
More trustworthy segmentation metrics 📏
Reported semantic segmentation scores are now less misleading, especially on datasets where some classes are absent or filtered out.
Sharper CoreML semantic results on iPhone and Apple devices 🍎
Semantic masks should look much cleaner and less blocky, improving visual quality for mobile deployment.
Cleaner export experience for TensorRT 11 ⚡
Developers exporting models for NVIDIA deployment get a simpler and more maintainable precision conversion workflow.
Clearer docs for a broader audience 📚
New and experienced users alike should find YOLO26 testing, training, and deployment guidance easier to follow.
Overall, v8.4.66 is a practical quality-focused release: it strengthens GPU monitoring, improves semantic segmentation behavior, and brings better mobile export quality without changing the core user workflow.
classes filter to semantic segmentation task by @lmycross in https://github.com/ultralytics/ultralytics/pull/24806nvidia-ml-py to pyproject.toml by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/23922Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.65...v8.4.66
v8.4.65 is mainly a mobile inference performance release 📱⚡, with the biggest upgrade improving QNN exports for Snapdragon NPUs and speeding up semant
v8.4.65 is mainly a mobile inference performance release 📱⚡, with the biggest upgrade improving QNN exports for Snapdragon NPUs and speeding up semantic segmentation outputs by moving costly work inside the model graph.
🚀 Major QNN export performance upgrade in PR #24790 by @glenn-jocher
QNNModel instead of fragile post-export graph editing.🧠 Semantic segmentation exports are much faster on-device
ClassMapModel wrapper handles this behavior during export.📱 Better mobile runtime compatibility
📉 Measured impact highlighted in docs
🛠️ RKNN export improvements
🐳 Docker build reliability improvements
📚 Docs and export guidance improvements
ultralytics-inference version 0.0.19.✅ CI and workflow fixes
main.⚡ Faster mobile inference on Snapdragon devices
Users deploying YOLO on Qualcomm hardware should see lower overhead and better real-world efficiency, especially in camera-based apps where image buffers are already channel-last.
🧩 Less app-side postprocessing work
By returning semantic class maps directly from exported models, apps no longer need to spend as much CPU time decoding huge segmentation outputs.
📈 Better and more stable semantic segmentation performance
This is especially important for real-time mobile experiences, where unpredictable postprocessing delays can cause lag or jitter.
🔒 More robust export pipeline
Replacing manual ONNX graph surgery with clean wrapper modules makes exports easier to maintain and less error-prone over time.
📱🍎 Benefits extend beyond QNN CoreML semantic exports also gain from the same in-graph class-map idea, so Apple-device deployment gets a speed boost too.
🛠️ Improved reliability for deployment workflows Better RKNN testing, cleaner Docker builds, and more dependable docs publishing all reduce friction for developers working across edge and production environments.
👥 Broad user impact
In short: v8.4.65 is a strong deployment-focused release 🎉, with the standout improvement being faster, more hardware-friendly QNN exports and smarter semantic segmentation outputs for mobile AI.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.64...v8.4.65
Ultralytics v8.4.64 makes tracking easier and more reliable 🎯—especially with new auto-downloaded YOLO26 ReID ONNX encoders—while also improving QNN e
Ultralytics v8.4.64 makes tracking easier and more reliable 🎯—especially with new auto-downloaded YOLO26 ReID ONNX encoders—while also improving QNN export, multi-GPU training stability, logging, and export robustness 🚀
Tracking got a major usability upgrade with auto-downloaded YOLO26 ReID ONNX encoders 🤖📦
You can now use built-in tracking ReID models like yolo26n-reid.onnx through yolo26x-reid.onnx without manually downloading or exporting them first.
Tracking ReID matching is more reliable when appearance features are missing 🔍
TrackTrack now treats missing embeddings as “unknown” instead of assuming they are bad matches, so it can fall back to motion cues more intelligently.
QNN export for Qualcomm devices was significantly improved 📱⚡
QNN models now export as a single self-contained *_qnn.onnx file instead of a folder, with metadata embedded inside. The release also fixes architecture mapping, improves backend loading compatibility, and updates quantization behavior for better Snapdragon deployment.
YOLO26x distributed training stability was fixed 🧠🖥️
A DDP deadlock issue affecting some multi-GPU training runs was resolved by restoring handling for unused parameters in conditional branches.
MLflow failures no longer crash training 📉🛡️
If MLflow tracking setup or logging fails, training now continues instead of aborting the run.
TensorFlow export subprocess calls are safer 🔐
Edge TPU and TensorFlow.js export commands now avoid shell-based path handling issues, reducing problems with unusual file paths and improving security.
Progress/logging output was cleaned up 🖥️✨
Fixed premature 100% progress display and console log duplication issues, especially useful in platform or remote logging environments.
Version checking is more accurate ✅
parse_version() now consistently returns 3-part version tuples, fixing incorrect version comparisons like 6.0 vs 6.0.0.
FP16 quantization/export reliability was improved ⚙️
ONNX mixed-precision conversion now uses the correct input name and sample input shape, helping TensorRT/ModelOpt workflows work more consistently.
Docs were refreshed across several areas 📘
Updates include clearer tracking/ReID docs, QNN docs, Conda install guidance, hyperparameter tuning explanations, TrackZone behavior, custom trainer checkpoint loading, OpenVINO benchmark references, and terminal visualization guidance.
Easier multi-object tracking setup 🚀
The headline change removes a common setup headache: users can now enable tracking ReID with ready-made YOLO26 ONNX encoders directly, making advanced tracking more accessible to both beginners and production teams.
Better tracking quality in difficult scenes 🎥
The ReID fallback improvement should reduce bad associations when objects are briefly occluded or appearance features are unavailable.
Simpler Qualcomm deployment 📱
QNN export is now easier to manage and deploy thanks to the single-file output format and improved compatibility across Snapdragon targets.
More dependable training at scale 🖥️
Teams training larger YOLO26 models on multiple GPUs should see fewer hangs and more stable runs.
Fewer pipeline interruptions 🛠️
MLflow and export-related fixes help ensure optional integrations do not stop core training or deployment workflows.
Cleaner user experience ✨
Console logging and progress bar fixes make training output easier to trust and monitor, especially in shared platforms and dashboards.
Lower friction for installation and documentation 📚
Updated guides make setup, tuning, export, and custom workflows easier to understand and reproduce.
In short, v8.4.64 is a tracking-focused quality-of-life release with especially strong benefits for users working with YOLO26 tracking, Qualcomm QNN deployment, and stable training/export pipelines 🚀
parse_version to always return a 3-tuple by @bujna94 in https://github.com/ultralytics/ultralytics/pull/24680openvino==2026.2.0 by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24691Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.63...v8.4.64
FP16 and INT8 exports are still available even with TensorRT 11’s breaking changes.
🚀 Ultralytics v8.4.63 mainly adds TensorRT 11 export support with FP16 and INT8 quantization via NVIDIA ModelOpt, while also expanding built-in multi-object tracking with several new tracker options and improving reliability, performance, and docs.
🧠 Major export upgrade: TensorRT 11 support
fp32fp16int8⚡ Better quantization workflow for modern NVIDIA deployment
🎯 Big tracking expansion: 4 new built-in trackers
ocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.yaml🏃 Tracking docs and selection guidance improved
📹 Video stream loading is safer
⚡ AI Gym pose workflow is faster
🧪 Validation mixed precision handling simplified
📝 Documentation improvements
🚀 TensorRT 11 users can export again
⚙️ Future-proofs NVIDIA deployment
💾 Smaller, faster engines remain accessible
📦 Dynamic INT8 export support is especially useful
👀 Tracking becomes more flexible for real-world scenarios
🔒 More stable long-running applications
⚡ Small but meaningful performance wins
Overall, v8.4.63 is a strong deployment-focused release 📦—with the headline improvement being restored and modernized TensorRT 11 export support, plus a major boost to tracking capabilities and several reliability/performance refinements.
isolated_model and isolated_task_model into isolated_model_path by @Laughing-q in https://github.com/ultralytics/ultralytics/pull/24742Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.62...v8.4.63
🛡️ v8.4.62 is mainly a reliability release focused on preventing trained models from being lost at the end of training, with additional improvements t
🛡️ v8.4.62 is mainly a reliability release focused on preventing trained models from being lost at the end of training, with additional improvements to Platform docs, dataset/API documentation, test stability, and CI efficiency.
🚨 Major training fix: checkpoints are no longer discarded just because EMA hits NaN/Inf during save checks
✅ Validation is now safer during AMP training
🧪 New test coverage for fp16 overflow checkpoint handling
📘 Big Ultralytics Platform docs refresh
🔗 Fixed broken COCO evaluation links
🧪 Less flaky data-related tests
⚡ Lean CI improvements
💾 Prevents losing trained models
🔒 Improves training stability and trustworthiness
🚀 Better experience for common training setups
📚 More accurate docs for the Ultralytics Platform
🧰 Improved developer and CI reliability
🌍 Cleaner external documentation links
Overall, v8.4.62 is not a major model-feature release, but it is a high-value stability update 🛠️—especially for anyone training YOLO models with mixed precision and expecting reliable checkpoint saves.
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.61...v8.4.62
v8.4.61 is mainly a stability and export reliability release 🛠️, led by an important fix for INT8 ONNX export failures and another fix for read-only `
v8.4.61 is mainly a stability and export reliability release 🛠️, led by an important fix for INT8 ONNX export failures and another fix for read-only onnx2tf patching, with additional improvements to CI, export testing, docs accuracy, and platform documentation.
🚨 Fixed INT8 ONNX export crashes on small calibration datasets in PR #24721 by @glenn-jocher
🔒 Fixed read-only onnx2tf patching issues in PR #24721 by @glenn-jocher
🧪 Stronger export validation in CI
yolo26n.pt, helping catch export problems earlier.🤖 TensorRT compatibility improvement
end2end export when using older TensorRT versions that do not support it.🎯 SAM duplicate-mask cleanup fix
🧠 Semantic segmentation support made clearer across the product
task=semantic as a valid option.📚 Large documentation and accuracy refresh
✅ More reliable model export workflows
🚀 Fewer production export failures
onnx2tf and ONNX calibration fixes target bugs already seen in real-world error tracking, so this release should reduce export breakages in actual deployments.🧪 Better confidence in deployment formats
📦 Improved compatibility on specialized hardware
🧹 Cleaner and more accurate user experience
🌍 Better guidance for a broad user base
In short, v8.4.61 is less about new models and more about making YOLO26 deployment safer, smoother, and more production-ready 🔧📈
tip case in docs by @lakshanthad in https://github.com/ultralytics/ultralytics/pull/24669Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.60...v8.4.61
Ultralytics v8.4.60 is mainly about adding ONNX INT8 export 🎉, making it easier to create smaller, faster deployment models with built-in calibration
Ultralytics v8.4.60 is mainly about adding ONNX INT8 export 🎉, making it easier to create smaller, faster deployment models with built-in calibration support, while also including a few helpful export, training, and documentation fixes.
🚀 Major new feature: ONNX int8=True export
data for calibration dataset selection and fraction for using only part of the dataset.*_int8.onnx.🔄 Shared INT8 calibration pipeline
📘 Much better ONNX export documentation
⚙️ RKNN export now supports the standard half argument
half=True, and this becomes the default floating-point path for supported Rockchip hardware.🐛 Segmentation training fix for polygons on image borders
segment2box ensures polygon points lying exactly on image edges are no longer dropped.📝 Auto-annotate docs updated
output_dir for auto-annotation was corrected.🧹 Docs metadata cleanup
🎯 Faster and lighter ONNX deployment
🛠️ Simpler export workflow
🔒 More reliable maintenance and consistency
📈 Better user experience for deployment
🤖 Improved hardware export support
half=True update helps Rockchip deployments behave more predictably and aligns them better with common export expectations.🖼️ More accurate segmentation training
Overall, v8.4.60 is a deployment-focused release 🌍, with ONNX INT8 export as the standout improvement and several supporting fixes that improve reliability, documentation, and hardware export consistency.
ultralytics 8.4.60 ONNX INT8 export by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/24666Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.59...v8.4.60
Your coding agent can read these notes before it upgrades. Set up the MCP server →