Ultralytics v8.4.157: Faster TensorRT, Expanded YOLOE-26 Support, and Better Apple Silicon Performance
Ultralytics v8.4.157 delivers up to 20% faster TensorRT FP16 and INT8 inference, expanded prompt-free YOLOE-26 support, major Apple Silicon optimizations, and more reliable training, validation, export, and dataset workflows. ![]()
Explore the Ultralytics v8.4.157 release for the complete release details.
New Features
TensorRT inference up to 20% faster
In PR #26223, @Y-T-G introduced several TensorRT optimizations:
- FP16 conversion is calibrated with a real image instead of random noise.
- SiLU activations are rewritten into a TensorRT-fusable form.
- CUDA Graph replay reduces launch overhead for supported static engines.
- FP16 and INT8 inference can be up to 20% faster, particularly with static-shape engines.
CUDA Graph acceleration is excluded for dynamic engines, DLA execution, and engines with embedded NMS.
Expanded prompt-free YOLOE-26 inference
In PR #26201, @ShuaiLYU added support for checkpoints containing both one-to-many and one-to-one LRPC detection heads.
This update enables:
- Selection between standard NMS and NMS-free inference through the
nmssetting. - Regeneration of both branches with
set_vocab(). - More flexible custom prompt-free YOLOE-26 workflows.
Performance Improvements
Apple Silicon users receive several CPU and MPS optimizations:
- PR #26221 by @raimbekovm disables a slow NNPACK convolution path during CPU inference and training.
- PR #26228 by @raimbekovm replaces costly box-IoU reductions for faster MPS validation.
- PR #26234 by @raimbekovm accelerates
TaskAlignedAssigneron CPU and MPS. - PR #26239 by @Y-T-G replaces problematic semantic segmentation operations with MPS-friendly alternatives, addressing slowdowns and buffer-size failures.
- PR #26233 by @raimbekovm avoids repeated box and keypoint conversions in
Results.save_txt(), plotting, and summaries.
Together, these changes improve larger-batch training, validation, segmentation, result export, and visualization performance.
Training and Validation Reliability
- PR #26224 by @fcakyon prevents early AutoBatch probe failures from being incorrectly treated as memory limits.
- PR #26226 by @cainiao33 ensures mosaic augmentation closes correctly during short training runs.
- PR #26225 by @cainiao33 preserves the real checkpoint or configuration error when resume checks fail.
- PR #26236 by @wizzseen rejects invalid negative
patiencevalues during configuration validation. - PR #26243 by @cainiao33 floors
imgszat the model stride during image-size validation.
These updates provide earlier validation and clearer failures for invalid or unsupported configurations.
Export, Dataset, and Evaluation Fixes
- PR #26241 by @cainiao33 keeps the exported image size for fixed-shape models across repeated
predict()calls. - PR #26244 by @cainiao33 makes TAR extraction return the datasetβs actual top-level directory, matching ZIP behavior.
- PR #26227 by @cainiao33 refreshes stale semantic mask caches when
ncchanges to1, preserving foreground pixels. - PR #26240 by @Nicholas022400701 prevents standalone detection validation from crashing on labels with classes unsupported by the model.
- PR #26246 by @Nicholas022400701 keeps COCO size-specific metrics correctly associated with detection, segmentation, and pose tasks.
Dependency Improvements
In PR #26219, @hylreg corrected Python-version markers and export-extra conflicts, improving uv lock and uv sync dependency resolution.
New Contributors
A warm welcome to two first-time contributors:
- @wizzseen, contributing configuration validation through PR #26236.
- @hylreg, improving dependency resolution through PR #26219.
Thank you to every contributor and the wider YOLO community for helping make this release possible! ![]()
Try v8.4.157
Upgrade to the latest release:
pip install -U ultralytics
TensorRT, YOLOE-26, and Apple Silicon users are especially encouraged to test this release and share feedback. You can review every change in the v8.4.156 to v8.4.157 full changelog.