New Release: Ultralytics v8.3.231

:rocket: Ultralytics v8.3.231 – Zensical Docs Refresh & Tooling Upgrade

v8.3.231 is a docs and tooling–focused release that ships a brand-new Zensical-powered documentation pipeline, richer API reference pages, cleaner HTML post-processing, and several reliability improvements — all without changing core YOLO11 behavior. If your workflows are stable today, this update is a safe, drop-in upgrade with much better docs. :sparkles:

Release page: check out the full notes in the Ultralytics v8.3.231 GitHub release.


:glowing_star: Summary

  • :sparkles: New Zensical documentation engine and reference-docs pipeline.
  • :puzzle_piece: Fresh MiniJinja-based docs macros replacing legacy MkDocs macros.
  • :books: Fully re-architected API reference pages with rich structure and GitHub source panels.
  • :artist_palette: Multiple docs UX/content polish updates (links, admonitions, layout).
  • :locked: More robust settings handling for parallel processes.
  • :red_apple: Cleaner Apple MPS experience and pose metrics consistency.
  • :framed_picture: Clearer data format guidance for COCO8-Multispectral TIFF/TIF images.
  • :laptop: Better Windows training/validation docs to avoid multi-processing errors.
  • :broom: Docstring and tooling cleanup for a more maintainable repo.

:new_button: New Features

:books: Zensical Documentation Engine

We’ve introduced a Zensical-powered docs build that replaces the previous pure MkDocs pipeline:

  • Docs build now runs through a revamped docs/build_docs.py using zensical build.
  • A new build_reference_docs step:
    • Parses Python source via AST and Google-style docstrings.
    • Pre-renders rich, structured reference markdown for:
      • Classes, methods, functions, properties
      • Signatures, tables for parameters/returns, and source snippets.
  • Visual doc-kind badges (Class / Method / Function / Property) improve scanability.
  • HTML output is post-processed using the latest mkdocs-ultralytics-plugin for:
    • Better metadata, JSON-LD, authors, and social cards.

You can explore the generated docs in the Ultralytics documentation and see these improvements live.

:puzzle_piece: MiniJinja-Based Macros

We’ve replaced the old MkDocs macros plugin with a MiniJinja pre-render pass, which:

  • Renders macros into markdown before the docs build using:
    • mkdocs.yml extra values,
    • ultralytics/cfg/default.yaml,
    • A custom indent filter that keeps existing macros compatible.
  • Backs up and restores docs/en and docs/macros around the build to keep the repository clean.
  • Standardizes macro usage with --8<-- "docs/macros/..." includes, aligning with the new pipeline.

This makes docs builds more deterministic and contributor-friendly. :white_check_mark:


:open_book: Documentation & UX Improvements

:brick: Reference Docs Re-Architecture

The reference docs are now driven by a newly rewritten docs/build_reference.py that:

  • Builds fully structured reference pages from AST + docstrings instead of thin mkdocstrings stubs.
  • Intelligently merges __init__ docstrings into class docs (no runtime changes).
  • Generates rich per-item sections:
    • Args, Returns, Attributes, Notes, Examples, Raises
    • Parameter/return tables where appropriate.
  • Adds collapsible “View on GitHub” source panels with line-number deep links, making it easy to inspect the underlying implementation.
  • Supports external packages like the Ultralytics HUB SDK (hub-sdk) so related tooling can share the same reference pipeline.

:artist_palette: Docs Content & Layout Polish

A set of UX and content updates further refine the docs experience:

  • Refreshed docs landing page layout, language selector, and YOLO11 introduction.
  • CUDA references now consistently point to the updated /cuda location.
  • DVCLive links have been updated to the current doc.dvc.org domain.
  • FastSAM references now correctly point to the CASIA-LMC-Lab/FastSAM repository.
  • Fixed and standardized admonition syntax (!!! note, !!! warning) so they render reliably across the site.
  • Harmonized performance-table includes with the new macro pipeline syntax.

These changes aim to make navigation smoother and keep users on current, supported integrations. :sparkles:


