New Release: Ultralytics v8.4.83

:rocket: Ultralytics v8.4.83 is here

Quick summary: Ultralytics v8.4.83 introduces a major deployment upgrade with the new LiteRT export format, which now unifies the previous TFLite and TF.js workflows into a single path for mobile, edge, embedded, and browser deployments. This release also improves segmentation memory usage and speed, strengthens training checkpoint reliability, and adds several stability fixes across training and export.

If you’re building with Ultralytics YOLO, especially YOLO26 for mobile, embedded, edge, or web deployment, this is a great release to try. You can explore the full release on GitHub here.


:glowing_star: Highlights

:counterclockwise_arrows_button: New LiteRT export replaces legacy TFLite and TF.js workflows

The biggest change in v8.4.83 is the new format="litert" export path, added in PR #22870 by @ambitious-octopus and contributed by @ambitious-octopus.

With this update:

  • litert becomes the new unified export format for .tflite deployment
  • Legacy tflite and tfjs names still work, but now emit deprecation warnings and redirect to LiteRT
  • Exported .tflite models can now be loaded directly inside Ultralytics for predict and val
  • Browser deployment is simplified through LiteRT.js using the same .tflite model

This creates a much cleaner deployment story for teams shipping models across devices and platforms. :mobile_phone::globe_with_meridians:

:package: Broader on-device deployment support

The new LiteRT export path supports multiple quantization modes, making deployment more flexible on constrained hardware:

  • standard INT8
  • mixed INT8 with 16-bit activations
  • dynamic INT8 without calibration data

This is especially useful for production deployments of YOLO26 on mobile and edge devices.

:performing_arts: Faster, lower-memory segmentation post-processing

Segmentation mask post-processing was optimized in PR #24988 by @glenn-jocher, from @glenn-jocher, reducing peak memory usage and improving speed.

Benefits include:

  • fewer out-of-memory issues on large images
  • better performance in scenes with many objects
  • smoother segmentation inference overall

:shield: More reliable training checkpoints

A long-standing issue where bad EMA state could block checkpoint saving was fixed in PR #24986 by @glenn-jocher, from @glenn-jocher.

This means training runs are less likely to fail right at the end because of temporary numerical issues.


:gear: Improvements

:brain: Safer mixed-precision attention

Attention computation was reordered in PR #24990 by @fcakyon, contributed by @fcakyon, to reduce FP16 overflow risk during AMP and half-precision training.

This helps prevent inf and nan issues in mixed-precision runs.

:broom: Better memory and worker cleanup

Two useful training stability fixes landed in this release:

Together, these changes help reduce memory buildup and avoid "too many open files" errors in long-running jobs.

:bullseye: Improved INT8 calibration for classification exports

Classification export calibration now uses a classification-specific dataset pipeline in PR #24972 by @onuralpszr, contributed by @onuralpszr.

This should produce more correct and robust quantized classification exports.

:globe_showing_europe_africa: YOLO-World DDP consistency fix

Distributed training consistency for YOLO-World was improved in PR #24980 by @Y-T-G, from @Y-T-G, by applying evaluation classes on all DDP ranks.


:white_check_mark: Bug Fixes and Validation Improvements

:receipt: Better segment dataset validation

Segment tasks now fail early when box-only labels are provided by mistake, thanks to PR #24992 by @glenn-jocher from @glenn-jocher.

This should save time by catching invalid dataset formatting earlier.

:hammer_and_wrench: Safer deconv + batch norm fusion

PR #24991 by @fcakyon, contributed by @fcakyon, adds a guard for fuse_deconv_and_bn when bn is not a BatchNorm module.


:books: Documentation and Project Updates

This release also includes a few helpful docs and project improvements:


:raising_hands: New Contributor

A big welcome to @oaslananka for their first contribution in PR #24982! :tada:


:test_tube: Try it out

If you’d like to test the new release locally, you can upgrade with:

pip install -U ultralytics

And for the new LiteRT export flow:

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="litert")

You can also explore training and deployment workflows in the Ultralytics Platform documentation or use the Ultralytics Platform to annotate datasets, train, and deploy models more easily.


:speech_balloon: Feedback

We’d love for you to try v8.4.83 and share your results, especially if you’re working on:

  • mobile or embedded deployment
  • browser inference
  • segmentation workloads
  • long-running or multi-dataset training jobs

For the complete set of changes, see the full changelog from v8.4.82 to v8.4.83.

Thanks to everyone in the community who contributed, tested, and shared feedback! :rocket: