vlo README

The project's README from github.com/PxTicks/vlo. As one markdown file: README.md.

vlo

Skip to install instructions here, or continue reading.

Vlo is a free, local, open source video editor with AI features.

It is extensible, with the goal of making it a playground for cutting-edge tools which may not yet exist in commercial products. It integrates AI tools with real video editing workflows, including tools for automatic rotoscoping, semantic audio extraction, beat detection etc. It also has a live bridge to ComfyUI, to run any possible ComfyUI workflow, and it includes bespoke workflows tailored for using AI models to edit live on the timeline.

Ultimately I want vlo to be useful for anyone who wants to make videos, so it is free, extensible and open source. It aims to handle the tricky design problems of building a proper frame-accurate nonlinear video editor so that you can build extensions and code (or vibe) your own effects.

Screenshots

Vlo is project-based. All projects are stored locally on your PC, and can be edited whether running vlo locally or on a remote GPU.

landing

It has dedicated generative workflows, and a live bridge to ComfyUI which can be used to edit video anywhere on the timeline.

main_editor

These are combined with traditional video editing features, such as color grading.

color_grade

Demo

A short trailer for vlo made within the app itself: https://www.youtube.com/watch?v=G7HgMuUyfS0

An example video + tutorial: https://www.youtube.com/watch?v=pNBmo5eYRYc

IMPORTANT

Vlo requires chromium-based browsers to work. I have tested in Edge and Chrome, but other Chromium browsers (e.g. Opera) may also function. The are two fundamental reasons for this limitation.

  1. It uses the File System Access API for smooth and efficient file management directly on disk. This allows for a unified file management interface, whether you launch vlo on your own computer or on a remote service (e.g. runpod). You can still access your locally-stored project files. One caveat: it is best to keep your projects in a folder where you can easily find them, as clearing browser data will forget their location.
  2. The media renderer is built on mediabunny, which wraps webcodecs. Webcodecs has implementation differences between firefox and chrome, and during early testing, this led to noticeable lag. The Webcodecs API is the basis of frame-accurate web video, and is indispensable for a project like this.

Features

Releases

See the latest release for release notes, and CHANGELOG.md for version history.

What's next?

