Ultralytics v8.3.222
— INT8 TFLite for end2end, better quantized NMS, and IMX500 Classification
Quick summary: TFLite INT8 export is now enabled for end2end models, quantized NMS accuracy is improved, and IMX500 gains full Classification support—making fast, small-footprint deployments on mobile and edge devices even easier. ![]()
![]()
Highlights
- TFLite INT8 export now works with end2end models for smaller, faster pipelines.
- Quantized NMS receives accuracy and stability improvements for INT8 exports.
- IMX500 adds Classification export and inference alongside Detection and Pose.
- Docs, developer experience, and CI receive polish for a smoother workflow.
Upgrade with:
pip install -U ultralytics
New Features
-
TFLite INT8 for end2end models

We enabled exporting quantized TFLite INT8 models even when end2end is used, as implemented in PR #22503 by @Y-T-G.
Try it with YOLO11 or YOLOv10:yolo export model=yolo11n.pt format=tflite int8 end2end yolo export model=yolov10n.pt format=tflite int8 end2endValidate your INT8 TFLite model:
yolo val task=detect model=yolo11n_saved_model/yolo11n_int8.tflite data=coco128.yaml -
IMX500: Classification export + inference

IMX500 now supports the Classification task end-to-end, including docs, examples, and benchmarks, delivered in PR #21405 by @ambitious-octopus.
Improvements
- More accurate NMS under quantization

We improved the stability and accuracy of NMS in quantized exports, particularly TFLite INT8, via PR #22487 by @Y-T-G.
Docs and Developer Experience 
- Standardized US English across docs, logs, and tests, detailed in PR #22508 by @glenn-jocher.
- Clearer guidance on tuning limitations is provided in PR #22513 by @amm1111.
- A minor segmentation docs snippet fix was made in PR #22501 by @RizwanMunawar.
- The dataset page now features a helpful Construction PPE training video, added in PR #22485 by @RizwanMunawar.
- The docs banner copy was refined in PR #22486 by @sergiuwaxmann.
CI and Tooling Upgrades 
- Docs CI gained expanded Ruff rules, covered in PR #22480 by @glenn-jocher.
- Codespell configuration was cleaned up to reduce false positives in PR #22509 by @glenn-jocher.
- GitHub Actions artifacts were bumped to the latest versions in PR #22489 and PR #22490 by dependabot.
Bug Fixes 
- A variable name in segmentation docs was corrected from
restoresultsin PR #22501 by @RizwanMunawar.
How to Try It
- CLI examples:
# Export YOLO11 INT8 TFLite end2end yolo export model=yolo11n.pt format=tflite int8 end2end # Validate exported INT8 TFLite yolo val task=detect model=yolo11n_saved_model/yolo11n_int8.tflite data=coco128.yaml - Python example:
from ultralytics import YOLO model = YOLO("yolo11n.pt") model.export(format="tflite", int8=True, end2end=True)
Notes on Models
- YOLO11 is the latest stable and recommended model for all use cases.
- YOLO12 and YOLO13 are community models and not recommended due to stability, speed, and reproducibility concerns.
- YOLO26 is active R&D targeting open-sourcing later in 2025, aiming for smaller, faster, more accurate, end-to-end models across all YOLO11 sizes and tasks.
Get Involved
We’d love your feedback on this release. Share your experience and questions in our GitHub Discussions, and review the details on the v8.3.222 release page. You can also explore every change in the full v8.3.222 changelog diff.
Big thanks to our community contributors for making this possible—your energy powers Ultralytics YOLO. Happy exporting and deploying! ![]()