Added
- Allow drawing Polygon and LineStrip paths by dragging, simplifying strokes into fewer vertices while preserving click-to-add input. (#2757)
- Add 3-point circle mode (
circle_3p) to draw circles by clicking three points on the circumference. (#2788) - Open JPEG 2000 Images (.jp2, .jpx, .j2k, .j2c) through Pillow with OpenJPEG support, including folder scanning and drag-and-drop, while preserving decoded pixels and transparency in memory. (#2833)
labelme.logrecords the platform, the installed AI runtime versions, and how long each AI model takes to load, encode an image and generate annotations, to help debug GPU problems. (#2849)- A Compute device Setting runs AI on the CPU, and the status bar shows while AI is running and whether it runs on the CPU. (#2861)
- AI-Find All replaces the AI Text Prompt. It finds every object that matches a text prompt, or a box around one example that you refine with more examples and with counter-examples drawn while holding Shift, then add with Enter or discard with Esc. The whole prompt is one concept, so commas no longer split it. Each batch asks for one label, prefilled with the prompt, so "black dog" can be saved as "dog", and objects already annotated with the same Output and label are skipped. (#2867)
- The model menu shows the download size of each model that is not downloaded yet. (#2898)
- Resting the pointer on an AI model in the model menu shows one sentence about what it trades, such as "Most accurate, but slower than SAM 2 Base+. Best with a GPU." (#2901)
- Hovering a row in the Shape List shows its full label in a tooltip, so labels cut off by the dock width can still be read. (#2905)
- AI-Segment shows the progress ring at the clicked point while a slow preview runs, such as the first click on an image. (#2936)
- AI-Segment and AI-Find All show a hint under a waiting suggestion with the keys that add or discard it and the gestures that refine it. (#2940)
- AI-Segment and AI-Find All show how to give the first prompt when you pick the tool. (#2942)
- Locate a moved or renamed Image from the Image Not Found dialog; choosing it updates the reference in the Annotation File. (#2964)
- Split the Label List into a Label set section, with an Edit… button that opens Settings at its labels, and a Found in files section for labels found in opened files. Changing the labels in Settings now updates the list right away. (#3047)
- Remove labels from the Label List's Found in files section and the label dialog's suggestions, one at a time or with Clear Unused. Unused labels are dimmed. Thanks to tongwentao for #2787. (#3048)
- Convert Shapes from the Convert To submenu in the Edit menu and the Shape context menu, keeping their Label, Group, Shape Flags, and description. The submenu lists every Shape kind; rectangle, polygon, and LineStrip convert today, and the rest are dimmed. (#3054)
- Convert circles, oriented rectangles, LineStrips, and masks to their bounding box, oriented rectangles to polygons, and lines and 2-point LineStrips into each other from Convert To. (#3055)
- Convert circles to polygons from Convert To, choosing the Polygon Detail in a dialog that previews the result on the canvas. (#3057)
- Convert masks to polygons from Convert To, one polygon per land, choosing the Polygon Detail with a preview; convert polygons to masks at once. (#3058)
Changed
- Right-clicking a Shape opens a menu of Shape actions, and right-clicking empty canvas opens a menu of drawing and canvas actions. (#2745)
- AI models run on the GPU through WebGPU (Metal, Vulkan or Direct3D 12) by default instead of the CPU, and CUDA when
onnxruntime-gpuis installed. SAM3 switches to a new model, so it downloads again. (#2850) - SAM3 is the default model for AI-Find All instead of YOLO-World. Users on YOLO-World switch to SAM3 too, because Labelme never saved the old default to the config; pick it again in Settings to keep it. (#2853)
- AI inference runs in a separate process, so a slow or crashing model no longer freezes or closes the window. (#2858)
- AI-Segment and AI-Find All retry on the CPU when the GPU fails, instead of failing. (#2859)
- A slow AI-Segment prompt shows a spinning ring where it was placed, and the status bar names the running task ("Segmenting…", "Finding all 'cat'…") and reports how many new objects AI-Find All found. (#2865)
- The AI Assist and AI Text Prompt toolbar groups merge into one AI group that keeps its controls in place; Run reads "Finding…" while it runs. (#2872)
- AI-Points and AI-Box merge into AI-Segment, which segments one object from any mix of clicked points, Shift-clicked negative points and one dragged box, with every model including SAM3. It targets one object; SAM3's box used to add every similar object, which AI-Find All's example box now does. A box is dragged instead of placed with two clicks: press Enter to finish it, or hold Ctrl while you drag to finish on release. Labelme requires osam 0.10.1 or later. (#2876)
- Tilt the Oriented Rectangle tool icon to 30 degrees so it no longer reads as a crooked Rectangle at small sizes. (#2889)
- Show the AI Assist output shape as an icon menu, with a new Mask icon, so it takes less toolbar space. (#2890)
- Move the AI Assist Score, IoU and Polygon detail settings into an Options popover, with a dot when a threshold is off its default. (#2891)
- Lay the AI toolbar group out in two compact rows with Run inside the query field and the AI-Segment model in Options; nothing in the group is disabled. (#2892)
- The
ai.defaultsetting now stores the model id, such assam2:latest, instead of its display name. Existing configs migrate automatically. (#2894) - AI model names now follow their official releases, such as SAM 2 Base+, EfficientSAM Tiny and SAM 3, and read the same in both AI tools. (#2895)
- One Model button replaces the separate AI-Segment and AI-Find All model pickers. It opens a single menu with a section per tool. (#2897)
- The model menu leads each AI tool with its fastest, balanced and most accurate model, and labels each one. Other models are under More models…. (#2899)
- Icons use Phosphor's Regular outline style instead of Duotone, so the toolbar no longer draws grey patches next to the image, especially in the dark theme. (#2902)
- Drawing tool icons show the points you click to draw each shape, and the AI tools show a dashed outline for what the model finds instead of a sparkle. (#2903)
- The status bar names the drawing tool by its display name, such as "Polygon" or "Oriented Rectangle", instead of its internal identifier. (#2907)
- The Open File, Open Folder, Save, and Delete File icons now draw in the theme's text color like the rest of the toolbar, instead of fixed blue and red. (#2908)
- Shape List and Label List rows start with a ringed color swatch, so the colors line up in one column and stay visible in dark mode. Long shape names are shortened with an ellipsis instead of scrolling the list sideways. (#2909)
- The status bar labels the pointer position with x and y in whole pixels and no longer repeats the mode name the left message already shows. (#2910)
- Split the File menu into groups for opening, moving between images, saving, and closing, and list Previous Image before Next Image. (#2911)
- The Brightness/Contrast icon is now a half-filled circle instead of a sun beside a crossed-out circle. (#2912)
- The unsaved-changes and Delete Annotation File prompts name the file by its file name instead of a full path or no name at all. (#2913)
- The Edit tool is now Select, with a cursor icon, at the top of the Shape Tools rail beside the drawing tools instead of in the top toolbar. (#2915)
- The zoom box shows three significant digits (
1.23%,12.3%,188%) and keeps the exact zoom, so low zooms on large images no longer snap, and typed values apply when you press Enter. (#2918) - Ctrl+scroll zooms in proportion to the scroll distance, so trackpads zoom smoothly instead of a full step per event, and Zoom Out undoes Zoom In exactly. (#2919)
- The Image List shows each folder once, as a heading above its images, so rows show the file name instead of repeating the folder path. (#2921)
- Undo now comes before Duplicate and Delete in the toolbar, so the two actions on the selected shapes sit together. (#2924)
- The Run button in the AI query field has a keycap outline, so it reads as a button before you hover over it. (#2927)
- The AI output menu opens under an "Output" heading, and its button's tooltip reads "Output format: Polygon" instead of just the shape. (#2933)
- AI-Find All results waiting for Enter have a white edge, as the AI-Segment preview does, so they no longer look like committed shapes. (#2937)
- AI prompt boxes are dashed in both AI modes, counter-example boxes are red like negative points, and negative points carry a "−" so exclusion reads without color. (#2938)
- Enter on a focused setting no longer closes the Settings dialog; press Esc, or focus Close and press Enter, to close it. (#2945)
- AI progress in the status bar names the stage, such as starting the AI, loading the model or preparing the image, and shows the elapsed seconds for longer waits. Slow stages are recorded in the application log. (#2953)
- AI-Segment draws the guess at the cursor as the model's raw mask instead of a polygon; the result of your clicks still uses your output format and polygon detail. (#2958)
- A disabled Merge Shapes item says why in its tooltip, such as "Only mask shapes can be merged". The right-click menu and the Edit menu now show tooltips. (#2963)
- Save now writes an annotation file opened from outside the Annotation Folder into the folder, as Auto Save does. (#2978)
- Select All, Delete and moving no longer affect hidden shapes. (#2979)
- Keep Previous no longer copies shapes onto an image whose annotation file is saved with no shapes. (#2985)
- Images up to 2 GB decoded open without the large-image prompt; the new
image_decode_limit_mbconfig setting changes the limit (#2999) - Moving the pointer in Edit mode now skips Shapes far from it, so hovering stays responsive with many Shapes. (#3032)
- With Keep Previous Brightness/Contrast on, an Image now opens with its adjustment applied once instead of three times. (#3033)
- Auto Save now checks that an existing Annotation File belongs to the open Image off the GUI thread, so editing stays responsive with large embedded images. (#3034)
- Refreshing and searching the Image List is faster for folders with many Images. (#3035)
- The source distribution no longer includes generated example datasets and README images, shrinking it from 11.7 MB to 5.3 MB. (#3036)
- Dragging the Polygon Detail slider and turning AI masks into polygons are several times faster on detailed masks. (#3059)
- Polygon Detail is now relative to each shape's thickness, so one value gives alike polygons on small and high-resolution images and keeps thin shapes such as wires. Polygons from a saved Polygon Detail change: coarser on large shapes, finer on small ones. (#3060)
- Use the native widget style on Windows 11. (#3077)
- Reuse prepared Mask Shape fills and contours to speed up redraws, with bounded render cache storage. (#3079)
- Reuse prepared polygon render paths across redraws and Undo to keep dense annotations responsive without changing saved geometry. (#3082)
- Draw vertex markers faster on dense Shapes, so Undo, hover, and redraw stay responsive with every vertex visible. (#3091)
- Hide the Flags dock while there are no flags to show. (#3093)
- Shorten the empty state to its open buttons and drop hint. (#3095)
Deprecated
- The
shortcuts.create_ai_pointsandshortcuts.create_ai_boxconfig keys are deprecated in favour ofshortcuts.create_ai_segment, andcanvas.crosshair.ai_points_to_shapeandcanvas.crosshair.ai_box_to_shapein favour ofcanvas.crosshair.ai_segment. Old keys still load, with a warning. (#2876)
Removed
- The status bar no longer shows "Labelme started." for the whole session; it stays empty until there is something to report. (#2906)
Fixed
- Preserve existing config file permissions across atomic saves. (#2747)
- AI no longer runs on the slow Windows WARP software renderer when no GPU is available; it runs on the CPU. (#2863)
- The active drawing tool shows as selected instead of greyed out, and screen readers no longer announce it as unavailable. (#2864)
- AI-Find All rejects YOLO-World before download or inference when the Output needs masks, such as Polygon or Mask, and greys it out in its model choices and in Settings; the AI Text Prompt ran inference first and then failed. The model Setting is kept. (#2866)
- Released tool labels in Indonesian, Persian, Turkish, and Vietnamese no longer wrap onto two lines in the shape-tools column when one line fits. (#2881)
- Intel Macs and Macs running macOS 13 can install Labelme with the CPU runtime again; Apple Silicon Macs on macOS 14 or later keep WebGPU acceleration. (#2882)
- Legacy inline
--configvalues now receive the same migrations as config files, so old AI crosshair keys no longer trigger recovery that discards other command-line settings. (#2883) - Avoid duplicate polygons when running AI-Find All again on occluded objects. (#2885)
- Setting the old
keep_prev_brightnessandkeep_prev_contrastkeys tofalse, such as in--config, now turns offkeep_prev_brightness_contrastwhen the config file enables it. (#2886) - A config that bound both
shortcuts.create_ai_pointsandshortcuts.create_ai_boxnow keeps both for AI-Segment instead of only the first. (#2887) - The Models dialog shows download progress in MB and GB, matching the model menu. (#2900)
- Dim disabled toolbar and menu icons on macOS, where they drew as strong as enabled ones. (#2916)
- Images too big to fit at 1% zoom now fit the window, and can zoom out to half of that fit. (#2920)
- Canceling the label dialog after a Point click no longer leaves the Select tool disabled. (#2925)
- The Run button in the AI query field now fits its ↵ symbol, so its hover highlight no longer spans the width of "Finding…". (#2926)
- Select, Undo and Delete now stay in step with the canvas after switching images mid-draw, canceling a shape, editing a label, or hiding a shape mid-draw. (#2928)
- Undoing a step that changes nothing saved, such as hiding a shape, no longer marks the file modified or rewrites it with auto save. (#2930)
- The Run button's keycap outline shows in dark theme; it all but matched the query field before. (#2932)
- AI-Find All draws the Shapes a query found while the Shape Label dialog asks for their label, instead of an empty canvas. (#2934)
- The AI progress ring shows on bright images; its arc all but vanished against a white or light background before. (#2935)
- AI-Find All finishes a box when you drag it, as AI-Segment does, instead of waiting for a click on the opposite corner. (#2939)
- The AI hint chip wraps its gestures onto more lines in a narrow view instead of hiding or clipping them. (#2943)
- Clicking the closed image's row in the Image List after File > Close reopens it. (#2946)
- AI tools on Windows use CPU when the graphics adapter lacks Direct3D 12, as in VMware Fusion virtual machines, instead of WebGPU software rendering that encoded an image about 25 times slower. (#2948)
- AI-Segment fills the guess at the cursor, what your next click would give, and draws the result of your clicks on top with a white edge and its vertices, the shape Enter adds; Enter could add a different mask than the one shown, and the progress ring sat on the last click while the cursor's run was slow. (#2952)
- The cursor coordinates in the status bar stay at the right end instead of moving when the AI or save status changes. (#2954)
- Open an Image whose Annotation File records a stale Image path, instead of failing with Image Not Found. (#2965)
- AI-Segment and AI-Find All no longer fail after a mask shape is moved by a fraction of a pixel. (#2971)
- CMYK JPEG and 16-bit grayscale PNG images open again. (#2972)
- A deleted or hidden shape no longer keeps its handles under the pointer. (#2973)
- Clicking a flag in the Flags dock while no image is open no longer closes Labelme. (#2974)
- Auto Save no longer overwrites another annotation file when the opened file is named differently from its image. (#2975)
- Changing a setting no longer removes the comments from a config file that holds no settings. (#2980)
- Deleting an annotation file also clears its image flags, so the next save starts clean. (#2981)
- Rotating an oriented rectangle near the image edge no longer moves its corners outside the image. (#2982)
--configaccepts a file whose path contains characters that YAML treats specially. (#2983)- Two programs saving the same annotation file at once no longer interfere with each other's write. (#2984)
- Temporary files left beside annotation files by a crash during a save are removed by a later save (#2993)
- Help > Tutorial opens the tutorial in the wkentaro/labelme repository (#2994)
- An annotation file with a mask far larger than its image is rejected instead of exhausting memory (#2995)
- A large TIFF, JPEG 2000 or EXIF-rotated image asks before it is decoded instead of after (#3000)
- Temporary files left beside the config file by a crash during a save are removed by a later save (#3002)
- Deleting a point with the keyboard shortcut is now its own Undo step instead of being undone together with the edit before it. (#3003)
- Delete Selected Point right after an Undo no longer marks the file as changed without removing a point. (#3004)
- Hide Shapes, Show Shapes and Toggle Shapes now take one Undo step instead of one per Shape, and Toggle Shapes no longer skips Shapes selected in the Label List. (#3005)
- Pasting or duplicating Shapes while drawing no longer discards the unfinished Shape. (#3006)
- An invalid command-line argument, such as malformed
--label-flags, now exits with an error instead of crashing. (#3007) - An invalid
label_completionorcanvas.double_clickvalue in the Config File now opens the settings recovery dialog instead of closing Labelme. (#3008) - Changing Sort labels, Show label text field or Label completion no longer clears the label suggested for the next Shape. (#3009)
- Selecting a search result in read-only Settings no longer blanks the result count. (#3010)
- Saving no longer removes the embedded image from an Annotation File whose Image exists nowhere else. (#3013)
- Keep Previous no longer copies the open Image's Shapes into a newly chosen Annotation Folder. (#3014)
- A Config File that is not a mapping of settings now opens the settings recovery dialog instead of being ignored. (#3015)
- Dropping an Image with unsaved changes now asks once, and only when the dropped Image will be opened. (#3016)
- Edit Label no longer marks the file as changed when nothing was edited, and a label set there is now suggested for the next Shape. (#3017)
- Group ID stays editable in the label dialog when Show label text field is off. (#3018)
- Rectangles, circles and lines now keep a point label for each of their two points. (#3019)
- 16-bit Images that need re-encoding, such as a 16-bit PGM, now open with all 16 bits kept, and float Images are scaled to 8 bits. (#3038)
- Changing the shape colors in Settings no longer shows hidden shapes selected together with visible ones. (#3050)
- A press right after a keyboard zoom no longer drags or selects the Shape that was under the pointer before the zoom. (#3052)
- The Return arrow on the AI-Find All Run button sits centered in its outline. (#3053)
- A mask's outline and clickable area now line up with its fill, and polygons, circles, oriented rectangles and rectangles made from a mask by AI Assist or Convert To line up with its pixels instead of sitting half a pixel up and to the left. (#3061)
- Undoing back to what the file holds now clears the unsaved mark in the title and the Save action. (#3062)
- AI-Segment now sends clicks and boxes to the model at the pixel they were placed on, instead of half a pixel down and to the right. (#3063)
- Opening an Annotation File directly after a folder with an Annotation Folder now saves to that file instead of writing a copy to the folder's Annotation Folder. (#3067)
- After opening a folder whose first Image fails to load, saving the Image still open no longer overwrites another Image's Annotation File, and Delete Annotation File no longer offers to delete it. (#3072)
- Accept the displayed Shape Label on Enter instead of replacing it with a stale inline suggestion from an earlier label dialog. (#3074)
- Apply Light and Dark color themes on platforms that ignore Qt's color-scheme request, and restore the system palette when selecting System. (#3075)
- Restore AI model downloads on fresh installs by keeping gdown below 6.5. (#3088)
- Align Shape List color swatches and lock icons with their visibility checkboxes. (#3089)
- Keep toolbar icons on one row and drop mnemonic underlines from toolbar labels. (#3092)
- Set the image on a backdrop a step darker than the window, so a light image's edges stay visible. (#3094)