New Release: Ultralytics v8.4.31

Ultralytics v8.4.31 is out :tada:

A new Ultralytics YOLO release, v8.4.31, is now available with a strong focus on reliability, export correctness, and smoother deployment workflows. The headline fix is INT8 export calibration for non-square image sizes, alongside training stability improvements, cleaner exporter internals, and better docs for dataset conversion, deployment, and YOLO26 training :rocket:

If you work with rectangular inputs, edge deployment, Apple Silicon, or multi-scale training, this is a great update to pick up.

:glowing_star: Quick Summary

  • :white_check_mark: Fixed INT8 calibration for non-square imgsz like 640,480
  • :rocket: Improved export reliability across OpenVINO, TFLite, TensorRT engine, and IMX
  • :red_apple: Better memory handling on Apple Silicon / MPS
  • :package: Smarter auto-batch estimation when multi_scale=True
  • :puzzle_piece: Major internal export refactor for maintainability
  • :books: New guides for COCO-to-YOLO conversion and YOLO26 training
  • :movie_camera: Clearer Ultralytics Platform docs for video inference on dedicated endpoints

You can explore the release in the v8.4.31 release page or review everything in the full changelog.

:fire: Main Update

INT8 calibration now works correctly with non-square imgsz

The biggest change in v8.4.31 comes from PR #24028 by @Y-T-G :bullseye:

This fixes INT8 export calibration for rectangular image sizes such as imgsz=640,480, which previously could lead to calibration mismatches or export issues. The update ensures calibration uses the correct effective size and preserves rectangular preprocessing behavior correctly.

This benefits multiple export targets, including:

  • OpenVINO
  • TFLite
  • TensorRT engine
  • IMX

For users deploying YOLO models to edge and production environments, this should bring a noticeable boost in confidence and consistency :white_check_mark:

:new_button: Improvements

Export system refactor for easier future maintenance

A large internal cleanup landed in PR #23914 by @onuralpszr :puzzle_piece:

The exporter logic was split from one large implementation into per-format utility modules such as torchscript, openvino, coreml, ncnn, mnn, paddle, rknn, and axelera.

There are no major user-facing CLI changes here, but this is an important architectural improvement that should make future exporter fixes and features faster, safer, and easier to maintain.

Apple Silicon training and validation stability

Training and validation on MPS devices got a stability boost in PR #24038 by @Y-T-G :red_apple:

This update clears MPS memory more aggressively to help reduce leak-related out-of-memory issues on Apple Silicon systems.

Better auto-batch with multi-scale training

Auto-batch estimation now accounts for the larger effective image sizes introduced by multi_scale, thanks to PR #24051 by @glenn-jocher :package:

This should make automatic batch sizing more realistic and more stable for multi-scale training workflows.

:books: Documentation and Usability Updates

New COCO-to-YOLO conversion guide

A new dataset conversion guide arrived in PR #23930 by @raimbekovm :blue_book:

If youโ€™re preparing custom datasets, this should make COCO-to-YOLO conversion much easier to follow.

New YOLO26 training recipe guide

A new guide for training YOLO26 was added in PR #23949 by @raimbekovm :rocket:

For new projects, YOLO26 remains the recommended Ultralytics model family, offering smaller, faster, and more accurate models than YOLO11 across detect, segment, classify, pose, and OBB tasks.

Clearer video inference docs for Ultralytics Platform

Video inference support on dedicated endpoints is now documented more clearly in PR #24029 by @t-hakobyan :movie_camera:

If youโ€™re building deployment workflows, the Ultralytics Platform continues to be the simplest way to annotate datasets, train, deploy, and monitor YOLO models.

:hammer_and_wrench: Bug Fixes and Infra Updates

Dataset conversion validation tightened

PR #24031 by @glenn-jocher improves NDJSON-to-YAML validation by expecting a val split for non-classification conversions instead of allowing test as a substitute.

EdgeTPU install improvement

PR #24032 by @Laughing-q adds the --no-tty flag for edgetpu_compiler installation, which helps in non-interactive environments.

CI and environment robustness

A few infrastructure upgrades also landed:

Platform embed card polish

PR #24048 by @Y-T-G syncs the Platform embed card theme for a more consistent experience.

:light_bulb: Why this release matters

v8.4.31 is primarily about making YOLO workflows more dependable:

  • Exporting INT8 models with rectangular inputs is now much more robust
  • Edge deployment workflows should behave more consistently across key runtimes
  • Apple Silicon users should see fewer MPS memory-related interruptions
  • Multi-scale training gets more accurate auto-batch sizing
  • Docs and guides continue to improve onboarding for both new and advanced users

:play_button: Try it out

Update with:

pip install -U ultralytics

And if you want to test the main export fix, a command like this is now handled correctly for INT8 rectangular calibration:

yolo export model=yolo26n.pt format=openvino int8=True imgsz=640,480

:raising_hands: Feedback welcome

Please give v8.4.31 a try and let us know how it works for your training, export, and deployment workflows. Feedback, regression reports, and edge-case testing are especially helpful as we continue improving YOLO and the Ultralytics Platform.

Thanks to all contributors who made this release possible :blue_heart: