New Release: Ultralytics v8.4.129

:rocket: Ultralytics v8.4.129 Is Here!

Ultralytics v8.4.129 delivers more dependable multi-dataset tuning, BF16 mixed-precision training, faster YOLO26 LiteRT exports, parallel image preprocessing, stronger validation, and improved Ultralytics Platform progress reporting.

This release focuses on performance, precision, and reliability without introducing a new model architecture. :glowing_star:

:sparkles: New Features

Multi-dataset tuning with MultiTrainer

PR #25937 by @glenn-jocher moves multi-dataset orchestration into MultiTrainer:

  • Runs each dataset job in an isolated YOLO CLI subprocess.
  • Records per-dataset and macro-mean metrics.
  • Preserves YOLOWorld and YOLOE checkpoint handling.
  • Improves distributed MongoDB tuning through safer default initialization and result-path-based winner selection.
  • Simplifies cleanup and output tracking.

BF16 mixed-precision training

PR #25931 by @artest08 expands amp support to:

  • True
  • False
  • "fp16"
  • "bf16"
  • "fp32"

On supported CUDA hardware, BF16 can reduce memory use compared with FP32 while providing greater numerical range than FP16. Gradient scaling is automatically disabled for BF16.

:high_voltage: Performance and Export Improvements

  • PR #25914 by @Y-T-G improves YOLO26 end-to-end LiteRT exports so GPU delegates can execute more of the NMS-free detection head with less CPU fallback.
  • PR #25924 by @Y-T-G moves export-format-specific branches out of the main detection head for cleaner shared behavior.
  • PR #25935 by @JESUSROYETH parallelizes batched image decoding while preserving input order.
  • PR #25938 by @JESUSROYETH parallelizes FastSAM CLIP crop preprocessing for sufficiently large CUDA workloads.
  • PR #23924 by @Laughing-q uses the shared ONNXBackend for more consistent ONNX CPU benchmarks, including configurable session options and multi-input model support.
  • PR #22730 by @Laughing-q adds task-specific validation to the TensorRT export test matrix.

Small batches, unsupported image formats, CPU workloads, and MPS workloads continue using safer serial preprocessing paths.

:hammer_and_wrench: Reliability and Compatibility Fixes

  • PR #21070 by @Laughing-q adds imread_unicode for Windows image paths containing non-ASCII characters while preserving native OpenCV grayscale behavior.
  • PR #25929 by @raimbekovm ensures exported-head metadata is read only when the supplied model is a path.
  • PR #25905 by @Y-T-G reports progress-bar redraws as live state instead of ordinary log lines, producing cleaner integrations with the Ultralytics Platform and other log consumers.
  • PR #25930 by @glenn-jocher skips disk cleanup during JetPack Docker builds so native Jetson builds retain sufficient runner swap space.

:books: Documentation Updates

  • PR #25927 by @raimbekovm corrects training guidance and improves cross-linking for training and fine-tuning workflows.
  • PR #25934 by @raimbekovm verifies code-guide examples against the package and corrects inaccurate claims.

The updated guidance covers YOLO26’s DFL-free l1_loss, pretrained weights, AutoBatch, AMP and BF16 behavior, freezing, fine-tuning, K-Fold workflows, model YAML construction, tuning outputs, class-name-based head remapping, and supported distillation tasks.

:package: Upgrade and Try It

Upgrade to the latest release with:

pip install -U ultralytics

Explore the complete details on the Ultralytics v8.4.129 release page, or review every commit in the v8.4.128 to v8.4.129 full changelog.

Give v8.4.129 a try and share your feedback, benchmarks, and any issues you encounter. Thanks to every contributor and the wider YOLO community for helping make Ultralytics YOLO faster and more reliable! :raising_hands: