v6.0.0
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 setauto_save: falsein 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 setwith_image_data: truein your config.
CLI changes
- Positional argument renamed:
filename->path. Now accepts image files, label files, or directories. --outputsimplified: always expects a directory path (no longer accepts.jsonfile 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_jsonCLI entry points. Moved toexamples/as standalone scripts (e.g.,python examples/tutorial/draw_json.py).labelme_on_dockerCLI entry point.labelme.utils.polygons_to_mask()andlabelme.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 # disableThe 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 base64The 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.jsonChangelog
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-saveorauto_save: falsein 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-dataorwith_image_data: truein config to embed (#1814) - Breaking: Renamed the CLI positional argument from
filenametopath; it now accepts image files, label files, or directories (#1825) - Breaking: Changed
--outputto always expect a directory path (no longer accepts.jsonfile 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
--autosaveflag; use--no-auto-saveinstead (will be removed in v7) - Deprecated
--nodataflag; use--with-image-datainstead (will be removed in v7) - Deprecated config key
store_data; automatically migrated towith_image_data
Removed
- Breaking: Removed
labelme_draw_json,labelme_draw_label_png, andlabelme_export_jsonCLI entry points; moved toexamples/tutorial/as standalone scripts (#1846) - Breaking: Removed
labelme_on_dockerCLI entry point (#1821) - Breaking: Removed deprecated
labelme.utils.polygons_to_mask()andlabelme.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
- @kancheng: Polish and Thai translations (#1809, #1886)
- @minewilliam: canvas edge fix and refactoring (#1782, #1801, #1802)
- @oguz-hanoglu: Turkish translation (#1805)
Install
pip install -U labelme==6.0.0
# or
uv tool install labelme==6.0.0Full Changelog: v5.11.4...v6.0.0