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
这是什么?Vlo 是一款免费开源的本地视频编辑器,内置自动 rotoscoping(动态遮罩)、音频分轨分离和节拍检测等 AI 功能,还有通往 ComfyUI 的实时桥接,可直接在时间线上运行任何生成式 AI 工作流。
这是桌面应用,还是在浏览器里打开的东西?Vlo 不是 Electron 式的桌面应用:安装器负责配置并运行一个本地服务器,然后你在基于 Chromium 的浏览器(Edge 或 Chrome)里打开并使用它。
怎么让 vlo 跑起来?先安装 git,然后运行快速入门安装脚本(Linux/macOS 和 Windows 各有版本);它会自动下载 Node.js、Python 和 uv,配置好应用并在你的浏览器中启动。
使用它需要 ComfyUI 和 GPU 吗?只有生成式 AI 功能(SAM2 遮罩、分轨分离、图像/视频生成)需要 ComfyUI;首次启动时可以选择“Continue without generative AI”,照样进行常规剪辑。GPU 对 SAM2 和 ComfyUI 有帮助,但 SAM2 的 device 设置也可以设为 CPU。
为什么它只支持 Chrome 和 Edge,不支持 Firefox?Vlo 依靠 File System Access API 管理本地项目文件,依靠 WebCodecs(通过 mediabunny 渲染器)实现逐帧精确播放;测试中 Firefox 的 WebCodecs 实现有明显卡顿,因此必须使用基于 Chromium 的浏览器。
安装器在 Windows、Mac 和 Linux 上都能用吗?可以。快速入门安装器和更新脚本都分别提供 Linux/macOS 与 Windows(PowerShell)说明,手动开发配置里也列出了两者的命令。
实时 ComfyUI 桥接具体能让我做什么?它让你把图像、视频或时间线选区直接发送给 ComfyUI,运行任何生成、局部重绘或放大工作流,并自动处理宽高比,让结果无缝放回时间线。
vlo 里 SAM2 用来做什么?SAM2 提供基于打点的遮罩编辑器,带自动裁剪和拼接,用于视频局部重绘等任务。
我能为 vlo 编写自己的扩展吗?可以。有一个扩展模板和一个包含 AI 辅助开发技能的子文件夹,不过 vlo 的维护者指出,这部分经人工审校的文档仍未完成。
vlo 和 Premiere、Resolve 这类传统编辑器有什么不同?Vlo 通过 ComfyUI 桥接把 AI 生成(遮罩、局部重绘、分轨分离、节拍检测)直接融入非线性时间线,并配有标准的调色和关键帧工具,而不是把 AI 当作单独的插件步骤。
Creator
PxTicks
Size
66 MB
Stars
247
Age
7mo
Commits · 90 Days