Skip to content

feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.5 ) - #256

Merged
jazzlyn-bot[bot] merged 1 commit into
mainfrom
renovate/ultralytics-8.x
Jan 17, 2026
Merged

feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.5 )#256
jazzlyn-bot[bot] merged 1 commit into
mainfrom
renovate/ultralytics-8.x

Conversation

@jazzlyn-bot

@jazzlyn-bot jazzlyn-bot Bot commented Jan 14, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change OpenSSF
ultralytics (changelog) project.dependencies minor ==8.3.252==8.4.5 OpenSSF Scorecard

Release Notes

ultralytics/ultralytics (ultralytics)

v8.4.5: - ultralytics 8.4.5 2D Pose Result.summary() support (#​23293)

Compare Source

🌟 Summary (single-line synopsis)

Ultralytics 8.4.5 makes 2D pose Results.summary() safer and more compatible by correctly handling keypoints with or without visibility flags 🧍‍♂️✅

📊 Key Changes

  • 🧩 Pose Results summary now supports keypoints missing visibility: Results.summary() checks kpt.has_visible and only outputs "visible" when it exists (otherwise returns just "x" and "y"), preventing crashes in mixed keypoint formats.
  • 🔖 Version bump: 8.4.48.4.5.
  • 📚 Docs & examples shift to YOLO26: Kaggle links, Ultralytics Platform docs, and multiple notebooks now point to YOLO26 as the recommended current model family 🚀.
  • 🗂️ NDJSON dataset docs improved: clearer per-task examples/tabs for Detect/Segment/Pose/OBB/Classify, including pose visibility explanations 🧾👀.
  • 🧹 Dependency cleanup: removed optional hub-sdk extra from pyproject.toml (simplifies installs for users who don’t need it) 📦✂️.

🎯 Purpose & Impact

  • 🛡️ Fewer runtime errors in pose pipelines: exporting/logging/serving pose outputs as JSON via Results.summary() won’t fail when datasets/models omit visibility/confidence per keypoint (common in non-COCO formats).
  • 🔄 More robust downstream integrations: safer summaries improve reliability for APIs, analytics, logging, and dataset export workflows that depend on consistent serialization.
  • 📈 Clearer “recommended model” guidance: shifting docs and notebooks toward YOLO26 reduces confusion for new users and aligns examples with the current default direction.
  • 🧰 Better dataset onboarding: expanded NDJSON docs help users format annotations correctly across tasks, reducing trial-and-error when building datasets.

What's Changed

Full Changelog: ultralytics/ultralytics@v8.4.4...v8.4.5

v8.4.4: - ultralytics 8.4.4 MuSGD optimizer scale factor update (#​23279)

Compare Source

🌟 Summary (single-line synopsis)

Ultralytics v8.4.4 refines MuSGD training behavior (better scaling for short vs. long runs) and includes several quality-of-life fixes for exports, segmentation outputs, logging, and filesystem side effects 🚀🧠

📊 Key Changes

  • 🧠 MuSGD optimizer scaling update (PR #​23279 by @​Laughing-q)
    MuSGD scale factors are now chosen more appropriately based on total training iterations:

    • > 10,000 iterations: (muon=0.1, sgd=1.0)
    • ≤ 10,000 iterations: (muon=0.5, sgd=0.5)
      This is a behavior change in ultralytics/engine/trainer.py.
  • 📷 Sony IMX500 export compatibility improved (PR #​23266 by @​Laughing-q)

    • IMX exporter now accepts multiple valid layer counts (a set of allowed values) instead of requiring exactly one, reducing false “unsupported model” failures ✅
    • IMX500 docs/examples are refreshed to focus on YOLO11 (model names and paths updated).
  • 🧩 Segmentation proto/output handling fixed across backends (PR #​23241 by @​Laughing-q)

    • Segmentation post-processing now pulls the proto masks from the correct output index for both PyTorch and exported models.
    • TensorFlow segmentation handling in AutoBackend now triggers based on task == "segment" (more reliable than guessing from output shape/length).
  • 📁 No more empty run folders when save=False (PR #​23268 by @​Y-T-G)
    get_save_dir() no longer auto-creates directories while computing a unique run path—reduces unwanted “predict” folders appearing on disk 🧹

  • 📈 TensorBoard OBB graph logging made safer (PR #​23276 by @​Y-T-G)
    TensorBoard graph logging now uses smart_inference_mode() to avoid gradient tracking—often less memory/overhead and fewer callback edge cases ⚙️

  • 🔗 Docs branding/link refresh (PR #​23283 by @​glenn-jocher)
    Multiple repo/docs links now point to the Ultralytics Platform entry point (and wording updated accordingly) 🧭

🎯 Purpose & Impact

  • 🚀 More consistent training dynamics with MuSGD
    If you use MuSGD (muon/sgd), you may see improved stability and convergence depending on whether your run is short or long—especially around the 10k-iteration threshold 🧠📉

  • Fewer export surprises (IMX500 + segmentation exports)
    IMX500 exports should fail less often due to minor layer-count differences, and segmentation outputs should be more consistent across PyTorch/exported/TF backends 📦🧩

  • 🧹 Cleaner local runs and tooling behavior
    Computing a save directory no longer creates folders prematurely, which is especially helpful for dry runs, scripts, and save=False predictions 📁✨

  • More robust logging during training
    TensorBoard graph logging becomes less intrusive and more reliable (particularly for OBB setups) 📊🛡️

What's Changed

Full Changelog: ultralytics/ultralytics@v8.4.3...v8.4.4

v8.4.3: - ultralytics 8.4.3 Faster Platform NDJSON downloads (#​23257)

Compare Source

🌟 Summary (single-line synopsis)

Ultralytics v8.4.3 boosts Ultralytics Platform NDJSON dataset downloads/conversion speed 🚀, improves training metric correctness 🧠, and refreshes defaults/docs around YOLO26 📚.

📊 Key Changes

  • 🚀 Faster NDJSON → YOLO dataset conversion (Ultralytics Platform data) — PR #​23257 by @​glenn-jocher
    • Lazy-loads aiohttp only when NDJSON conversion is used (faster startup, fewer unnecessary deps) 📦
    • Simplifies async image download code and improves concurrency scaling to match dataset size ⚡
    • Small robustness improvement for Platform URL handling 🌐
    • Version bump: 8.4.2 → 8.4.3 🔖
  • 🌐 Configurable Platform base URL — PR #​23256 by @​glenn-jocher
    • Adds ULTRALYTICS_PLATFORM_URL to point callbacks/links to staging or local environments 🧪
  • 🏷️ Defaults and examples move to YOLO26 — PR #​23242 by @​Laughing-q
    • Default YOLO()/CLI fallback model becomes yolo26n.pt and many docs/examples follow suit ✅
  • ⚙️ Training optimizer and warmup logic made more reliable — PR #​23234 by @​Laughing-q
    • Parameter groups are explicitly labeled; warmup LR now targets the bias group by name (not by position) 🔥
    • “Auto” optimizer strategy simplified around MuSGD with improved defaults 🎛️
  • 🧍 Pose training logs are more accurate — PR #​23230 by @​lmycross
    • Only reports rle_loss when the model actually supports it (avoids confusing metrics) 🧾
  • 🧩 IMX inference/export consistency improvements — PR #​23235 by @​Laughing-q
    • Anchor/stride refresh is more robust for changing input shapes; IMX decode path simplified 🔧
  • Fix duplicated Results.summary() entries — PR #​23218 by @​xusuyong
    • Prevents duplicated rows in summaries (cleaner analytics/logging) 🧹
  • 📈 Benchmark tables clarified with end-to-end (e2e) metrics — PR #​23238
    • README tables now clearly distinguish e2e evaluation metrics for YOLO26 tasks 📊
  • 🍓 Raspberry Pi 5 guide updated with YOLO26 benchmarks — PR #​23227
    • Refreshes benchmark formats and adds ExecuTorch results 📌

🎯 Purpose & Impact

  • 🚀 If you use Ultralytics Platform datasets (NDJSON): faster, cleaner dataset conversion and downloads means quicker “time-to-train” and fewer download bottlenecks—especially on larger datasets.
  • 📦 If you don’t use NDJSON conversion: lazy dependency loading reduces unnecessary imports and can make the package feel lighter/faster in common workflows.
  • 🌐 For teams using staging/local Platform: ULTRALYTICS_PLATFORM_URL makes it much easier to test integrations without patching code.
  • ⚙️ For training reliability: optimizer/warmup changes reduce edge-case misconfiguration and make training behavior more predictable across models/runs.
  • 🧾 For pose users: loss reporting now matches model capability, improving trust in logs/metrics during training.
  • 📚 For new users: YOLO26 becomes the “default path” in examples, reducing confusion about which model name to start with.

What's Changed

New Contributors

Full Changelog: ultralytics/ultralytics@v8.4.2...v8.4.3

v8.4.2: - ultralytics 8.4.2 Fix Platform Classify training (#​23217)

Compare Source

🌟 Summary (single-line synopsis)

Ultralytics v8.4.2 mainly fixes Ultralytics Platform (ul:// / NDJSON) classification training by converting datasets into the correct on-disk layout and validating them properly, plus a few quality-of-life and docs/CI tweaks 🛠️✅

📊 Key Changes

  • (Most important) Platform Classification Training Fix (PR #​23217, @​glenn-jocher) 🧩🏷️
    • NDJSON conversion now detects task == "classify" and creates an ImageNet-style folder layout: {split}/{class_name}/... (instead of images/ + labels/ used for detection-style tasks).
    • Detection/segmentation/pose/OBB conversions remain unchanged (still producing data.yaml, images/{split}/, labels/{split}/).
    • More robust downloads: creates parent directories before saving images pulled from URLs.
    • Trainer update: Trainer.get_dataset() now always resolves ul:// / .ndjson into a local dataset first, then runs the correct dataset validation for the task.
  • Classification results: Results.summary() now returns top-5 (PR #​23215, @​glenn-jocher) 🧠📋
    • For classification predictions, summary() is intended to return top-5 classes + confidences instead of only top-1.
    • Note: the diff shows each top-5 entry being appended twice (likely an unintended duplication) ⚠️
  • Allow overriding save_dir reliably (PR #​23191, @​Y-T-G) 📁🔧
    • save_dir is now treated as an allowed override/config key, so setting output directories via CLI/Python overrides is more consistent.
  • CI/tests: re-enable NCNN export tests on ARM64 (PR #​23214, @​lakshanthad) 🧪💻
    • Removes an ARM64 skip so NCNN export tests run on Apple Silicon/ARM servers (still guarded against PyTorch < 2.0 due to known instability).
  • Docs and branding/link fixes (PR #​23215) 📚🔗
    • Updates Kaggle model badge to YOLO11 (branding), fixes a billing link, and updates a cloud-training docs path.

🎯 Purpose & Impact

  • Platform classification training is unblocked 🎉
    • If you train classification models from Ultralytics Platform datasets (ul://...) or .ndjson exports, this release prevents failures caused by the wrong dataset folder structure and ensures the trainer checks the right dataset type.
  • More informative classification outputs 🔍
    • Top-5 summaries make it easier to evaluate “near-miss” predictions and build UI/analytics around multiple candidates (watch for potential duplicated entries in Results.summary() output in this specific tag) ⚠️
  • More predictable experiment output paths 🧰
    • Workflows that need custom output directories (sweeps, notebooks, CI pipelines) can now set save_dir without it being ignored or flagged.
  • Better ARM64 export coverage 🧪
    • Potentially catches ARM-specific NCNN export regressions earlier, though it may also surface new CI failures if upstream NCNN issues persist.

✅ If you’re using Ultralytics Platform + classification, v8.4.2 is a “must update”.

What's Changed

Full Changelog: ultralytics/ultralytics@v8.4.1...v8.4.2

v8.4.1: - ultralytics 8.4.1 Re-enable NCNN exports for ARM64 (#​23211)

Compare Source

🌟 Summary (single-line synopsis)

Ultralytics v8.4.1 brings back NCNN export + inference on ARM64 (Apple Silicon/ARM servers/edge devices) 📱⚙️, plus stability fixes for pose/seg training 🛠️ and a big docs/benchmarks cleanup 📚✨.

📊 Key Changes

  • ✅ NCNN on ARM64 is re-enabled (current PR #​23211 by @​lakshanthad) 📱
    • Removed ARM64 “hard stop” errors for:
      • NCNN export (ultralytics/engine/exporter.py)
      • NCNN inference (ultralytics/nn/autobackend.py)
      • NCNN benchmarking (ultralytics/utils/benchmarks.py)
    • Added an NCNN safety workaround for end-to-end (NMS-free) heads: when exporting to NCNN, Ultralytics disables the end-to-end branch if present (since NCNN doesn’t support the required TopK behavior) ⚠️🧩
  • 🧠 Training stability improvements (Pose + Segmentation) 🛡️
    • YOLO26 pose loss crash fix: filters NaN/Inf values and clamps extreme pose errors to prevent RLE/RealNVP failures (PR #​23205) 🧯
    • Segmentation loss crash fixes: safer proto unpacking and more robust handling when there are no foreground masks (PR #​23205 and PR #​23197) 🧩
  • 🧪 Export reliability + CI coverage improvements 🔁
    • OpenVINO int8 export fix and TFLite/TensorFlow wrapper refactor (moving decode logic into the TF export wrapper), plus CI “SlowTests” and “RaspberryPi” jobs re-enabled (PR #​23185) ✅🍓
  • ⚙️ Inference ergonomics fix
    • model.fuse() is now idempotent (won’t re-fuse an already fused model), reducing wasted time and avoiding potential side effects (PR #​23189) 🔧
  • 📚 Docs + benchmark table updates
    • Updated YOLO26 segmentation parameter counts and refreshed YOLO26 pose/OBB metrics across docs/README tables (PRs #​23178, #​23181, #​23192) 📈
    • Many docs now point to YOLO11 blog content (instead of YOLO26 blog links) and various link/image fixes (PR #​23212, plus link fixes in #​23211) 🔗🖼️
    • Quickstart examples shifted to YOLO26 defaults in the CLI/Python snippets (seen in the diff) 🚀

🎯 Purpose & Impact

  • ARM64 + NCNN users can deploy again 📱🚀
    If you’re exporting to NCNN for mobile/edge/ARM environments, you can now run export, inference, and benchmarks without being blocked by Ultralytics.
  • Fewer training crashes for YOLO26 Pose/Seg 🧠✅
    Better handling of extreme/invalid values means more stable long trainings (especially with small images, tricky batches, or multi-GPU edge cases).
  • More reliable exports + better test coverage 🧪
    Re-enabled CI jobs (including Raspberry Pi) should catch platform-specific issues earlier, improving overall release stability.
  • Clearer, more consistent docs 📚✨
    Updated tables/links reduce confusion when choosing models (YOLO11 vs YOLO26 vs YOLOE-26) and following copy-paste examples.

If you want, tell me your target device (e.g., Raspberry Pi 5, Apple M2, ARM server) and whether you’re exporting YOLO11 or YOLO26, and I’ll suggest the safest export settings for NCNN ⚙️📦.

What's Changed

New Contributors

Full Changelog: ultralytics/ultralytics@v8.4.0...v8.4.1

v8.4.0: - ultralytics 8.4.0 YOLO26 Models Release (#​23176)

Compare Source

🌟 Summary

Ultralytics YOLO26 has arrived. Re-engineered from the ground up by @​glenn-jocher, @​Laughing-q, and the Ultralytics YOLO team, YOLO26 is purpose-built for edge and low-power environments. This release introduces a streamlined, native end-to-end NMS-free architecture, delivering faster, lighter, and more accessible deployment across all platforms.

Ultralytics YOLO26 Comparison Plots

📊 What’s New

  • 🚀 NMS-Free End-to-End Inference: A fully native design that eliminates the need for Non-Maximum Suppression (NMS) post-processing, significantly reducing latency and simplifying export complexity.
  • 43% Faster CPU Inference: Optimized specifically for edge computing, achieving real-time performance on CPU-only devices.
  • 🧠 MuSGD Optimizer: A pioneering hybrid optimizer combining SGD with Muon. Inspired by Kimi K2 (Moonshot AI), this brings LLM-grade optimization stability to computer vision training.
  • 🔧 Streamlined Architecture (No DFL): Complete removal of Distribution Focal Loss (DFL) to streamline model export and maximize compatibility with low-power hardware.
  • 🎯 Task-Specific Enhancements:
    • Segmentation: Added semantic loss and multi-scale protos.
    • Pose: Implemented RLE for high-precision keypoints.
    • OBB: Introduced angle loss to resolve boundary discontinuities.
  • 🌐 YOLOE-26 Open-Vocabulary: Zero-shot inference capabilities allow for the detection of any object class using text or visual prompts.

🎯 Impact & Vision

  • Edge-First Philosophy: By removing architectural bottlenecks like DFL and NMS, YOLO26 maximizes speed on resource-constrained hardware.
  • Unified & Versatile: Full end-to-end support for detection, segmentation, classification, pose, and OBB.
  • Next-Gen Training: The MuSGD optimizer bridges the gap between LLMs and Vision, offering faster convergence and stable training.

What's Changed

Full Changelog: ultralytics/ultralytics@v8.3.253...v8.4.0

v8.3.253: - ultralytics 8.3.253 Add support to select Vulkan device when using NCNN (#​23164)

Compare Source

🌟 Summary (single-line synopsis)

Ultralytics 8.3.253 adds explicit Vulkan GPU device selection for NCNN inference (plus safer PaddlePaddle/NCNN dependency handling) to improve cross-vendor GPU acceleration and reliability ⚡🖥️🛠️

📊 Key Changes

  • NCNN + Vulkan device targeting (main feature) ⚡
    • You can now pass a device string like device="vulkan:0" or device="vulkan:1" to choose which Vulkan-capable GPU NCNN uses (helpful on AMD/Intel/non-NVIDIA systems and multi-GPU setups).
    • select_device() now accepts "vulkan..." device strings and leaves them unchanged so they flow cleanly into inference setup.
    • NCNN backend (ultralytics/nn/autobackend.py) now:
      • enables Vulkan compute when device starts with "vulkan",
      • calls net.set_vulkan_device(<id>),
      • then sets device=torch.device("cpu") to keep the rest of the pipeline consistent (NCNN handles the GPU work internally).
  • Docs update for Vulkan acceleration 📚
    • The NCNN integration guide now explicitly documents Vulkan GPU acceleration and shows Python/CLI examples for device=vulkan:<id>.
  • More robust dependency guardrails 🧩
    • Excludes PaddlePaddle 3.3.0 (!=3.3.0) in both export and inference paths due to an upstream breakage 🛑.
    • ARM64 NCNN installs from Git source instead of PyPI (PyPI packages are currently broken), improving install success on ARM devices (e.g., Raspberry Pi) 🧱.

🎯 Purpose & Impact

  • Better performance options on non-NVIDIA GPUs 🚀
    • Vulkan selection unlocks GPU-accelerated NCNN inference on AMD/Intel and other Vulkan-supported hardware—great for desktops and edge devices where CUDA isn’t available.
  • Multi-GPU control and predictability 🎛️
    • Users with multiple Vulkan devices can reliably choose which GPU runs inference, reducing surprises and improving resource management.
  • Smoother installs and fewer “mysterious failures” ✅
    • The PaddlePaddle version exclusion and ARM64 NCNN source install reduce breakages caused by known-bad upstream releases.

Example usage (NCNN model with Vulkan):

from ultralytics import YOLO

model = YOLO("yolo11n_ncnn_model")
results = model("image.jpg", device="vulkan:0")  # pick Vulkan GPU 0

What's Changed

New Contributors

Full Changelog: ultralytics/ultralytics@v8.3.252...v8.3.253


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@jazzlyn-bot
jazzlyn-bot Bot force-pushed the renovate/ultralytics-8.x branch from 98e0d9a to 02a75ec Compare January 14, 2026 12:19
@jazzlyn-bot jazzlyn-bot Bot changed the title fix(deps): update dependency ultralytics ( 8.3.252 → 8.3.253 ) feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.0 ) Jan 14, 2026
@jazzlyn-bot
jazzlyn-bot Bot force-pushed the renovate/ultralytics-8.x branch from 02a75ec to f9edd86 Compare January 15, 2026 00:44
@jazzlyn-bot jazzlyn-bot Bot changed the title feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.0 ) feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.1 ) Jan 15, 2026
@jazzlyn-bot
jazzlyn-bot Bot force-pushed the renovate/ultralytics-8.x branch from f9edd86 to 62391ab Compare January 15, 2026 12:19
@jazzlyn-bot jazzlyn-bot Bot changed the title feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.1 ) feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.2 ) Jan 15, 2026
@jazzlyn-bot
jazzlyn-bot Bot force-pushed the renovate/ultralytics-8.x branch from 62391ab to a4d0164 Compare January 16, 2026 00:47
@jazzlyn-bot jazzlyn-bot Bot changed the title feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.2 ) feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.3 ) Jan 16, 2026
@jazzlyn-bot
jazzlyn-bot Bot force-pushed the renovate/ultralytics-8.x branch from a4d0164 to dae91ca Compare January 16, 2026 12:19
| datasource | package     | from    | to    |
| ---------- | ----------- | ------- | ----- |
| pypi       | ultralytics | 8.3.252 | 8.4.5 |
@jazzlyn-bot
jazzlyn-bot Bot force-pushed the renovate/ultralytics-8.x branch from dae91ca to 405c275 Compare January 17, 2026 00:44
@jazzlyn-bot jazzlyn-bot Bot changed the title feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.3 ) feat(deps): update dependency ultralytics ( 8.3.252 → 8.4.5 ) Jan 17, 2026
@jazzlyn-bot
jazzlyn-bot Bot merged commit 3ac5b87 into main Jan 17, 2026
1 check passed
@jazzlyn-bot
jazzlyn-bot Bot deleted the renovate/ultralytics-8.x branch January 17, 2026 12:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants