Profile
Back to NewsBack
GitHub Trending 5 min
Reader Mode
lightly-ai/lightly-studio: LightlyStudio - The Unified Data Platform for Multimodal ML

lightly-ai/lightly-studio: LightlyStudio - The Unified Data Platform for Multimodal ML

9 hours ago

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

🗄️ Local cloud storage development

Floci emulates AWS S3 locally, and Floci GCP emulates GCS — no cloud account needed.

AWS S3 (Floci)

# Start Floci (creates the default S3 bucket)
make start-floci

Upload MCAP files and list what's available

make setup-floci FLOCI_MCAP_FILES="~/data/front.mcap ~/data/rear.mcap"

List uploaded recordings without re-uploading

make list-floci-mcaps

Stop and remove the container

make stop-floci

Point LightlyStudio at the local S3 bucket before starting the server:

AWS_ACCESS_KEY_ID=test \
AWS_SECRET_ACCESS_KEY=test \
AWS_DEFAULT_REGION=us-east-1 \
AWS_ENDPOINT_URL=http://localhost:4566 \
  lightly-studio ...

GCP Cloud Storage (Floci GCP)

# Start Floci GCP (creates the default GCS bucket)
make start-floci-gcp

Upload MCAP files and list what's available

make setup-floci-gcp FLOCI_GCP_MCAP_FILES="~/data/front.mcap ~/data/rear.mcap"

List uploaded recordings without re-uploading

make list-floci-gcp-mcaps

Stop and remove the container

make stop-floci-gcp

Point LightlyStudio at the local GCS bucket before starting the server:

STORAGE_EMULATOR_HOST=http://localhost:4588 \
  lightly-studio ...

🐍 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</a>
Discord</a>
GitHub</a>
X</a>
YouTube</a>
LinkedIn</a>

Chat with me