Skip to content

Releases: wkentaro/labelme

v5.10.0

25 Nov 13:21

Choose a tag to compare

labelme_v5_10

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

17 Oct 13:15

Choose a tag to compare

What's Changed

Fixes

  • fix(canvas): immediately affect cursor changes while avoiding flicking in #1681

Full Changelog: v5.9.0...v5.9.1

v5.9.0

16 Oct 12:02

Choose a tag to compare

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.SimpleNamespace instead of custom struct by @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: ignore comments 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 actions namespace by @akx in #1662

New Contributors

Full Changelog: v5.8.3...v5.9.0

v5.8.3

13 Jul 06:08

Choose a tag to compare

Fixes

Dependencies

New Contributors

Full Changelog: v5.8.2...v5.8.3

v5.8.2

21 Jun 03:07

Choose a tag to compare

What's changed

Features

  • Catch exception globally so that it even show in log message with app in #1601

Fixes

  • Check createMode in ["ai_polygon", "ai_mask"] before checking self._sam in #1588

Testing

  • Mypy in #1572
  • Test polygon creation in test app py in #1574
  • Test openNextImg and openPrevImg methods in labelme.app.MainWindow in #1575
  • Increase mypy check scope by installing pyqt5-stubs in #1595

Others

  • Remove unused ColorDialog in #1570
  • Enable isort check in ruff in #1573
  • refactor: Replace sam_embedding caching with lru_cache in #1592
  • Compute image embedding for SAM only when needed in #1593
  • Initialize ai model when needed in canvas in #1596

Full Changelog: v5.8.1...v5.8.2

v5.8.1

24 Mar 03:34

Choose a tag to compare

Fixes

  • Fix missing check for self._sam in Canvas.finalise by @wkentaro in #1566

Full Changelog: v5.8.0...v5.8.1

v5.8.0

16 Mar 08:20

Choose a tag to compare

What's Changed

Features

  • Introduce SAM2 by @wkentaro in #1557
  • Support shape type "mask" in conversion (labelme_draw_json, labelme2voc.py, and more) by @wkentaro in #1560

Others

New Contributors

Full Changelog: v5.7.0...v5.8.0

v5.7.0

04 Mar 09:55

Choose a tag to compare

What's Changed

Fixes

  • Handle when shape["flags"] is None in #1536
  • Fix missing stderr in gdown download in osam in #1549

Changes

  • Drop qtpy and primarily support PyQt5 in #1540
  • Migrate to pyproject.toml and uv (from setup.py, pytest.ini, .flake8, ruff.toml) in #1541

Full Changelog: v5.6.1...v5.7.0

v5.6.1

23 Jan 09:59

Choose a tag to compare

Fixes

  • Fix encoding error in Windows reported #1525
  • Fix undefined logger.warn for loguru #1530

Full Changelog: v5.6.0...v5.6.1

v5.6.0

30 Dec 14:45

Choose a tag to compare

Features

  • Remove slight shifting from duplicate #1499
  • Implement "AI Text to Rectangles" #1469

Fixes

  • Make group_id clearable by removing the already set value #1498
  • Fix group edit when text field is disabled #1497
  • Make point-manip reasonable: ALT+Click (add), ALT+SHIFT+Click (delete) #1496
  • Draw crosshair and pointSize consistently regardless the zoom level #1471 (Thanks @PairZhu)

Others

  • Use loguru for logging #1523