:gear: Reliability & Tooling Improvements

:locked: SettingsManager Concurrency Safety

The SettingsManager._load implementation has been updated to call super().update(...) rather than self.update(...), which:

  • Prevents unintended writes or side effects during config file reads.
  • Reduces the risk of race conditions and potential settings corruption when multiple YOLO instances run in parallel.

If you run YOLO in multi-process setups or shared environments, this is a small but meaningful robustness improvement.

:red_apple: Apple MPS & Pose Metrics

We’ve smoothed the experience for Apple Silicon and pose evaluation:

  • Removed outdated MPS warnings for pose models that are no longer relevant.
  • Standardized OKS_SIGMA to float32 to ensure more consistent pose metrics across hardware and environments.

:framed_picture: Multispectral TIFF/TIF Clarifications

For the COCO8-Multispectral dataset, we’ve explicitly documented that:

  • TIFF/TIF images must be uint8, in addition to the existing (channel, height, width) layout and .tiff/.tif extension requirements.

This should help avoid subtle runtime bugs when preparing or debugging multispectral datasets. :rainbow:

:laptop: Windows Training & Validation Notes

To help Windows users avoid a common multi-processing error:

  • The train docs and val docs now:
    • Call out the familiar “Windows multi-processing RuntimeError”.

    • Recommend wrapping entry points with:

      if __name__ == "__main__":
          # your training / validation code here
          ...
      

This small pattern prevents confusing crashes in custom YOLO11 training or validation scripts on Windows. :window:

:broom: Docstring & Repo Hygiene

We’ve also streamlined some internals to support the new docs pipeline:

  • Removed redundant Examples: and Attributes: blocks from many __init__ docstrings, consolidating them into the main class docs.
  • Cleaned up Albumentations-related notes to be more concise and future-proof.
  • Bumped the mkdocs-ultralytics-plugin dev dependency to >=0.2.2 for compatibility with the new flow.
  • Updated .gitignore to include uv.lock, thanks to @onuralpszr, keeping local UV lock files out of version control.
  • Removed an unnecessary JUPYTER_PLATFORM_DIRS export from the docs CI workflow.

All of this should make contributing to docs and tooling smoother for everyone. :raising_hands:


:magnifying_glass_tilted_left: PR Highlights

Here are the key pull requests included in v8.3.231, with thanks to all contributors:

You can see the complete change set in the full v8.3.231 changelog comparison.


:bullseye: Purpose & Impact

  • :brain: Richer, easier-to-navigate API docs
    Clear signatures, structured sections, parameter/return tables, and GitHub source links make it easier to understand and extend YOLO-based workflows.

  • :hammer_and_wrench: More robust docs pipeline
    AST-based generation and MiniJinja pre-rendering reduce plugin complexity and make documentation more maintainable and contributor-friendly.

  • :locked: Safer multi-process usage
    The updated SettingsManager behavior helps avoid subtle issues when many processes interact with configuration at once.

  • :laptop: Better platform-specific experiences
    Windows users get concrete guidance for avoiding RuntimeErrors, and Apple Silicon users no longer see obsolete MPS warnings.

  • :white_check_mark: No breaking changes to YOLO11
    Training, validation, prediction, export, tracking, and benchmarking behavior stays the same — you mainly gain better docs and tooling.


:package: How to Upgrade

If you’re already using Ultralytics YOLO:

pip install -U ultralytics

Then you can continue using YOLO11 as usual, for example:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
results = model.predict(source="image.jpg")

All core workflows remain unchanged; you just benefit from improved docs and stability. :rocket:


:speech_balloon: Feedback & Discussion

We’d love to hear how the new docs and tooling work for you:

  • Are the new reference pages easier to use?
  • Any rough edges in the docs build or navigation?
  • Missing sections or examples you’d like to see for YOLO, datasets, or integrations?

Please reply here in Discourse or open an issue or discussion in the Ultralytics GitHub repository with your feedback. The continuous improvement of YOLO, the docs, and tooling is driven by the community — thank you all for your contributions and suggestions. :folded_hands: