New Release: Ultralytics v8.4.14

:rocket: Ultralytics v8.4.14 is out — faster cancels, safer training, cleaner edges

Ultralytics 8.4.14 adds Ultralytics Platform “Cancel training” support so you can stop runs quickly and still keep/upload partial results :no_entry::outbox_tray: (plus stability and quality fixes across Pose + Segmentation).

If you train with Ultralytics Platform, this release is especially impactful thanks to the new cancellation behavior :stop_sign:.


:glowing_star: Highlights (what you’ll notice first)

:stop_sign: Platform-driven training cancellation (priority)

Cancelling a run from Ultralytics Platform is now more reliable and responsive:

  • Detects cancellation even before training starts (during session registration) to avoid wasted startup time
  • Checks cancellation at epoch end (send-and-check flow) and sets trainer.stop=True when cancelled=true
  • Tracks cancellation state via trainer._platform_cancelled with clear logs
  • Continues to upload partial artifacts/metadata when cancelled, so you can still review progress :package:

This landed in PR Platform training cancel feature by @glenn-jocher.


:new_button: New Features

  • :control_knobs: Training cancel support via Ultralytics Platform (stop promptly + keep partial outputs)
    Shipped in PR #23614 by @glenn-jocher.

:high_voltage: Improvements

  • :high_voltage: Faster responsiveness to stop requests between batches
    Training loop now breaks when self.stop is set, so external stop signals (including Platform cancellation) take effect sooner.
    Included in PR #23614 by @glenn-jocher.

  • :books: Docs clarity for Params/FLOPs after model.fuse()
    Adds a footnote explaining why reported Params/FLOPs can differ locally after fusion.
    In PR #23601 by @raimbekovm.


:bug: Bug Fixes

  • :man_standing::chart_increasing: YOLO26 Pose training stability fix
    Clamps negative rle_loss to zero to prevent destabilizing negative loss values.
    In PR #23604 by @Mr-Neutr0n.

  • :framed_picture::package: Segmentation → box conversion edge-case fix (segment2box())
    Excludes points exactly on the image border after clipping to prevent boxes snapping to edges.
    In PR #23602 by @Mr-Neutr0n.

  • :test_tube::wrench: Hyperparameter tuning crash fix
    Prevents TypeError when fitness exists but is None.
    In PR #23603 by @Mr-Neutr0n.


:bullseye: Why it matters

  • :money_with_wings: Less wasted compute: cancelled jobs exit earlier and more predictably
  • :package: No “all-or-nothing” cancels: partial uploads help you inspect progress even after stopping
  • :white_check_mark: More stable YOLO26 Pose runs: reduced risk of training going backwards due to negative loss behavior
  • :bullseye: Cleaner segmentation-derived boxes: fewer edge-snapped boxes improves training quality and results
  • :robot: More robust pipelines: fewer flaky tuning/reporting interruptions

:up_arrow: How to update

pip install -U ultralytics

:link: Release links

You can review the release notes in the v8.4.14 GitHub release, and browse all commits in the full changelog comparison.


:speech_balloon: Feedback wanted

Please try v8.4.14 (especially if you train on Ultralytics Platform) and share:

  • how quickly cancels respond for your runs,
  • whether partial artifacts are showing up as expected,
  • and any edge cases you hit in long trainings.

Thanks to everyone in the YOLO community and the Ultralytics team for the continued contributions and testing :raising_hands: