Ultralytics v8.4.121 Released
Ultralytics v8.4.121 is now available! This release improves OpenVINO INT8 export reliability for YOLO26, significantly expands Ultralytics Platform API and workflow documentation, and strengthens security, CI, and dependency support.
Explore the v8.4.121 GitHub release for the complete release details.
Release Highlights
More Reliable OpenVINO INT8 Exports
The most important update in v8.4.121 fixes OpenVINO INT8 detection-head handling for YOLO26 models.
Instead of relying on fragile PyTorch layer matching, quantization now uses exact operation names from the converted OpenVINO graph. This ensures that Detect decoding, DFL, and Sigmoid operations remain in floating point while preserving strict NNCF validation.
Testing confirmed a successful YOLO26n-P2 INT8 export with 55 exact ignored operations and no unwanted FakeQuantize nodes.
This fix was contributed by @glenn-jocher in PR #25841, directly addressing reported export failures and improving quantization predictability.
Platform API, Dataset, and Annotation Improvements
The Ultralytics Platform documentation now more closely reflects the current product and API contract, making it easier to automate complete computer vision workflows.
Key updates include:
- Generated
ultralytics-platformPython SDK documentation alongside REST examples - Updated endpoints, authentication, pagination, rate limits, response formats, and OpenAPI guidance
- Expanded coverage for datasets, images, exports, training, deployments, storage, billing, usage, trash, and accounts
- Clearer URL, cloud-storage, and On Premise dataset import guidance
- COCO and NDJSON import documentation
- Class merging, deletion, conflict handling, clustering, readiness checks, and version restore guidance
- Expanded annotation visibility, copy-and-paste workflows, and keyboard shortcuts
- Clarification that Pascal VOC XML labels are not imported
- Clearer workspace API-key permissions and ownership requirements
The broader Platform documentation refresh was delivered by @glenn-jocher in PR #25808, while generated SDK coverage was added in PR #25823 by the same contributor.
Account, Billing, and Team Documentation
This release also improves explanations for:
- Credit metering, monthly expiration, and automatic top-ups
- Seat billing, renewals, and downgrade effects
- Workspace roles and owner-only API keys
- Invitations, seat reuse, ownership transfer, and team deletion
- Activity exports, trash permissions, storage usage, and account deletion
A Platform account-settings spelling correction was contributed by @UltralyticsAssistant in PR #25821, improving documentation quality.
Deployment and Inference Documentation
Deployment documentation now provides clearer guidance for:
- Dedicated endpoint lifecycle operations
- Authentication and rate limits
- Model replacement and capacity behavior
- Health checks, metrics, and logs
- Video inference and depth response options
- Endpoint-specific API references
- Generated deployment URLs
These updates make it easier to move from dataset preparation and training to production inference using the Ultralytics Platform.
Security and CI Improvements
Several changes strengthen build security and CI reliability:
- Checkout credentials are no longer copied into Docker images, implemented by @glenn-jocher in PR #25805.
- GitHub configuration was standardized by @glenn-jocher in PR #25822.
- SlowTests attempts were reduced from 180 to 120 minutes while retaining one retry, contributed by @glenn-jocher in PR #25839.
- Self-hosted runner cleanup was updated to v1.4.38 by @UltralyticsAssistant in PR #25811, then to v1.4.39 in PR #25836 by the same contributor.
- Dependabot GitHub Actions checks now run weekly instead of daily.
Together, these changes reduce credential exposure risks, stale runner state, and excessively long CI jobs. ![]()
Dependencies and Documentation Maintenance
Additional updates include:
- The
setuptoolsupper bound was increased from<81.0.0to<85.0.0by @dependabot[bot] in PR #25826. - NNCF support was expanded from
<3.0.0,>=2.14.0to>=2.14.0,<4.0.0by @dependabot[bot] in PR #25825. - Rust inference examples now use
ultralytics-inference0.0.35, updated by @onuralpszr in PR #25818. - Supported-task banners and task enumerations were corrected to represent YOLO26 coverage consistently, contributed by @raimbekovm in PR #25807.
- Trainer changes from @AyushExel are included through PR #24.
Upgrade Today
Install or upgrade to the latest release with:
pip install -U ultralytics
YOLO26 is the latest stable and recommended Ultralytics YOLO generation for new projects, with all model sizes and detect, segment, classify, pose, and OBB tasks supported.
Review the full v8.4.120 to v8.4.121 changelog to inspect every change.
Please try v8.4.121—especially OpenVINO INT8 export with YOLO26—and share your results, questions, or regressions with the Ultralytics community. Thanks to every contributor who helped make this release possible! ![]()