Ultralytics v8.4.31 is out 
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 ![]()
If you work with rectangular inputs, edge deployment, Apple Silicon, or multi-scale training, this is a great update to pick up.
Quick Summary
Fixed INT8 calibration for non-square imgszlike640,480
Improved export reliability across OpenVINO, TFLite, TensorRT engine, and IMX
Better memory handling on Apple Silicon / MPS
Smarter auto-batch estimation when multi_scale=True
Major internal export refactor for maintainability
New guides for COCO-to-YOLO conversion and YOLO26 training
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.
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 ![]()
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 ![]()
Improvements
Export system refactor for easier future maintenance
A large internal cleanup landed in PR #23914 by @onuralpszr ![]()
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 ![]()
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 ![]()
This should make automatic batch sizing more realistic and more stable for multi-scale training workflows.
Documentation and Usability Updates
New COCO-to-YOLO conversion guide
A new dataset conversion guide arrived in PR #23930 by @raimbekovm ![]()
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 ![]()
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 ![]()
If youโre building deployment workflows, the Ultralytics Platform continues to be the simplest way to annotate datasets, train, deploy, and monitor YOLO models.
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:
- PR #24034 by @dependabot[bot] bumps Codecov Action from 5 to 6
- PR #24035 by @lakshanthad adds PyTorch 2.11.0 slow-test coverage
- PR #24049 by @glenn-jocher migrates CI to
ubuntu-latest
Platform embed card polish
PR #24048 by @Y-T-G syncs the Platform embed card theme for a more consistent experience.
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
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
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 ![]()