๐ Summary
Ultralytics v8.4.131 adds Apple Core AI export and inference support for YOLO26, alongside important validation, training, model-configuration, and documentation improvements. ๐
๐ Key Changes
-
๐ Apple Core AI export and inference
- Export models with
model.export(format="coreai")or the equivalent CLI command. - Creates Appleโs
.aimodelasset format, which can be loaded again withYOLO("yolo26n.aimodel"). - Supports FP32 and optional FP16 export through the new
export-coreaidependency group. - Adds a dedicated Core AI backend, metadata handling, API references, export-table support, and continuous macOS CI coverage.
- Supports YOLO26 models on Apple silicon with macOS 26 or later; exported assets target iOS 27 and macOS 27.
- Core AI export currently has important limitations: fixed input size, no dynamic shapes or NMS export, and no support in the Ultralytics iOS or Flutter SDKs yet.
- Export models with
-
โก Core AI deployment options
- YOLO26โs end-to-end head is exported by default, returning finished detections directly.
- Exporting with
end2end=Falseproduces raw predictions and can significantly reduce inference latency when post-processing is handled on the host. - Core AI export includes model metadata such as class names, stride, and task information inside the
.aimodelasset.
-
โ More reliable validation with
split=train- Validation now consistently uses the unaugmented validation pipeline instead of accidentally applying training augmentations such as Mosaic, MixUp, and Random Perspective.
- Dataset fractions are now selected according to the requested split.
- This fixes crashes and unreliable metrics for detection, segmentation, OBB, RT-DETR, and YOLOE validation workflows.
-
๐งฎ Correct YOLO26 loss terminology
- Documentation and logging now distinguish YOLO26โs
l1_lossfromdfl_lossused by models with distribution-based box regression. - Training guides, default configuration comments, tuning tables, experiment trackers, and tutorial output have been updated accordingly.
- Documentation and logging now distinguish YOLO26โs
-
๐ฏ Improved model configuration handling
- Model-scale overrides in
parse_modelnow match exact scale letters, preventing unscaled or dictionary-based configurations from taking the wrong architecture branch. C3k2configurations without an explicitly provided optional argument no longer fail for medium, large, or extra-large variants.- The architecture guide now explains these scale-dependent behaviors more accurately.
- Model-scale overrides in
-
๐ค YOLOE class reordering fixes
YOLOE.set_classes()now recognizes class-order changes and regenerates prompt embeddings when necessary.- Reordering classes therefore updates class IDs and names correctly instead of being treated as a no-op.
-
โ๏ธ Training robustness improvements
- Class weights are now preserved on the underlying model during DDP training and continue to target the student model correctly during knowledge distillation.
- Fine-tuning guidance now recommends non-zero warmup while clarifying that the full three-epoch default is not always necessary.
- Documentation now accurately describes automatic optimizer selection and module-name-based layer freezing.
-
๐ Better progress bars in notebooks and narrow terminals
- TQDM output no longer disappears in zero-width pseudo-terminals such as those used by Colab.
- Notebook output is allowed to scroll naturally, while truncated terminal lines now show an ellipsis instead of being silently cut off.
-
๐ Documentation and presentation updates
- Corrects documented YOLOE and YOLOv5 run paths to match actual
increment_pathbehavior. - Adds the missing OBB task header image.
- Expands and updates Apple Core AI integration guidance, including deployment limitations and Core ML recommendations.
- Corrects documented YOLOE and YOLOv5 run paths to match actual
๐ฏ Purpose & Impact
- Apple developers gain a new native deployment path for YOLO26 models on the latest Apple silicon platforms, potentially improving on-device inference integration and performance. ๐
- Core ML remains the better choice for broader compatibility, including older Apple operating systems and the Ultralytics iOS or Flutter SDKs. Core AI is currently best suited to experimental or platform-specific deployments.
- Validation results become more trustworthy, especially when evaluating training data with
split=train, because training-time augmentation is no longer applied accidentally. - YOLO26 users receive clearer training feedback, avoiding confusion between L1 box-distance loss and DFL metrics.
- Custom and scaled model definitions are more dependable, reducing silent architecture mismatches and configuration-related errors.
- YOLOE class prompts are safer to update, particularly in applications that dynamically change class ordering.
- Distributed training and notebook workflows become more reliable, with class weights preserved correctly and progress output rendered consistently.
What's Changed
- Match documented run paths to each product's own increment_path by @raimbekovm in #25942
- Match model scale letters exactly in parse_model and correct the architecture guide by @raimbekovm in #25940
- Add the OBB task header image by @raimbekovm in #25947
- Correct the
dflloss description for DFL-free YOLO26 by @raimbekovm in #25941 - Correct training-argument documentation that disagrees with the trainer by @raimbekovm in #25957
- Preserve class_weights during DDP training by @Laughing-q in #25959
- Apply YOLOE class updates when only the order changes by @aswanth-07 in #25956
- Fit the TQDM bar on zero-width and notebook terminals by @Y-T-G in #25958
- Keep validation unaugmented on split=train and pick the fraction by split by @onuralpszr in #25962
- Add Apple Core AI export by @john-rocky in #25926
Full Changelog: v8.4.130...v8.4.131