Releases: wkentaro/labelme
Releases · wkentaro/labelme
v5.11.3
v5.11.2
v5.11.1
v5.11.0
Features
- Support square drawing for "Create Rectangle" (#1748) @kancheng
- Use style "Fusion" for consistent appearance across platforms (#1751)
- Introduce SAM3 (smart) model for text-to-rectangle (#1762)
- Support "polygon" and "mask" in AI text-to-annotation (#1774)
- Add "Preferences..." menu for config file editing (#1781)
SAM3 AI text-to-annotation
FocuSee.Project.2026-01-19.7-29-43.PM.mp4
Preferences...
Bug Fixes
- Clear selectedShapes to avoid crash on loading new image (#1717)
- Import onnxruntime before PyQt5 (#1723)
- Use canCloseShape for double-click finalization (#1724)
- Fix typo in variable name in shape.py (#1733) @minewilliam
- Handle empty input in nms_bboxes (#1761)
- Load OsamSession lazily for AI-assisted shapes (#1775)
- Handle Windows-style paths in LabelFile (#1784)
- Replace np.cross with manual 2D cross product (#1785)
- Reflect file_search in config at start time (#1788)
UI Improvements
- Show model selection in AI Prompt widget (#1752)
- Disable "AI Prompt" widget when not in rectangle create mode (#1753)
- Add info button to AI-assisted annotation widget (#1764)
- Add tooltip for AI Text-to-Annotation info button (#1766)
- Disable AI-Assisted Annotation widget when not in AI modes (#1767)
- Add newline for Japanese translation of menu items (#1768)
- Allow label editing when non-edit mode only from label list (#1769)
Internationalization
- Add Traditional Chinese (zh_TW) (#1727) @kancheng
- Add French (fr_FR) (#1730) @kancheng
- Add Japanese (ja_JP) (#1732)
- Add Hungarian (hu_HU) (#1734) @kancheng
- Add German (de_DE) (#1735) @kancheng
- Add Persian (fa_IR) (#1737) @kancheng
- Add Korean (ko_KR) (#1738) @kancheng
- Add Spanish (es_ES) (#1739) @kancheng
- Add Portuguese (pt_BR) (#1749) @kancheng
- Add Dutch (nl_NL) (#1750) @kancheng
- Add Italian (it_IT) (#1776) @kancheng
- Add Vietnamese (vi_VN) (#1779) @kancheng
Build
- Drop Python 3.9 support (#1746)
- Migrate to ty for type checking (replacing mypy) (#1720)
- Use hatch dynamic versioning (#1771)
Dependencies
- Bump filelock from 3.17.0 to 3.20.3 (#1747)
- Bump urllib3 from 2.3.0 to 2.6.3 (#1756)
- Bump requests from 2.32.3 to 2.32.4 (#1757)
- Bump protobuf from 5.29.3 to 5.29.5 (#1758)
- Bump fonttools from 4.56.0 to 4.60.2 (#1759)
Refactoring
- Add OsamSession class for osam model and embedding caching (#1754, #1760)
- Extract and rename AiAssistedAnnotationWidget (#1763, #1765)
- Use importlib.metadata to get version (#1770)
- Reorganize tests into e2e and unit tests (#1786)
CI
- Check version of pylupdate5 before generating .ts files (#1731)
- Add Discord notification for merged PRs (#1755)
Contributors
Thanks to all contributors for this release! 🎉
Full Changelog: v5.10.1...v5.11.0
v5.11.0a0
v5.10.1
v5.10.0
What's Changed
Features
- feat(app): show canvas mode in status bar in #1682
- feat(app): show create-shape tools on left side bar in #1685
- feat(app): show image index in window title in #1692
- feat(canvas): allows dragging to move around the canvas by @juliusl in #1622
- feat(canvas): prioritize to select highlighted shape's vertex in Canvas in #1691
- feat(icons): refresh icons in #1701
- feat(zoom): zoom towards canvas center unless by mouse wheel in #1704
Fixes
- fix(app): disable editMode button onload because it's already EDIT mode in #1683
- fix(app): fix font size inconsistency in ToolBar on macOS in #1713
- fix(app): fix redundant mayContinue reusing fileSelectionChanged in #1693
- fix(app): handle high-dpi scaling issue on Qt applications in #1687
- fix(app): handle null image in paintCanvas in #1695
- fix(app): handle when file is closed and imageList is not None in #1700
- fix(app): show current index based on file list widget in #1708
- fix(app): stop focusing to ai-prompt after closing file in #1699
- fix(app): tweak epsilon for scaleFitWidth to better hide scrollbar in #1702
- fix(app): use ascii bullet in status messages to fix shifting in #1712
- fix(canvas): clear Canvas.shapes so that it won't be rendered after reset in #1690
- fix(canvas): stop caching sam by lru cache to reduce vram usage in #1715
- fix(zoom): center zoom on visible region center instead of canvas in #1705
Others
- chore(app): compact toolbar in #1684
- chore(tools): log lrelease version used & skip if lrelease is not 5.15.x in #1686
- refactor(app): refactor to use snake case and type-annotation in #1694
- refactor(app): refactor to use snake_case and type-annotation in #1697
- refactor(app): replace _adjust_scale with _set_zoom in #1703
- refactor(app): replace _noSelectionSlot with itemSelectionChanged.connect/disconnect in #1698
- refactor(app): use snake_case and type-annotate in #1696
- refactor(tests): use pathlib in labelme_tests in #1707
- test: isolate QSettings in test_app.py to prevent side effects in #1689
New Contributors
Full Changelog: v5.9.1...v5.10.0
v5.9.1
v5.9.0
What's Changed
Features
- feat: validate shape JSON objects in LabelFile in #1624
- feat: Allow spacebar for finalizing a shape by @akx in #1474
- feat: show drawing & editing status messages on status bar in #1673
- feat(canvas): show progress dialog when downloading AI model in #1677
- feat(app): add option to keep previous brightness/contrast settings in #1678
- feat(app): show download dialog for text-to-bbox model in #1679
- feat(app): add "About Labelme" menu and dialog in #1680
Fixes
- fix: Fix closure issue in brightness/contrast slider label update by @xiyaowong in #1613
- fix: don't fill linestrip internal area in #1628
- fix: fix missing fill-drawing in polygon mode in #1627
- fix: fix label list design inconsistency on Windows by using HtmlDelegate in #1646
- fix: fix cursor flickering on Windows in #1647
- fix: prevent overwriting items when dragging and dropping in label list in #1651
- fix: Fix brightness/contrast for PNG image in #1655
- fix: fix not-shown save automatically state by removing icon on Windows in #1657
Others
- chore: add startup log message for labelme version in #1615
- chore: include 16, 32, 48, 64, 128, and 256 pixel icons in icon.ico in #1619
- docs: link to new install-labelme-terminal doc (using uv) in #1623
- chore: Use standard
types.SimpleNamespaceinstead of customstructby @akx in #1480 - chore: Add .git-blame-ignore-revs by @akx in #1476
- ci: run lints/checks only once in #1629
- ci: fix indentation in ci.yml in #1630
- chore: remove flake8 noqa comments from init.py files in #1631
- chore: Clean up some
type: ignorecomments by @akx in #1626 - chore: upgrade ruff from 0.1.9 to 0.12.11; autofix by @akx in #1633
- chore: Apply and enable flynt check in #1634
- chore: Enable pyupgrade check in ruff in #1635
- ci: check translation files are up-to-date in #1636
- ci: use cache-apt-pkgs-action to speed up CI in #1637
- ci: ignore line numbers in translation file check in #1642
- refactor: make _get_default_config_and_create_labelmerc private in #1644
- chore: define default shape colors in Shape class in #1643
- build(dep): upgrade osam to 0.2.5 in #1645
- refactor: Simplify QPointF, Qt modifiers use in canvas.py in #1648
- chore: type annotate canvas functions to remove type: ignore in #1649
- chore: Remove mypy ignore for Shape._current_vertex_fill_color in #1661
- chore: Update language-updating by @akx in #1638
- chore: Clean up more "type: ignore" comments by @akx in #1632
- refactor: Move action collections out of
actionsnamespace by @akx in #1662
New Contributors
- @xiyaowong made their first contribution in #1613
- @akx made their first contribution in #1480
Full Changelog: v5.8.3...v5.9.0
v5.8.3
Fixes
- Use shutil to load Docker by @emmanuel-ferdman in #1589
- Fix mypy error by inheriting from io.StringIO by @wkentaro in #1603
- Use QtCore.QPointF to represent points in Canvas by @wkentaro in #1606
Dependencies
New Contributors
- @emmanuel-ferdman made their first contribution in #1589
Full Changelog: v5.8.2...v5.8.3