New Release: Ultralytics v8.4.9

:rocket: Ultralytics v8.4.9 is out!

Quick overview: Ultralytics v8.4.9 improves segmentation CopyPaste augmentation reliability (especially for grayscale / hyperspectral-style single‑channel inputs) and strengthens the broader training/export ecosystem with better ExecuTorch + Torch support :puzzle_piece::gear:

If you’re building with Ultralytics YOLO or deploying via the Ultralytics Platform, this release focuses on smoother training runs, fewer augmentation edge-cases, and less deployment friction.


:glowing_star: New Features & Highlights

:test_tube: Segmentation CopyPaste augmentation reliability (priority)

A key fix in ultralytics/data/augment.py makes CopyPaste masks more robust by:

  • Building the contour mask as a 2D (HĂ—W) array (instead of matching the full image tensor shape)
  • Drawing contours onto a single-channel mask using value 1 (instead of (1, 1, 1)), avoiding channel mismatches

This helps prevent mask shape/channel bugs that can break—or silently degrade—CopyPaste-based segmentation training, especially on single-channel imagery :camera::white_check_mark:


:package: Improvements

:broom: ul://... NDJSON datasets now always refresh

When using Ultralytics-hosted datasets via ul://..., .ndjson metadata now always re-downloads instead of potentially reusing a stale cached file—reducing “why didn’t my dataset update?” confusion :counterclockwise_arrows_button::down_arrow:

:gear: ExecuTorch support improvements (Torch 2.10+ friendliness)

  • Removes the <2.10 PyTorch upper bound (Windows still excludes torch==2.4.0) :unlocked:
  • Centralizes install checks via check_executorch_requirements() to reduce platform-specific failures :puzzle_piece:

:high_voltage: Training + compile coverage

  • CUDA tests now train with compile=True, improving regression coverage
  • Stride calculation is simplified for more predictable behavior :brain::fire:

:books: Docs refresh

Export docs video updated to a more relevant YOLO26 export/deployment tutorial :movie_camera:
(For new projects, YOLO26 is the recommended model generation—smaller, faster, more accurate than YOLO11, and end-to-end across all tasks.)


:bug: Bug Fixes

  • :puzzle_piece: CopyPaste mask handling fixes for single-channel / hyperspectral-style workflows
  • :high_voltage: Better safeguards around compile=True training paths to catch issues earlier

:1234: What’s Changed (PRs)

Thanks to the community (and Ultralytics team) for the contributions! :raising_hands:

You can review the release details in the v8.4.9 GitHub release notes and browse the full changelog from v8.4.8 → v8.4.9.


:white_check_mark: Try it now

Update with:

pip install -U ultralytics

Then run a quick sanity check:

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.predict("https://ultralytics.com/images/bus.jpg")

:speech_balloon: Feedback welcome

If you hit any edge cases (especially around segmentation CopyPaste, single-channel inputs, or ExecuTorch exports), please share details—minimal repros help a lot. Your feedback keeps the release quality high for everyone in the YOLO community :brain::rocket: