Reopen the app later with lightly-studio gui instead of re-running this script.

September 21, 2026 ยท View on GitHub

LightlyStudio logo

Curate, Annotate, and Manage Your Data in LightlyStudio.

PyPI python PyPI version License Docs Open In Colab


LightlyStudio: an image grid with annotations next to an embedding plot, a cluster selection filtering the grid, and the annotation editor open on one image

The embedding plot shows how images relate to each other, with a preview on hover. A lasso selection filters the grid to one cluster. A search for "coffee" finds a match, and the annotation editor opens to label it.

โšก Works smoothly with 2M+ images, embeddings included, on a single MacBook (M1, 16GB RAM).

๐Ÿš€ Try it in 60 seconds

LightlyStudio runs on your computer and opens in your browser. The following command downloads an example dataset with images, annotations, and evaluation results โ€” no account needed.

pip install lightly-studio
lightly-studio quickstart

Workflows

Image Datasets
Image Dataset
Video Dataset
Video Dataset
Annotate
Annotation
Curate
Curation
Plugins
Plugins
Model Evaluation
Model Evaluation

Example workflows

LightlyStudio is a browser app that runs on your own computer. Load your data into the local database with a Python script, then start the server and explore it in your browser.

Index a COCO dataset

Create a file named example_coco.py:

import lightly_studio as ls

# Download the example dataset (will be skipped if it already exists)
dataset_path = ls.utils.download_example_dataset(download_dir="dataset_examples")

dataset = ls.ImageDataset.load_or_create()
dataset.add_samples_from_coco(
    annotations_json=f"{dataset_path}/coco_subset_128_images/instances_train2017.json",
    images_path=f"{dataset_path}/coco_subset_128_images/images",
)

# Start the UI server on localhost:8001.
# Pass `host` and `port` parameters to customize it.
# Reopen the app later with `lightly-studio gui` instead of re-running this script.
ls.start_gui()

Run python example_coco.py and open the printed URL to inspect images with their annotations.

To import COCO segmentation masks instead of object detections, pass annotation_type=ls.AnnotationType.SEGMENTATION_MASK to add_samples_from_coco().

Index a folder of images

Create a file named example_image.py:

import lightly_studio as ls

# Download the example dataset (will be skipped if it already exists)
dataset_path = ls.utils.download_example_dataset(download_dir="dataset_examples")

# Index the images, create embeddings, and store everything in the local database.
dataset = ls.ImageDataset.load_or_create()
dataset.add_images_from_path(
    path=f"{dataset_path}/coco_subset_128_images/images",
)

# Start the UI server on localhost:8001.
# Pass `host` and `port` parameters to customize it.
ls.start_gui()

Run python example_image.py and open the printed URL in your browser.

Other starting points: YOLO datasets, video folders, custom annotations, model evaluation, notebooks, and more in the docs.

๐Ÿ“š Tutorials

Step-by-step guides covering complete workflows โ€” from raw, unlabeled data to a trained and evaluated model:

A selection of features

Set up a dataset

Work with your data

๐Ÿ Python Interface

Everything in LightlyStudio is scriptable: index datasets, query and edit samples, sample subsets, and export the result. See the API reference.

๐Ÿค Contribute

We welcome contributions! Please check our issues page for current tasks and improvements, or propose new issues yourself. See CONTRIBUTING.md for development setup and validation instructions.

๐Ÿ’ฌ Contact

Website
Discord
GitHub
X
YouTube
LinkedIn