π Summary
Ultralytics v8.4.38 is a stability-focused release that mainly improves model export reliability and consistency across many deployment formats, with additional fixes for training, tracking, and SAM3 behavior. π
π Key Changes
- Top priority (PR #24120 by @Laughing-q): Unified standalone export behavior across CoreML, ONNX, OpenVINO, TensorFlow, TorchScript, ExecuTorch, Axelera, RKNN, IMX, NCNN, MNN, and Paddle. π¦
- CoreML now uses the modelβs real input name (instead of assuming
"image"), improving compatibility. - Export helper functions were standardized with clearer argument names (
output_file,output_dir, etc.). - Better support for multi-input export scenarios (notably ONNX/OpenVINO).
- More robust path handling in TensorFlow/IMX export flows.
- CoreML now uses the modelβs real input name (instead of assuming
- Export robustness fixes beyond the main PR
- Fixed YOLOE export edge case by skipping incompatible fusion when
lrpcis present. - Improved dependency auto-install fallback to use
python -m pip(works better in restricted environments). - RKNN now requires newer supported toolkit versions (
rknn-toolkit2>=2.3.2). - Axelera install commands now allow prerelease packages (
--pre) where needed.
- Fixed YOLOE export edge case by skipping incompatible fusion when
- Training reliability improvements ποΈ
- Fixed resume for non-end2end models (like classification).
- Adjusted DDP setup order so stride/image-size checks happen safely before wrapping.
- Checkpoint saves are now skipped whenever EMA weights contain invalid values (NaN/Inf), preventing bad checkpoints.
- Tracking behavior correction π―
track_buffernow consistently behaves as a true frame count in ByteTrack/BoT-SORT (no hidden FPS scaling).
- SAM3 fixes π§
- Presence-logit clamp now actually applies (in-place).
- Text-only prompting no longer injects a dummy geometry token, improving confidence behavior.
π― Purpose & Impact
- For deployment users: exports should be more predictable and less fragile across devices and runtimes (especially CoreML/OpenVINO/ONNX pipelines). β
- For training users: fewer resume/DDP/checkpoint edge-case failures, especially in classification and multi-GPU setups. βοΈ
- For tracking users:
track_buffernow matches what you configure, reducing surprising track drop behavior at non-30 FPS. π₯ - For SAM3 users: improved numerical stability and better text-only grounding quality. π¬
- Overall: this release is less about new features and more about making existing workflows safer, clearer, and production-friendlier. π
What's Changed
- docs: add trackzone to solutions cli enum by @raimbekovm in #24194
- Fix docs macros type and default drift by @raimbekovm in #24195
- Fix train resume for non-end2end models by @fcakyon in #24173
- Fix
torchandtorchvisionversions on JetPack 5 Docker by @lakshanthad in #24199 - fix: update axelera-devkit installation command to allow prerelease versions by @onuralpszr in #24190
- Refactor
test_engine.pyand add OBB/Pose test coverage by @Laughing-q in #24197 - Fix docs drift in export-table for executorch, axelera, imx by @raimbekovm in #24189
- Fix solutions-args colormap default drift (JET vs DEEPGREEN) by @raimbekovm in #24209
- Fix
trainer.strideassignment for DDP training by @Laughing-q in #24208 - Add missing validated args to TorchScript, CoreML, ExecuTorch integration pages by @raimbekovm in #24207
- Fix SAM3 presence logits clamp being a no-op by @Y-T-G in #24213
- Clarify YOLO12 pretrained weights are detect-only in model docs by @raimbekovm in #24211
- docs: remove outdated Snyk badge from security documentation and update old links by @onuralpszr in #24221
- Update annotation viewer zoom shortcut docs by @laodouya in #24214
- Fix Sentry bugs 2026-04-14 by @glenn-jocher in #24220
- Fix table format in
annotation.mdby @Laughing-q in #24232 - Update
axelera-runtimeinstallation command to allow prerelease versions by @lakshanthad in #24230 - fix: OpenVINO 2026 segfault on conda CI by @onuralpszr in #24224
- Clarify tt100k uses 221 annotation categories with 45 trainable classes by @raimbekovm in #24234
- Docs: add cli tabs for all 12 yolo solutions by @raimbekovm in #24217
- Fix: corrected undocumented scaling of track_buffer in trackers by @TimSchoonbeek in #24247
- Check for
lrpcattribute before attempting fuse during YOLOE model export by @Y-T-G in #24239 - Return the model instance when calling
fusemethod by @Y-T-G in #24246 - SAM3: Skip geometry token when using text prompts by @Y-T-G in #24244
- Update solution tests to use cached session assets by @Laughing-q in #24237
ultralytics 8.4.38Unify args naming for standalone export functions by @Laughing-q in #24120
New Contributors
- @TimSchoonbeek made their first contribution in #24247
Full Changelog: v8.4.37...v8.4.38