lightly-studio is a free, open source machine learning infrastructure project written in Python and released under Apache-2.0. It has 889 GitHub stars, 34 forks and 53 open issues, and was last pushed 3 hours ago. On this registry it ranks #51 of 57 tracked projects in Machine Learning Infrastructure, with 5 head-to-head comparisons available.

What is lightly-studio?

LightlyStudio is an Apache-2.0 Python application that opens in a browser and lets computer-vision and MLOps practitioners curate, annotate, and manage image and video datasets entirely on their own machine, with no account and no data leaving the local system.

What it is

LightlyStudio is a unified data platform for multimodal machine learning, written in Python and distributed under the Apache-2.0 licence. It lives in the AI and machine learning infrastructure ecosystem, tagged for computer vision, curation, image labeling, and MLOps, and its documentation is hosted at docs.lightly.ai/studio/. The project presents itself as a browser app that runs on the user's own computer: a Python script loads data into a local database, the server starts, and the interface is explored in a browser window.

The concrete problem it solves is the handling and inspection of training data before and after model training. The README states plainly that it is local only, so images and datasets never leave the machine, which places it in the position normally occupied by hosted data-curation services. In practice it replaces the combination of ad-hoc scripts and cloud uploads used to look at a dataset, find clusters, label samples, and check model results. It indexes a folder of images or imports an existing COCO annotation file in a single Python call, then exposes that same data through a visual interface.

Key capabilities

  • The embedding plot shows how images relate to each other, with a preview on hover, and a lasso selection filters the grid down to one cluster.
  • Text search over the dataset, demonstrated in the README with a search for "coffee" that finds a match and opens the annotation editor for labeling.
  • Scale: the README reports smooth operation with 2M+ images, embeddings included, on a single MacBook with M1 and 16GB RAM.
  • Dataset loading through the Python API, using ls.ImageDataset.load_or_create(), add_images_from_path(), and add_samples_from_coco() with annotations_json and images_path arguments.
  • COCO segmentation mask support through annotation_type=ls.AnnotationType.SEGMENTATION_MASK, alongside object detections.
  • Local UI server started with ls.start_gui(), defaulting to localhost:8001 and accepting host and port parameters, with later reopening through lightly-studio gui.
  • Plugin support, including SAM autolabeling, with Python 3.10 recommended for plugin compatibility.

Who uses it and how

  • Individual computer-vision engineers working on a laptop, since the documented target is a single MacBook M1 with 16GB RAM handling 2M+ images with embeddings.
  • Teams preparing object-detection training data, following the tutorial that curates a traffic CCTV dataset for YOLO training from raw images to a trained model.
  • Users who already hold annotated data, importing COCO datasets to inspect images together with their annotations rather than writing inspection scripts.
  • Video dataset workflows, covered by a dedicated video dataset guide and video folder starting point.
  • Notebook users who want no install at all, opening the quickstart in Colab instead of installing locally.

Getting started

Install with pip install lightly-studio and run lightly-studio quickstart, which downloads an example dataset containing images, annotations, and evaluation results with no account required. The Colab quickstart notebook is the no-install alternative.

How it compares

No list of paid products replaced by this project is provided in the facts, and no similar tools are named either. It therefore stands alone in this registry.

When to use it — and when not to

A self-hoster must run a local Python environment, with Python 3.9 to 3.14 on Windows, Linux, or macOS, and must maintain the local database and the embeddings computed during indexing. Anyone who needs a shared, multi-user hosted deployment should not pick it, because the documented mode is local only and the README describes no server-side or collaborative option. The project also carries 53 open issues, and its README excerpt defers substantial detail to external documentation, so prospective users should expect to read the docs site rather than the repository front page.

project readme (upstream, from github) — read inline

LightlyStudio logo

Curate, Annotate, and Manage Your Data in LightlyStudio.

PyPI python PyPI version License Docs Open In Colab


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

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

readme truncated — read the full docs on github

Frequently asked questions

Is lightly-studio free to use?

lightly-studio is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does lightly-studio do?

LightlyStudio - The Unified Data Platform for Multimodal ML

What is lightly-studio written in?

lightly-studio is primarily written in Python. Its source is publicly available at https://github.com/lightly-ai/lightly-studio, and it has 889 GitHub stars.