/labelflow

The open platform for image labelling

Primary LanguageTypeScriptOtherNOASSERTION


babel

LabelFlow

The open platform for image labeling
Try it now »

Explore docs · Report Bug · Request Feature · Join the Community



About

LabelFlow Screenshot

Visual Data for absolutely everyone

LabelFlow is an open platform for image labeling. Its source is entirely available on this Github repository. You are in charge of your own data and workflows.

LabelBox, Roboflow, v7labs and other Image labeling tools are are awesome. They made our lives massively easier when we needed to label data. However, most tools are very limited in terms of control and customisations.

That's where LabelFlow.ai comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control over your images and labels.

Labelflow.ai is the parent company developing LabelFlow, and commercializing a Hosted version.

You can build LabelFlow from source, and serve it from your machine. Read how to deploy it yourself.

Built With

  • TypeScript: Main programming language of the web app
  • ReactJS: View library of the web app
  • NextJS: Web framework of the web app
  • GraphQL: API, communication between client and server
  • NodeJS: Javascript runtime for development and production on docker
  • Python for the machine learning server
  • PyTorch for the machine learning server

Stay Up-to-Date

LabelFlow officially launched as v.0.1 on 7th of September, however a lot of new features are coming. Watch releases of this repository to be notified for future updates:

Subscribe

(back to top)

Getting Started

LabelFlow.ai hosted version

You can use our hosted version now for free, at labeflow.ai.

Serving your own LabelFlow

This guide walks you through the steps needed to run a production-ready version of LabelFlow locally.

Before continuing, please have a look at our License ⬅️.

Prerequisites

You need to have below listed softwares installed on your machine to run labelflow.

  • ✔️ Git 📦
  • ✔️ Node (v15.5.0 or above) 📦
  • ✔️ Yarn (v1.22.4 or above) 📦

Running LabelFlow on your machine

  1. Clone the repository on your machine using

    git clone https://github.com/labelflow/labelflow.git
  2. Go into the labelflow folder

    cd labelflow
  3. Install dependencies using yarn

    yarn install
  4. Build the web app

    yarn build:web
  5. Start the web server

    yarn start:web
  6. Open your browser and visit http://localhost:3000.

A note on environment variables

You can find the full list of environment variables needed for a fully featured app in the .env.development file. As you can see this file contains variables that are secrets and that should not be committed to your repo. In order to still be able to have secrets you should create:

  • an .env.local file at the root of the repo and make a copy of it inside the folders typescript/db, typescript/infrastructure and typescript/db. We recommend doing symlinks between the files to avoid having to copy/paste again each file when modifying it

  • an .env.production file that will be a copy of .env.development but with the env var values set to the production ones. This file won't be committed either so you can safely store your secrets here

(back to top)

Roadmap

(back to top)

License

LabelFlow sources are entirely available on Github, and LabelFlow is primarily distributed under the terms of the Business Source License (BSL), like our friends at MariaDB, Sentry and CockroachDB.

As they explain very well, the BSL is the closest thing to open source that we can do without being threatened by external companies. LabelFlow source is available on this repository, you can deploy LabelFlow entirely on premises, and you can contribute to LabelFlow here!

See LICENSE for details.

(back to top)

Contact

(back to top)