Ultralytics v8.4.118 is Here!
Ultralytics v8.4.118 introduces a standalone OpenAI-compatible LLM interface alongside Ultralytics YOLO, improves OBB training and CopyPaste performance, strengthens YOLOE validation, and delivers broad training, dataset, inference, and documentation fixes.
Explore the complete Ultralytics v8.4.118 release for all details.
New Standalone LLM Interface
The new LLM class provides a unified entry point for text and image-based requests to OpenAI-compatible language models:
from ultralytics import LLM
Key capabilities include:
- OpenAI Responses and Chat Completions APIs
- Synchronous and asynchronous requests
- Local paths, URLs, data URLs, NumPy arrays, and PIL images
- Reusable prompts, request overrides, and conversation state
- API keys and OpenAI-compatible service endpoints
- Independence from Ultralytics Platform and workflow-runtime components
This interface uses the optional openai dependency and was introduced in PR #25761 by @glenn-jocher. ![]()
Better OBB Training
Mosaic, CutMix, and RandomPerspective augmentations now preserve oriented bounding-box angles when objects are clipped at image boundaries.
This prevents cropped objects from receiving incorrect rotation targets and should improve training consistency for rotated-object datasets. See PR #25723 by @Nikhi00718.
Faster Augmentation
CopyPaste now batches instance concatenation rather than repeatedly copying increasingly large arrays. This avoids O(n²) growth and reduces overhead on images containing many objects.
The optimization comes from PR #25732 by @JESUSROYETH.
More Reliable YOLOE Workflows
YOLOE receives several validation and state-management improvements:
- Visual prompts are validated before model state changes.
- Flat prompts are supported for compatible batched image sources.
- Invalid string labels and short or mismatched vocabularies fail earlier.
- Gradient settings are preserved when converting convolution layers to linear layers.
These updates are covered by PR #25744 by @raimbekovm and PR #25747 by @raimbekovm.
Training and Inference Improvements
This release makes repeated and advanced workflows more predictable:
- Dataloader workers reset correctly when resuming after Mosaic closes through PR #25762 by @JESUSROYETH.
- Model overrides are restored after training, enabling repeated
train()andtune()calls through PR #25760 by @raimbekovm. - World pretraining hooks are registered once per model through PR #25758 by @raimbekovm.
- Classification prediction works when models lack predefined transforms through PR #25735 by @ahmet-f-gumustas.
- Compiled classification validation loaders retain all samples through PR #25734 by @JESUSROYETH.
- SAM predictor models are built outside inference mode through PR #25756 by @raimbekovm.
- Model loading behavior was evaluated in PR #25748 by @raimbekovm and finalized by the revert in PR #25768 by @glenn-jocher.
- Model save directories now use the model stem through PR #25763 by @raimbekovm.
- ImageNet pseudo-label teacher checkpoints now have corrected names and stored dtypes through PR #25754 by @Bovey0809.
Dataset and Prediction Fixes
Dataset handling is now broader and produces clearer errors:
- Classification auto-splitting recognizes all supported formats, including JPEG, BMP, WebP, TIFF, AVIF, HEIC, and uppercase extensions.
- Missing classification images raise a clear
FileNotFoundError. - Original filenames survive EXIF correction.
- Malformed grounding segmentation labels retain bounding-box fallbacks.
- Export data defaults are standardized.
The corresponding changes are available in:
Documentation, Testing, and Deployment
Documentation workflows and deployment guidance also receive several updates:
- Python docstrings and configuration-file changes now trigger documentation redeployment through PR #25733 by @glenn-jocher.
- Strict documentation validation is standardized on Zensical through PR #25736 by @glenn-jocher.
- Documentation validation is simplified and model chart placeholders, including YOLO26 charts, are restored through PR #25738 by @glenn-jocher.
- Replacing the model behind an existing deployment without changing its endpoint, API key, or identity is documented in PR #25745 by @glenn-jocher.
- Albumentations examples now use current 2.x constructor arguments through PR #25759 by @raimbekovm.
- External test assets are cached before
pytestthrough PR #25737 by @glenn-jocher. - Rust inference documentation now targets dependency version
0.0.34through PR #25778 by @onuralpszr. - The YOLO11 podcast audio embed was removed through PR #25765 by @raimbekovm.
New Contributor
A warm welcome to @doublecurry, who made their first contribution in PR #25749! ![]()
Try v8.4.118
Upgrade to the latest release with:
pip install -U ultralytics
Please try the new LLM interface, OBB augmentation improvements, and workflow fixes, then share your feedback and any issues you encounter. You can review every commit in the full v8.4.117 to v8.4.118 changelog.
Thank you to the Ultralytics team and the wider YOLO community for continuing to test, improve, and contribute! ![]()