# New Release: Ultralytics v8.4.140

**URL:** <https://community.ultralytics.com/t/new-release-ultralytics-v8-4-140/2206>\
**Category:** Discussion\
**Tags:** releases, announcements, ultralytics-official\
**Created:** [September 5, 2026, 1:08pm UTC](https://community.ultralytics.com/t/new-release-ultralytics-v8-4-140/2206 "2026-09-05T13:08:13Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![glenn-jocher](https://sea1.discourse-cdn.com/flex001/user_avatar/community.ultralytics.com/glenn-jocher/32/83_2.png) [@glenn-jocher](https://community.ultralytics.com/u/glenn-jocher)\
**Post date:** [September 5, 2026, 1:08pm UTC](https://community.ultralytics.com/t/new-release-ultralytics-v8-4-140/2206/1 "2026-09-05T13:08:14Z")

</div>

# 🚀 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](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.140) 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](https://github.com/ultralytics/ultralytics/pull/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](https://github.com/ultralytics/ultralytics/pull/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](https://github.com/ultralytics/ultralytics/pull/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](https://github.com/ultralytics/ultralytics/pull/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](https://github.com/ultralytics/ultralytics/pull/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](https://github.com/ultralytics/ultralytics/pull/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](https://github.com/ultralytics/ultralytics/pull/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](https://github.com/ultralytics/ultralytics/pull/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](https://github.com/ultralytics/ultralytics/pull/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:

```bash
pip install -U ultralytics

```

You can review every change in the [v8.4.139 to v8.4.140 comparison](https://github.com/ultralytics/ultralytics/compare/v8.4.139...v8.4.140) before updating.

Please try the release and share your feedback, benchmarks, or reproducible issues with the Ultralytics YOLO community. 🙌
