Skip to content

Releases: lightly-ai/lightly-studio

v1.0.3

Choose a tag to compare

@ikondrat ikondrat released this 10 Jul 14:37
4c213e9

Added

  • Python SDK: limit parameter on ImageDataset.add_samples_from* methods to index only the first N samples of a dataset.
  • Python dataset queries now support model evaluation queries on the annotation level.
  • View class distribution for image classification.
  • Custom embedding models can be registered.

Changed

  • Embedding plot legend is now compact and scrollable, and the WebGPU fallback message is no longer shown.

What's Changed

Full Changelog: v1.0.2...v1.0.3

v1.0.2

Choose a tag to compare

@lukas-lightly lukas-lightly released this 02 Jul 14:58
51cfba5

Added

  • Annotation classes can now be shown or hidden individually in the grid views using an eye icon toggle in the Annotation Classes sidebar.
  • Python SDK: target_fps parameter on VideoDataset.add_videos_from_path to subsample frames to a
    lower frame rate. Retained frames keep their original frame numbers.
  • Sampling in Browser now supports combining multiple strategies (diversity, typicality, similarity, metadata weighting, class balancing) in a single selection.
  • Sampling dialog now accepts a percentage input alongside the absolute sample count. Editing either field updates the other based on the current
    filtered sample count.
  • Deduplication strategy is available in the Sampling Dialog in the GUI
  • Improve confusion matrix usability for large numbers of classes
  • Python dataset queries now support classifications, object detections, and segmentation mask annotations.
  • Python dataset queries now model evaluation queries on the sample level.
  • Improved performance when tagging all samples in the GUI for large datasets.
  • Annotation source selection for exports: when multiple annotation collections exist, the export dialog shows a dropdown to choose which collection to export from. The annotation source can also be specified via the Python API using the annotation_collection_id parameter.
  • All embedding plot legend entries (especially e.g. Excluded by filters, No category, etc.) can be hidden by clicking on them.
  • YOLO object detection export: object detection annotations can now be exported in YOLO format from the GUI export dialog, via the Python API (dataset.export().to_yolo_object_detections(...)), and via the export API (export_format=object_detection_yolo).
  • Object-level (annotation) embeddings: annotations can now be embedded and searched by text or image similarity and visualized in the embedding plot.

What's Changed

Read more

v1.0.1

Choose a tag to compare

@LeonardoRosaa LeonardoRosaa released this 17 Jun 16:07
53ac4c5

Added

  • Show plugin description and a link to documentation when no plugins are available.
  • When sorting the image grid by a numeric field, the field value is now shown as an overlay on each sample.
  • Query editor now supports annotation source and confidence fields in queries.
  • Panel toggles (Embeddings, Query, Evaluation) moved to a right-rail icon menu beside the collection grid.
  • Python SDK: annotation_source parameter on ImageDataset.add_samples_from* methods and
    Sample.add_annotation / add_annotations to import or add annotations to a named source.
  • Python SDK: Annotation.annotation_source property to read the annotation source name.
  • Python SDK: Sampling.deduplicate method to select a deduplicated subset based on embedding distance.

Changed

  • The embedding plot legend now reflects the active filter: categories with no
    matching samples are hidden. When there are more values than fit in the
    legend, the least frequent values are merged into a single "Other" category.

Fixed

  • Fixed embedding rendering for users without WebGPU by updating embedding-atlas from 0.10.0 to 0.21.0.
  • The query filter is now applied consistently across features that use the image filter, such as the embedding plot, sampling, and select-all.
  • Brush tool's Finish button gives better visual feedback when an annotation can be finished.

What's Changed

Read more

v1.0.0

Choose a tag to compare

@ikondrat ikondrat released this 05 Jun 11:50
522f167

Added

  • Show confusion matrix in evaluation results for classification.
  • Enable picker for annotation source menu
  • Embedding plot: added a "No coloring" option to the "Color by" dropdown to disable coloring.
  • Show ground truth and prediction annotation sources in run details panel
  • Image details view: annotations are now grouped by annotation source.
  • Image details view: annotation source visibility can be toggled.
  • Image details view: pick the target annotation source for new annotations from an on-canvas selector.
  • Added Model Evaluation:
    • Users can manage annotations from different sources, e.g. ground truth and predictions.
    • Users can evaluate per sample metrics for object detection, classification and semantic segmentation
    • Users can sort the image grid by the sample metrics: finding errors quickly.
    • Users can display confusion matrix to find error patterns.

