New Release: Ultralytics v8.4.60

Ultralytics v8.4.60 is here :rocket:

We’re excited to announce Ultralytics v8.4.60, a deployment-focused release led by one big upgrade: ONNX INT8 export for Ultralytics YOLO models :tada:

In short, this release makes it easier to build smaller, faster deployment artifacts, while also improving export consistency, segmentation training reliability, and documentation quality.

:glowing_star: Highlights

ONNX int8=True export is now supported

The headline feature in v8.4.60 is native ONNX INT8 export, making it easier to deploy optimized YOLO models with ONNX Runtime static quantization.

This follows the same familiar INT8 export flow many users already know, including support for:

  • data for calibration dataset selection
  • fraction to calibrate using only part of the dataset
  • clear output naming with *_int8.onnx

That means faster adoption, less guesswork, and a smoother path to efficient deployment on supported runtimes and hardware.

:high_voltage: Why this matters

With ONNX INT8 export, you can now more easily:

  • reduce deployment model size
  • improve inference efficiency
  • streamline edge and production deployment workflows
  • reuse a familiar export interface across formats

This is especially useful for teams deploying Ultralytics YOLO26, our latest and recommended model family for new projects, as well as existing YOLO11 pipelines.

:new_button: New Features

Shared INT8 calibration pipeline

The new ONNX INT8 export reuses the existing calibration dataloader logic instead of introducing a separate workflow.

This shared path is now used across ONNX and QNN export, which helps by:

  • reducing duplicate code
  • improving consistency between exporters
  • making long-term maintenance more reliable

RKNN export now supports half=True

RKNN export now supports the standard half argument, bringing its behavior more in line with other export backends.

For supported Rockchip hardware, this also becomes the default floating-point path, which should make RKNN export behavior more predictable and intuitive.

:hammer_and_wrench: Improvements

Better ONNX export documentation

We expanded documentation around ONNX INT8 support across export docs, integration pages, examples, macros, reference pages, and the tutorial notebook.

This should make the new functionality much easier to discover and use correctly.

Auto-annotate documentation updates

The auto-annotate docs were also updated to:

  • correctly include SAM 3 in the supported SAM model list
  • fix the documented default output_dir

If you’re using the Ultralytics Platform to annotate datasets, train, and deploy YOLO models, these doc improvements should help keep workflows clearer and more consistent.

:lady_beetle: Bug Fixes

Segmentation training fix for border polygons

A fix to segment2box resolves an issue where polygon vertices lying exactly on image borders could be dropped.

This helps prevent:

  • incorrect bounding boxes
  • degraded training targets
  • segmentation issues for objects touching image edges

Docs metadata cleanup

Placeholder documentation metadata was replaced with meaningful defaults, improving generated docs quality and overall polish.

:link: What changed

You can also browse the full changelog for v8.4.60 or read the release page on GitHub.

:light_bulb: Quick example

If you want to try the new ONNX INT8 export, the workflow is now as simple as:

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="onnx", int8=True, data="coco8.yaml", fraction=0.25)

This will generate an INT8 ONNX export using calibration data from your selected dataset subset.

:raising_hands: Try it out

We’d love for you to test Ultralytics v8.4.60, especially if you’re exporting ONNX models for edge or production deployment.

Give it a try, let us know how it performs in your environment, and share any feedback, benchmarks, or issues with the community. Your input helps us keep improving YOLO for everyone.