github wkentaro/labelme v6.3.0

4 hours ago

LabelMe v6.3 sharpens AI-assisted annotation. A single AI-Box or AI-Points prompt no longer stacks redundant predictions on the same object, whether they came from nested SAM granularities or from an area you have already labeled.

Released on 2026-05-19.

Highlights

Smarter AI-assisted annotation

AI-Box, AI-Points, and AI-Text now run two suppression passes before any shape is created:

  1. Mask-aware NMS (#2088). A greedy per-label pass over SAM detections that uses both mask IoU and intersection-over-smaller (containment). The same region returned at multiple nested granularities (e.g. a tree-cluster mask and a single-tree mask that share a bbox) collapses to one shape. Plain bbox NMS cannot deduplicate nested masks that share a bbox; mask-aware NMS can.
  2. Overlap-with-existing suppression (#2087). A propagated AI detection whose mask IoU vs an already-annotated shape is >= 0.5 is dropped before becoming a shape. Drawing an AI-Box or clicking AI-Points over an object you have already annotated no longer duplicates it. Works against rectangle, polygon, oriented_rectangle, circle, and mask outputs.

Together these turn a noisy SAM pass into a clean, additive one: only genuinely new objects reach the label list.

Bug fixes

  • Empty AI inference now gives feedback (#2083). When an AI-Box produces no shape (e.g. every detection was suppressed), the status bar reports it and the edit-mode button is no longer left stuck disabled.
  • Drop AI detections with empty masks (#2094). OSAM occasionally returns a bbox with an all-False segmentation mask; the mask branch now drops these instead of emitting a transparent shape, matching the polygon, circle, and oriented-rectangle paths.
  • Mask bbox stays aligned with its bitmap (#2095). Hovering near a corner of a mask shape no longer arms a vertex drag, which previously shrank the bbox without moving the underlying bitmap and left the green outline drifting off the mask.
  • Loguru FD leak in test runs (#2092). The per-test loguru handler is now removed cleanly, so xdist workers no longer hit OSError: [Errno 24] Too many open files on macOS.

Internal

  • create_mode typed as a Literal with runtime validation via typing.get_args (#2086).
  • AI helper method renames: Canvas AI helpers aligned with the create_mode tokens (ai_box, ai_points) (#2090).
  • _automation imported as a module, replacing ad-hoc symbol imports from Canvas and App (#2091).
  • Inline _shapes_from_ai_box into its only call site after the unified AI flow (#2093).
  • American English consistency: rename _finalise -> _finalize and other UK->US spellings (#2085).
  • Remove unused hide_background_shapes Canvas feature (#2084).
  • Remove dead debug block in compute_polygon_from_mask (#2089).
  • Dependency bump: urllib3 2.6.3 -> 2.7.0 (#2081).

Install

pip install -U labelme==6.3.0
# or
uv tool install labelme==6.3.0

Full changelog: v6.2.0...v6.3.0

Don't miss a new labelme release

NewReleases is sending notifications on new releases.