v6.1.0
LabelMe v6.1 adds SAM3 support, reworks the AI toolbar, and bumps test coverage to 125 e2e tests. The "Open Recent" submenu has been removed and labelme.utils.lblsave is deprecated; if you depend on either, see Breaking changes and Migration guide below.
Released on 2026-04-16.
Breaking changes
- "Open Recent" removed. The recent-files submenu in the File menu is gone. Use the file list dock or the OS file dialog. (#1921)
labelme.utils.lblsavedeprecated. The old import still works (emits aDeprecationWarning) but will be removed in a future release. See Migration guide. (#1911, #1959)
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 -> ShapeandAI 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 ofrepaint(), avoiding blocking redraws. (#1869) - New translations: Greek (#1893), Ukrainian (#1892), Russian (#1891).
Bug 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 -> imgviz.io.lblsave
- from labelme.utils import lblsave
- lblsave(filename, lbl)
+ from imgviz.io import lblsave
+ lblsave(filename, lbl)The old import still works in v6.1 but emits a DeprecationWarning. (#1911, #1959)
"Open Recent" replacement
There is no drop-in replacement. Use the file list dock (which now auto-populates with sibling images, see New features) or your 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, #1931, #1933, #1935, #1936, #1937, #1938, #1939, #1960)
- Core algorithm rewrites:
boundedMoveShapes,storeShapes(now a deque), widget dialogs. (#1941) osambumped 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-uvaligned to v6. (#1951, #1952)
Contributors
- @kancheng: Greek, Ukrainian, and Russian translations (#1891, #1892, #1893)
- @minewilliam: async canvas repainting and
boundedMoveVertexrefactor (#1868, #1869)
Install
pip install -U labelme==6.1.0
# or
uv tool install labelme==6.1.0Full changelog: v6.0.0...v6.1.0