Ultralytics v8.4.140 Released
Ultralytics v8.4.140 improves training reliability, preserves model state across key workflows, and fixes grayscale TIFF channel handling for YOLO26 segmentation. This release also strengthens DDP training, weight loading, tuning, export safety, and small-dataset sampling.
Explore the v8.4.140 release for the complete release details.
New Features and Reliability Improvements
Grayscale TIFF Training Fix
Single-frame grayscale TIFF images now respect the requested color format, preventing three-channel models from receiving one-channel batches and failing at the first convolution.
Existing support remains intact for:
- Color TIFF images
- Multipage TIFF files
- Four-channel images
- Multispectral stacking
Regression coverage now includes training, validation, prediction, and export with grayscale TIFF data.
- PR #26061 by GitHub author
@glenn-jocher
Model-State Preservation
Prediction and standalone validation now use independent model copies. Operations such as fusion, FP16 conversion, and end-to-end configuration changes no longer permanently modify the callerβs model.
Automatic DDP callbacks are also preserved correctly.
- PR #26062 by GitHub author
@glenn-jocher
More Reliable Distributed Training
DDP workers now receive the model, arguments, and callbacks prepared by the parent trainer. This preserves:
- In-memory weight changes
- Custom class names
- Application callbacks
- Prepared model state
The release also adds cloudpickle to support this state transfer.
- PR #26050 by GitHub author
@raimbekovm
Improvements
Better Weight Loading and Provenance
Loading weights from modules, checkpoint dictionaries, or files now preserves the correct training source and prefers EMA weights when available. Predictor caches are refreshed after model changes to reduce stale inference behavior.
- PR #26039 by GitHub author
@raimbekovm
Safer Fusion Detection and Calibration
Fused pretrained weights now produce a warning when loaded into an unfused model. Fusion detection is more accurate across convolutional, reparameterized, and end-to-end YOLO26 components.
Depth calibration also preserves a trainable and saveable unfused model state.
- PR #26045 by GitHub author
@raimbekovm
Safer Model Exports
Export now operates on an isolated model copy before changing class names or head settings. This keeps the original model unchanged and avoids unnecessarily copying the large cached CLIP encoder used by YOLOWorld.
- PR #26052 by GitHub author
@raimbekovm
Tuning Uses the Loaded Model
Model.tune() now starts each tuning iteration from the model loaded by the caller. In-memory weight changes and custom weights are preserved instead of rebuilding from the original model path.
- PR #26053 by GitHub author
@raimbekovm
Robust Fractional Dataset Sampling
Positive sampling fractions now retain at least one image, preventing very small fractions from rounding down to an empty dataset. Explicit zero-sized splits remain supported.
- PR #26049 by GitHub author
@ahmet-f-gumustas
Faster Single-Image Preprocessing
Single-frame NumPy inputs now bypass an unnecessary stacking operation, providing a modest preprocessing speed improvement without changing batched-input behavior.
- PR #25989 by GitHub author
@jahsef
Bug Fixes
- Fixed grayscale TIFF and model channel mismatches during training.
- Prevented prediction, validation, calibration, export, and precision changes from unexpectedly altering the original model.
- Preserved custom callbacks and prepared model state during multi-GPU training.
- Prevented fractional dataset sampling from unintentionally selecting zero images.
- Refreshed predictor caches after model changes to avoid stale inference behavior.
Who Benefits Most?
This release is especially valuable for users working with:
- YOLO26 training and deployment
- Grayscale TIFF or multispectral datasets
- Multi-GPU DDP training
- In-memory or custom model weights
- Hyperparameter tuning
- Calibration and model fusion
- Export workflows
- Small dataset fractions
- Single-image NumPy inference
Try v8.4.140
Upgrade to the latest release with:
pip install -U ultralytics
You can review every change in the v8.4.139 to v8.4.140 comparison before updating.
Please try the release and share your feedback, benchmarks, or reproducible issues with the Ultralytics YOLO community. ![]()