v0.4.0 will have a new graph-data model for efficient resource management and parameter sharing (e.g. of masks between clips), as well as graph-based shader execution to enhance the transformations and color grading features (think Davinci Resolve's node-based color page). To make proper use of these, a per-clip workspace mode will be introduced.

Install

Vlo needs three things: the app itself, a Chromium-based browser to run it in, and — for generative AI features only — ComfyUI. The installer sets up the app, and vlo installs, launches and feeds ComfyUI from inside the editor.

The only prerequisite is git. Node.js, Python and uv are downloaded by the installer if your machine does not already have suitable versions. Git is also what vlo uses to fetch ComfyUI and its custom nodes later, so install it first.

Quick start

Linux / macOS:

git clone https://github.com/PxTicks/vlo
cd vlo
./install.sh
./run.sh

Windows:

git clone https://github.com/PxTicks/vlo
cd vlo
install.bat
run.bat

Update

Close vlo, then run the updater from the installation folder. It fetches the latest source and reruns the installer to update dependencies and rebuild the frontend:

./update.sh
update.bat

The updater uses the checkout's existing branch and upstream. Projects, models, virtual environments, runtime settings, and other ignored local data stay where they are.

First launch: connecting ComfyUI

On first start vlo asks how you want to use ComfyUI:

Once vlo knows about a ComfyUI install, the Generate panel offers Launch ComfyUI, which starts the process and connects to it; there is no need to run ComfyUI in a second terminal. If the checkout has no virtual environment, vlo offers to create a managed one.

Models are fetched from inside the app as well:

Models gated on Hugging Face ask for an access token in the download dialog.

Existing ComfyUI installs

Point vlo at the folder containing ComfyUI's main.py, either from the first-launch dialog or from App settings → Runtime settings → ComfyUI install directory. Vlo verifies the folder and enables in-app model downloads for it.

Vlo does not install custom nodes into an environment it did not create, so add the ones the default workflows use yourself. Run this inside whichever Python environment your ComfyUI uses:

python scripts/install-comfyui-nodes.py

The node list, and what the sidecar rules system does with them, is in ComfyUI Integration.

Running vlo in WSL against a ComfyUI on Windows is only partly supported: the install and launch actions are not WSL-aware, so start ComfyUI from Windows and give vlo the /mnt/... path to the same checkout. See docs/todos/known_issues.md.

Manual install (development)

Prerequisites for the manual path: git, Python 3.10 or newer, and Node.js 20.19+ or 22.13+ (includes npm).

It is recommended to set up a Python virtual environment (venv) before installing dependencies and to run all commands within that environment. Use Python 3.10 or newer.

Linux / macOS:

git clone https://github.com/PxTicks/vlo
cd vlo

# Frontend (installs exactly the versions pinned in the lockfiles)
npm ci
npm ci --prefix frontend

# Backend venv (recommended)
python -m venv backend/.venv
source backend/.venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r backend/requirements.txt #or requirements-dev.txt to include tests

cp backend/.env.example backend/.env  # then edit as needed

Windows (PowerShell):

git clone https://github.com/PxTicks/vlo
Set-Location vlo

# Frontend (installs exactly the versions pinned in the lockfiles)
npm ci
npm ci --prefix frontend

# Backend venv (recommended)
python -m venv backend/.venv
backend\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r backend/requirements.txt #or requirements-dev.txt to include tests


Copy-Item backend\.env.example backend\.env

When backend dependencies change, update backend/pyproject.toml and regenerate the pip requirements files with python scripts/sync-backend-requirements.py.

Run

Everyday use

Linux / macOS:

./run.sh

Windows:

run.bat

Opens http://127.0.0.1:6332 in your browser. Pass --no-browser to skip that, or --host= / --port= to change where vlo listens.

Start ComfyUI from the Generate panel's Launch ComfyUI button, or run it yourself if you prefer. By default vlo expects it at http://127.0.0.1:8188; change that in App settings → Runtime settings if it lives elsewhere.

Dev servers

Run both dev servers (Vite + FastAPI with hot reload):

npm run dev

Production build by hand

Linux / macOS:

npm run build
cd backend
python -m uvicorn main:app --host 127.0.0.1 --port 6332

Windows (PowerShell):

npm run build
Set-Location backend
python -m uvicorn main:app --host 127.0.0.1 --port 6332

Configuration

Settings you change in the app — ComfyUI URL, ComfyUI install directory, workflow mode — are persisted under backend/runtime/ and survive restarts. A normal install needs no configuration by hand.

backend/.env (copied from backend/.env.example) is still read at startup, which is useful for headless or scripted setups:

Development

Extensions

You can add extensions to vlo. The extension-template. The extensions subfolder has some skills for ai-assisted development. I don't like putting out ai-written documentation which I haven't reviewed myself, so human-friendly docs still outstanding.

End-to-end tests

The Playwright suite uses an isolated writable in-memory project filesystem and mocked backend services. Install the pinned Chromium build once, then run either the pull-request smoke suite or the full suite:

cd frontend
npx playwright install --with-deps chromium
npm run test:e2e:smoke
npm run test:e2e

Run one file or test while iterating:

npx playwright test e2e/timeline.spec.ts
npx playwright test --grep "adjustment clip"
npm run test:e2e:ui

Set PLAYWRIGHT_BASE_URL to test an already-running server. Local runs use the Vite development server; CI builds first and uses vite preview. Pull requests run @smoke tests, while the complete Chromium suite runs nightly and through manual workflow dispatch.

ComfyUI Integration

It should be possible for the majority of workflows to function with vlo as-is. If you need enhanced functionality, then there is a sidecar rules system, which deals with aspect ratio adjustment, mask processing etc.

For details on how workflows interact with vlo — sidecars, widget exposure, aspect ratio processing, and the generation pipeline — see the Workflow rule guide. The default workflows include working sidecar examples. A custom GPT is available here, into which you can plug in a workflow and request a rules file for if you need more complex functionality.

The following nodes are used in some capacity in the default workflows. A ComfyUI installed by vlo already has them all except ComfyUI-WanVideoWrapper. For any other install, either add them yourself or use the small helper script scripts/install-comfyui-nodes.py, running it in whichever venv ComfyUI uses on your machine.

python scripts/install-comfyui-nodes.py

When vlo launches ComfyUI itself, it passes --enable-manager and --preview-method latent2rgb, so ComfyUI-Manager is available and sampling streams live previews. Flags a checkout's argument parser does not advertise are dropped, so older ComfyUI versions still start. Starting ComfyUI yourself, the equivalent is:

cd /path/to/ComfyUI
python main.py --enable-manager --preview-method latent2rgb

The latent2rgb preview method does not require a model in ComfyUI/models/vae_approx.

Acknowledgements

The following three open source projects are central to vlo:

The work of the following users has also been valuable:

License

Vlo is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). See LICENSE for the full text.

Contributing

Contributions are welcome, bug fixes especially (there will need to be plenty, given the stage of development). By submitting a contribution to this repository, you agree to the Individual Contributor License Agreement. To summarise the agreement in short: you retain copyright over your own code, but you give licence for it to be included as part of the vlo codebase hereafter. See CONTRIBUTING.md for the contribution process.

vlo (PxTicks/vlo)

Searching Database…

247 ·GitHub
What is this?Vlo is a free, open-source, local video editor with built-in AI features like automatic rotoscoping, audio stem separation, and beat detection, plus a live bridge to ComfyUI for running any generative AI workflow directly on the timeline.
Is this a desktop app or something I open in a browser?Vlo is not an Electron-style desktop app: an installer sets it up and runs a local server, and you then open and use it in a Chromium-based browser (Edge or Chrome).
How do I get vlo running?Install git first, then run the quick-start installer script (separate versions for Linux/macOS and Windows); it downloads Node.js, Python and uv automatically and sets up the app, launching it in your browser.
Do I need ComfyUI and a GPU to use it?ComfyUI is only required for the generative AI features (SAM2 masking, stem separation, image/video generation); you can choose 'Continue without generative AI' on first launch and still use normal editing. A GPU helps for SAM2 and ComfyUI but the SAM2 device setting can be set to CPU.
Why does it only support Chrome and Edge, not Firefox?Vlo relies on the File System Access API for local project file management and on WebCodecs (via the mediabunny renderer) for frame-accurate playback; Firefox's WebCodecs implementation caused noticeable lag in testing, so Chromium-based browsers are required.
Does the installer work on Windows as well as Mac and Linux?Yes, the quick-start installer and update scripts both provide separate Linux/macOS and Windows (PowerShell) instructions, and the manual development setup also lists commands for both.
What does the live ComfyUI bridge actually let me do?It lets you send images, videos, or timeline selections straight to ComfyUI to run any workflow for generation, inpainting or upscaling, with automatic aspect-ratio handling so results fit back into the timeline.
What is SAM2 used for inside vlo?SAM2 provides a points-based masking editor with automatic cropping and stitching, used for tasks like video inpainting.
Can I write my own extensions for vlo?Yes, there is an extension template and a subfolder with skills for AI-assisted development, though vlo's maintainer notes human-reviewed docs for this are still outstanding.
How is vlo different from a traditional editor like Premiere or Resolve?Vlo bakes AI generation directly into the nonlinear timeline via a ComfyUI bridge (masking, inpainting, stem separation, beat detection) alongside standard color grading and keyframe tools, rather than treating AI as a separate plugin step.
Creator
PxTicks
Size
66 MB
Stars
247
Age
7mo
Commits · 90 Days