Ultralytics v8.4.8 is live β better end-to-end control for YOLO26 & YOLOv10 
Ultralytics v8.4.8 makes end-to-end (NMS-free) inference for YOLO26 (recommended) and YOLOv10 actually honor max_det and agnostic_nms β so you get predictable caps on detections and consistent class-agnostic behavior across predict, val, and exports ![]()
![]()
If you run YOLO26 in end2end=True, this is a practical quality-of-life upgrade. ![]()
New Features (high impact)
End2end now supports max_det + agnostic_nms (core change)
- PR #23396 by @Y-T-G
- Adds a safe
set_head_attr(**kwargs)helper to set head/last-layer attributes likeend2end,max_det,agnostic_nms
- When
end2end=True,predictandvalnow pushmax_det+agnostic_nmsinto the model head, so these flags take effect
- Adds
agnostic_nmssupport inside theDetecthead (impacts end-to-end top-k selection logic)
- Export now carries
agnostic_nmsinto the exported head for better parity between Python and deployment
- Adds a safe
Clearer end2end controls across CLI/docs
Why it matters (Purpose & Impact)
- Predictable end-to-end outputs

max_detnow reliably limits results in end2end mode (no more βwhy didnβt it cap?β confusion). - Better class-agnostic behavior

agnostic_nmsbecomes meaningful in end2end workflowsβuseful when classes overlap heavily or you want βbest boxes regardless of classβ. - Closer parity between local and exported models

Fewer surprises where Python and exported inference behave differently due to missing head settings. - Safer behavior across export targets

Better handling for runtimes with limited operator support.
Improvements & Reliability
Export reliability
- PR #23312 by @Laughing-q
- Exporter auto-disables end2end for formats that donβt support required ops (
rknn,ncnn,executorch,paddle,imx) and storesend2endin metadata
- Exporter auto-disables end2end for formats that donβt support required ops (
YOLOE / YOLO-World training usability
Docs navigation & discovery
- PR #23398 by @glenn-jocher β Simplify docs nav

- PR #23406 by @glenn-jocher β Add model compare pages

- PR #23362 by @lakshanthad β Fix Jetson docs links

- PR #23388 by @RizwanMunawar β Add video link to docs

Bug Fixes & Stability
- PR #23378 by @lmycross β Improve small OBB candidate selection robustness

- PR #23392 by @lmycross β Fix DDP
AttributeErrorvia unwrap utility
- PR #23395 by @Laughing-q β PyTorch
1.9.0training compatibility fix
- PR #23402 by @ahmet-f-gumustas β Fix swapped
input_height/input_widthin ONNX example
- PR #23366 by @jules-ai β Fix OpenVINO sample coordinate handling

- PR #23369 by @PT0X0E β Fix stride indexing in
select_candidates_in_gts
- PR #23419 by @Y-T-G β Disable shuffle only when batch shapes mismatch with
rect=True
- PR #23420 by @glenn-jocher β Classification training fixes

- PR #23435 by @Y-T-G β Save
close_mosaicas int inbest_hyperparameters.yaml
- PR #23350 by @Laughing-q β Update optimizer selection strategy

- PR #23390 by @Laughing-q β Fix
stride_valtype issue in STAL
- PR #23374 by @Laughing-q β Update
coco12-formatspredict tests
- PR #23368 by @Y-T-G β Note about SAM3 tokenizer error from incorrect
clippackage
- PR #23401 by @ShuaiLYU β Fix visual prompt training for YOLOE26

- PR #23428 by @ShuaiLYU β Fix text model attribute in YOLOE trainer (from scratch)

- PR #23434 by @Y-T-G β Fix names generation in
SAM3VideoSemanticPredictor
- PR #23443 by @lakshanthad β Update Jetson Thor benchmarks with YOLO26

- PR #23448 by @Laughing-q β Fix YOLOE training test

- PR #23453 by @ahmet-f-gumustas β Fix SMTP port parameter syntax in
SecurityAlarm
Quick start
Update to v8.4.8:
pip install -U ultralytics
Example end-to-end inference controls (now honored
):
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.predict(source="image.jpg", end2end=True, max_det=50, agnostic_nms=True)
New contributor
Welcome @PT0X0E
first contribution in PR #23369!
Links & feedback
You can review the release details in the official Ultralytics v8.4.8 release page and browse changes in the full v8.4.7 β v8.4.8 changelog comparison.
Tried v8.4.8 with YOLO26 end-to-end? Share results, edge cases, and export targets that matter to youβfeedback helps us keep behavior consistent across training, inference, and deployment ![]()