Changed

  • Header menu: show collection name in Annotations entries
  • Embedding plot coloring now supports multiple categories per sample, resolving issues with toggling visibility of categories in the legend.
  • Made annotation and plot colors more distinguishable.
  • General UI improvements.

Fixed

  • Embedding plot: when a coloring has more categories than the legend can display, the extra
    categories are now grouped into an "Other" entry instead of exceeding the available legend slots.
  • Grid top bar no longer overflows its container or covers the grid when a side panel is open;
    it now shrinks with the available width and wraps onto a second line when too narrow.
  • Fixed operations on large datasets (more than ~65,535 samples) failing on PostgreSQL with
    number of parameters must be between 0 and 65535.
  • Fixed cascaded delete for annotations linked by calculated metrics.
  • Grid annotation source selection now persists when navigating to image details and back.

What's Changed

Read more

v1.0.0rc1

v1.0.0rc1 Pre-release
Pre-release

Choose a tag to compare

@ikondrat ikondrat released this 28 May 13:47
64dc7ef

This is a release candidate for v1.0.0.

Please install it explicitly:

pip install lightly-studio==1.0.0rc1
# or
pip install --pre lightly-studio

Added

  • Sample selection respects the current image or video filters.
  • Added sort-by support via GUI.
  • Added similarity selection option.
  • Show confusion matrix in evaluation results for object detection.
  • Added option to select annotation source for class balancing.
  • Added query editor for advanced filtering with custom queries.

Changed

  • Renamed the annotation class field label to class_name across the Python SDK and query language. Breaking change.
  • Renamed the collection_name and name arguments to annotation_source. Breaking change.
  • Renamed selection to sampling. Breaking change.

Fixed

  • Fixed hovering over breadcrumb links on detail pages (annotations, video frames) triggering unwanted navigation.

What's Changed

Read more

v0.4.14

Choose a tag to compare

@horatiualmasan horatiualmasan released this 18 May 15:05
1fa5735

[0.4.14] - 2026-05-18

Added

  • Added ImageDataset.add_annotations_from_coco, add_annotations_from_yolo, and add_annotations_from_labelformat methods to attach named annotation collections to images already in the dataset. Re-using the same name appends; a new name creates a new collection. Enables ingesting ground truth and predictions from multiple sources side-by-side.
  • Added lt_train_script to the Python API (lightly_studio.lt_train_script) to generate a LightlyTrain object detection script from split tags. The helper exports train/val COCO annotation files via dataset.export(...).to_coco_object_detections(...) and writes train_object_detection.py with the exported paths.
  • Image samples can be sorted in the grid using image attributes and metadata.
  • Added drag-and-drop from the image grid into the image search area.
  • Added a select-all button to select all grid items matching the active filters.
  • Added Cmd+A / Ctrl+A keyboard shortcut to select all samples matching the current filters in grid views (images, videos, video frames, annotations).
  • Added API endpoints to fetch only sample IDs with optional filters for images, video frames, and annotations (used by the select-all keyboard shortcut).

Changed

  • Refactored annotation mask rendering to use a shared web worker pool instead of spawning one worker per canvas.
  • Few-shot classifier predictions now land in an annotation collection named after the classifier instead of the generic annotation collection, so multi-prediction views can distinguish classifiers. Rerunning a classifier reuses the same collection.
  • Removed the license key requirement for sampling.

What's Changed

Read more

v0.4.13

Choose a tag to compare

@horatiualmasan horatiualmasan released this 21 Apr 10:33
13899c8

[0.4.13] - 2026-04-21

Added

  • Added a floating selection panel to grid pages.
  • Tags can be created and assigned directly from the sample and annotation detail view.
  • Tags can be created and assigned directly from the side panel in the grid view.
  • Tags can be renamed directly from the side panel in the grid view.
  • Tags can be deleted from the side panel in the grid view.
  • Show Embedding Plot selection as a filter item in the left panel.
  • Added thumbnail quality setting in the Settings dialog. Enable "High Quality Thumbnails" to load compressed JPEG thumbnails in grid views, reducing bandwidth for large datasets.
  • Added Dataset.update_metadata method to update metadata of multiple samples at once.
  • Exposed Pascal VOC segmentation export from the Python interface.
  • Added cloud storage support for Pascal VOC semantic segmentation annotations.

