Skip to content

v6.0.0

Choose a tag to compare

@wkentaro wkentaro released this 28 Mar 08:48
· 1412 commits to main since this release
942f276

LabelMe v6 changes two important defaults (auto-save on, image data no longer embedded), renames CLI flags and UI labels, adds support for large and multispectral TIFF images, and removes several legacy CLI entry points. If you're upgrading from v5, read Breaking changes and Migration guide below.

Breaking changes

Defaults flipped

  • Auto-save is now ON by default. Files save automatically as you annotate. To disable: labelme --no-auto-save, or set auto_save: false in your config.
  • Image data is no longer embedded in JSON by default. JSON files are now much smaller and reference image paths instead of embedding base64. To embed: labelme --with-image-data, or set with_image_data: true in your config.

CLI changes

  • Positional argument renamed: filename -> path. Now accepts image files, label files, or directories.
  • --output simplified: always expects a directory path (no longer accepts .json file paths).
  • CLI flags standardized to hyphenated style:
    • --no-autosave -> --no-auto-save
    • --nosortlabels -> --no-sort-labels
    • --labelflags -> --label-flags
    • --validatelabel -> --validate-label
    • Old forms are kept as hidden aliases and will be removed in v7.

UI renames

  • "Shape Labels" dock -> "Annotation List". (#1828)
  • "polygon" -> "shape" in shortcuts and UI labels. (#1822)

Removed

  • labelme_draw_json, labelme_draw_label_png, labelme_export_json CLI entry points. Moved to examples/ as standalone scripts (e.g., python examples/tutorial/draw_json.py).
  • labelme_on_docker CLI entry point.
  • labelme.utils.polygons_to_mask() and labelme.utils.labelme_shapes_to_label() (deprecated since v4).

Migration guide

Auto-save default change

# v5: opt-in via flag
- labelme --autosave
# v6: on by default; opt out instead
+ labelme               # auto-save enabled
+ labelme --no-auto-save  # disable

The old --autosave flag still works but will be removed in v7.

Embedded image data

# v5: embedded by default; --nodata to opt out
- labelme --nodata
# v6: omitted by default; --with-image-data to opt in
+ labelme                     # paths only
+ labelme --with-image-data   # embed base64

The old --nodata flag still works but will be removed in v7. Existing config files using store_data are automatically migrated to with_image_data.

CLI rename example

- labelme --nosortlabels --labelflags labels.json img/
+ labelme --no-sort-labels --label-flags labels.json img/

Removed CLI entry points

- labelme_draw_json out.json
+ python examples/tutorial/draw_json.py out.json

Changelog

Added

  • Added support for multispectral and float32 TIFF images via tifffile (e.g., satellite imagery) (#1812)
  • Added Polish (pl_PL) translation (#1809)
  • Added Thai (th_TH) translation (#1886)
  • Added Turkish language support for AI-assisted annotation features (#1805)
  • Created sparse ~/.labelmerc containing only user-changed settings instead of copying the full default config (#1796)

Changed

  • Breaking: Changed auto-save default to on; use --no-auto-save or auto_save: false in config to disable (#1815)
  • Breaking: Changed the default so image data is no longer embedded in JSON files; JSON now references image paths instead of base64. Use --with-image-data or with_image_data: true in config to embed (#1814)
  • Breaking: Renamed the CLI positional argument from filename to path; it now accepts image files, label files, or directories (#1825)
  • Breaking: Changed --output to always expect a directory path (no longer accepts .json file paths) (#1813)
  • Breaking: Standardized CLI flags to hyphenated style: --autosave -> --no-auto-save, --nosortlabels -> --no-sort-labels, --labelflags -> --label-flags, --validatelabel -> --validate-label; old forms kept as hidden aliases until v7 (#1823)
  • Renamed the "Shape Labels" dock widget to "Annotation List" (#1828)
  • Renamed "polygon" to "shape" in shortcuts and UI labels (#1822)
  • Prioritized vertices over shape bodies in hover detection, making vertex editing easier (#1867)
  • Improved large image loading performance by skipping re-encoding for JPEG/PNG without EXIF rotation (#1811)

Deprecated

  • Deprecated --autosave flag; use --no-auto-save instead (will be removed in v7)
  • Deprecated --nodata flag; use --with-image-data instead (will be removed in v7)
  • Deprecated config key store_data; automatically migrated to with_image_data

Removed

  • Breaking: Removed labelme_draw_json, labelme_draw_label_png, and labelme_export_json CLI entry points; moved to examples/tutorial/ as standalone scripts (#1846)
  • Breaking: Removed labelme_on_docker CLI entry point (#1821)
  • Breaking: Removed deprecated labelme.utils.polygons_to_mask() and labelme.utils.labelme_shapes_to_label() (deprecated since v4) (#1821)

Fixed

  • Fixed point shapes not being clickable (#1860)
  • Fixed window position not recovering when the saved screen is no longer available (#1859)
  • Fixed out-of-bounds crash when highlighting AI-generated masks (#1858)
  • Fixed pasted shapes not being selected after cross-file paste (#1876)
  • Fixed RGBA/transparent images not rendering correctly in the brightness/contrast dialog (#1872)
  • Fixed crosshair guide lines extending beyond image bounds (#1870)
  • Fixed a crash when the previously selected shape was removed from the annotation list (#1871)
  • Fixed a crash on malformed JSON in the file dialog preview (#1900)
  • Fixed a hang with @ symbols in file paths on macOS with Unicode paths (#1904)
  • Fixed rectangle drawn right-to-left producing incorrect masks (#1817)
  • Fixed a crash when moving a vertex beyond valid range on the canvas (#1818)
  • Fixed RGBA PNG conversion in labelme2coco (#1830)
  • Fixed deprecated NumPy boolean type usage (#1831)
  • Fixed silent failure when an image file fails to open; an error dialog is now shown (#1810)
  • Fixed display issues by forcing light mode (dark mode not yet supported) (#1808)
  • Fixed points on the edge of the image being rejected; edge placement is now allowed (#1801)

Contributors

Install

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

Full Changelog: v5.11.4...v6.0.0