github wkentaro/labelme v6.1.0

7 hours ago

LabelMe v6.1 adds SAM3 support, reworks the AI toolbar, and bumps test coverage to 125 e2e tests. If you call labelme internals from scripts, check the Migration guide below.

New features

  • SAM3 AI-Box mode — new AI annotation option. In AI-Box mode, a single bounding box can produce multiple shapes. (#1917)
  • Unified AI modes — the four old AI tools (ai_polygon, ai_mask, etc.) are now two: AI Points → Shape and AI Box → Shape, each with a polygon/mask toggle. A separator in the toolbar divides manual tools from AI tools. (#1915, #1916)
  • Download progress bar — AI model downloads now show progress and can be cancelled (#1948)
  • Sibling image import — opening a single image file loads all images in the same directory into the file list (#1924)
  • AI button hover hint — hovering the disabled AI widget highlights the AI toolbar buttons so new users can find them (#1961)
  • Async canvas repainting — canvas calls update() instead of repaint(), avoiding blocking redraws (#1869)
  • New translations — Greek (#1893), Ukrainian (#1892), Russian (#1891)

Fixes

  • Double-undo on delete — deleting a shape used to require two undos to restore it; now one undo is enough (#1932)
  • SAM3 disabled in AI-Points mode — SAM3 doesn't support point prompts, so it's now greyed out in the model selector with a warning (#1918)
  • Tooltip mismatch — AI mode tooltips now match the renamed menu labels (#1928)

Also includes fixes shipped in v6.0.1 and v6.0.2:

  • Unchecking "Save Automatically" had no effect since the v6.0.0 default change (#1953)
  • README images on pypi.org were broken due to relative paths (#1954)

Migration guide

labelme.utils.lblsave deprecated

Use imgviz.io.lblsave instead. The old import still works (emits a DeprecationWarning) but will be removed in a future release. (#1911, #1959)

"Open Recent" removed

The recent-files submenu in the File menu is gone. Use the file list dock or the OS file dialog. (#1921)

Internal

  • Type annotations on all functions, enforced by ty check (#1920, #1922)
  • E2E test suite went from ~20 to 125 tests (#1930#1939, #1960)
  • Core algorithm rewrites: boundedMoveShapes, storeShapes (now a deque), widget dialogs (#1941)
  • osam bumped to stable 0.4.0; cropped mask support (#1919)
  • New linters: flake8-annotations, typos, taplo, mdformat, yamlfix (#1927)
  • CI split into lint.yml + test.yml; setup-uv aligned to v6 (#1951, #1952)

Contributors

Full changelog: v6.0.0...v6.1.0

Don't miss a new labelme release

NewReleases is sending notifications on new releases.