Changed

  • Embedding plot shows only 2 categories Filtered and Not Filtered.

Fixed

  • Fixed annotation editing UX in sample details by showing a Saving indicator while changes are persisted.

What's Changed

Read more

v0.4.12

Choose a tag to compare

@mihnea-necsulescu mihnea-necsulescu released this 01 Apr 09:28
1080e22

[0.4.12] - 2026-04-01

Added

  • Added tooltips to features in annotation items in the right panel to improve usability.
  • Added keyboard navigation (Space + W/A/S/D) for moving within the zoomable image container.
  • Added instance segmentation export to COCO in the GUI.
  • Added semantic segmentation export to PASCAL VOC in the GUI.
  • Added instance segmentation export to YouTube-VIS in the GUI.
  • Added scopes to operators: now operators are tied to certain scopes and also retrieve filters. This enables to execute operators on specific collections, with specific filters, or even on individual samples.
  • Added ImageSample.add_annotations method, as well as VideoSample.add_annotations.
  • Added ImageSample.add_captions method, as well as VideoSample.add_captions.
  • Added SampleMetadata.update method, allowing batch metadata updates of samples.
  • Added support for Python 3.14.
  • Added lightly-studio command line command. Use lightly-studio gui to start the GUI.

Changed

  • Smarter font loading reduces initial download from 500kB to 150kB
  • Reduced grid page size to 32 items to improve grid view performance.
  • Added DatasetTable to the database model, databases from previous versions are incompatible with this one.
  • Improved the documentation structure.

Fixed

  • Speedup frontend by eliminating two redundant initial video list requests.
  • Fixed semantic text search in image and video grids so editing an active query no longer resets or clears the search unexpectedly.
  • Fixed tag creation dialog layout so long tag lists stay scrollable instead of expanding the modal.
  • Improved video details playback so annotation overlays update more smoothly under higher browser latency.
  • Fixed video details playback stopping one frame before the end.

What's Changed

Read more

v0.4.11

Choose a tag to compare

@MalteEbner MalteEbner released this 10 Mar 13:56
6679f5c

[0.4.11] - 2026-03-10

Added

  • Added option to customize the semantic segmentation keyboard shortcut in the settings dialog.
  • Operators lifecycle management: operators now have startup and shutdown methods, which be default pass. The new methods can be used for example to start and stop inference server.

Changed

  • Improved semantic segmentation loading performance in the GUI.

Fixed

  • Navigation menu immediately updates to display the Captions page when the first caption is added.

What's Changed

Full Changelog: v0.4.10...v0.4.11

v0.4.10

Choose a tag to compare

@JonasWurst JonasWurst released this 09 Mar 13:58
b966052

[0.4.10] - 2026-03-09

Added

  • Dataset.export() now supports instance segmentation export to COCO using to_coco_instance_segmentations().
  • Added keyboard shortcuts: to switch between the brush and eraser; to adjust the brush size.

Changed

  • Replaced grid size slider icons with clickable + / buttons for zooming in and out.
  • Restructured the navigation menu to follow the dataset structure. This makes the menu work with group datasets.
  • Disable annotation class text rendering in the detail view by default (can be changed in settings).

Fixed

  • Fixed crosshair helper lines in annotation draw mode so vertical and horizontal lines remain the same thickness when zooming.
  • Settings dialog is now scrollable on small screens.
  • Added button to clear an active text search, matching the existing image search behavior.
  • Fixed "Annotation updated successfully" toast appearing when clicking a bounding box without moving or resizing it.
  • Improved deletion UX in sample details and captions list views: replaced confirmation popups with immediate deletion and Ctrl+Z undo support.
  • Fixed grid not scrolling to the top when text search results are returned from cache.
  • Fixed performance issues where annotations lagged behind the video.
  • Fixed concurrency issue on video datasets.

What's Changed

Full Changelog: v0.4.9...v0.4.10