🌟 Summary
v8.4.121 improves OpenVINO INT8 export reliability for YOLO26 models while delivering broad Platform API, dataset, annotation, deployment, and documentation updates. 🚀
📊 Key Changes
-
Fixed OpenVINO INT8 detection-head handling by @glenn-jocher:
- Replaced fragile PyTorch-based layer matching with exact names from the converted OpenVINO graph.
- Keeps Detect decoding, DFL, and Sigmoid operations in floating point as intended.
- Preserves strict NNCF validation during quantization.
- Verified with a successful YOLO26n-P2 INT8 export using 55 exact ignored operations, with no unwanted
FakeQuantizenodes. ✅ - This directly addresses export failures reported in Sentry and is the most important change in this release.
-
Expanded Ultralytics Platform API documentation:
- Documented the generated
ultralytics-platformPython SDK alongside REST examples. - Updated endpoint paths, authentication, pagination, rate limits, response formats, and OpenAPI guidance.
- Added coverage for images, dataset ingestion, exports, storage integrations, billing, usage, trash, training, deployments, and account APIs.
- Clarified that workspace API keys have owner-level permissions and are managed by workspace owners.
- Documented the generated
-
Improved Platform dataset and annotation workflows 🏷️:
- Added clearer documentation for URL, cloud-storage, and On Premise dataset imports.
- Documented class merging/deletion, conflict handling, dataset readiness checks, clustering, version restore, and expanded annotation controls.
- Added support documentation for COCO and NDJSON imports, while clarifying that Pascal VOC XML labels are not imported.
- Documented annotation visibility controls, copy/paste workflows, and new keyboard shortcuts.
-
Updated Platform account, billing, and team documentation 💳:
- Added the Usage tab, detailed credit metering, monthly credit expiration, auto top-up behavior, seat billing, renewals, and downgrade effects.
- Clarified workspace roles, owner-only API keys, team invitations, seat reuse, ownership transfer, and team deletion.
- Expanded activity exports, trash permissions, storage usage, and account deletion guidance.
-
Improved deployment and inference documentation 🌐:
- Clarified dedicated endpoint lifecycle operations, authentication, rate limits, model replacement, health checks, metrics, logs, and capacity behavior.
- Documented video inference, endpoint-specific API references, depth response options, and generated deployment URLs.
-
Security and CI improvements 🔒:
- Prevented checkout credentials from being copied into Docker images.
- Moved workflow secrets into environment variables instead of embedding them in scripts.
- Updated self-hosted runner cleanup actions to v1.4.39.
- Reduced individual SlowTests attempts from 180 to 120 minutes while retaining one retry.
- Changed Dependabot GitHub Actions checks from daily to weekly.
-
Dependency and documentation maintenance 📚:
- Bumped the package version to 8.4.121.
- Allowed newer
setuptoolsand NNCF versions, including NNCF 3.x. - Updated Rust inference examples to
ultralytics-inference0.0.35. - Corrected task banners and documentation to consistently represent YOLO26’s supported task coverage.
🎯 Purpose & Impact
- More dependable edge deployment: YOLO26 users exporting INT8 models through OpenVINO should see fewer conversion failures and more predictable quantization behavior. ⚡
- Better model accuracy preservation: Keeping detection-head decode operations in floating point helps protect inference correctness while still applying INT8 compression elsewhere.
- Easier Platform automation: The updated REST contract and generated Python SDK documentation make it simpler to build integrations, manage datasets, start training, create exports, and operate deployments.
- Clearer team and billing behavior: Users can better understand permissions, shared workspace costs, credit expiration, seat charges, and training metering before taking action.
- More capable dataset preparation: New import, annotation, class-management, clustering, and versioning guidance supports more complete end-to-end computer vision workflows.
- Safer builds and more stable CI: Docker images are less likely to contain authentication credentials, while CI jobs are better protected against hangs and stale runner state. 🛡️
What's Changed
- Trainer by @AyushExel in #24
- Prevent checkout credentials from entering Docker images by @glenn-jocher in #25805
- Bump eviden-actions/clean-self-hosted-runner from v1.4.37 to v1.4.38 in /.github/workflows by @UltralyticsAssistant in #25811
- Update Platform docs to match current product and API contract by @glenn-jocher in #25808
- Bump ultralytics-inference version to 0.0.35 in documentation by @onuralpszr in #25818
- Fix spelling in Platform account settings by @UltralyticsAssistant in #25821
- Document the ultralytics-platform SDK across the Platform docs by @glenn-jocher in #25823
- Standardize .github configuration by @glenn-jocher in #25822
- Update the supported tasks banner and the task enumerations by @raimbekovm in #25807
- Bump eviden-actions/clean-self-hosted-runner from v1.4.38 to v1.4.39 in /.github/workflows by @UltralyticsAssistant in #25836
- Update setuptools requirement from <81.0.0 to <85.0.0 by @dependabot[bot] in #25826
- Update nncf requirement from <3.0.0,>=2.14.0 to >=2.14.0,<4.0.0 by @dependabot[bot] in #25825
- Bound SlowTests retry attempts by @glenn-jocher in #25839
- Fix OpenVINO INT8 detection head scope by @glenn-jocher in #25841
Full Changelog: v8.4.120...v8.4.121