# How to Configure the Front-End Version for Testing in ComfyUI

> Learn to configure the front-end version in ComfyUI using --front-end-version for GitHub releases or --front-end-root for local builds. Test changes efficiently.

- Repository: [Comfy Org/ComfyUI](https://github.com/Comfy-Org/ComfyUI)
- Tags: how-to-guide
- Published: 2026-02-26

---

**Use the `--front-end-version` argument to download and serve a specific GitHub release of the ComfyUI web interface, or `--front-end-root` to point to a local build directory for rapid iteration.**

ComfyUI decouples its Python backend from the React-based front-end, allowing developers to test any version of the user interface without redeploying the server. According to the `Comfy-Org/ComfyUI` source code, you can switch between official releases, daily builds, or local development checkouts using two command-line flags defined in [`comfy/cli_args.py`](https://github.com/Comfy-Org/ComfyUI/blob/main/comfy/cli_args.py).

## Command-Line Options for Front-End Selection

The launcher accepts two mutually exclusive strategies for locating front-end assets. These options are parsed during startup in [[`comfy/cli_args.py`](https://github.com/Comfy-Org/ComfyUI/blob/main/comfy/cli_args.py)](https://github.com/Comfy-Org/ComfyUI/blob/master/comfy/cli_args.py#L89-L101) (lines 89‑101).

### Using `--front-end-version` for Remote Releases

Pass a GitHub coordinate in the format `<owner>/<repo>@<tag>` to fetch compiled JavaScript automatically. ComfyUI contacts the GitHub Releases API, downloads the asset, and extracts it to a temporary directory before mounting it on the static file server.

```bash
python main.py --front-end-version Comfy-Org/ComfyUI_frontend@latest

```

Valid tag examples include `latest` (the most recent daily build), semantic versions like `1.2.2`, or dated releases such as `2024.07`. The default value if unspecified is `comfyanonymous/ComfyUI@latest`.

### Using `--front-end-root` for Local Development

Bypass network requests entirely by pointing the server at an existing `web/` directory on your filesystem. This is essential when you have modified the front-end source code and rebuilt the bundle locally.

```bash
python main.py --front-end-root /path/to/ComfyUI_frontend/web

```

The launcher skips the `download_frontend()` utility call and mounts the provided path directly, enabling instant refresh cycles when iterating on UI changes.

## Testing Specific Front-End Versions

The ability to pin or override the front-end version makes it straightforward to reproduce bugs against historical releases or validate compatibility with new features.

### Testing the Latest Daily Build

To run the bleeding-edge interface published by the `Comfy-Org/ComfyUI_frontend` repository:

```bash
python main.py \
    --front-end-version Comfy-Org/ComfyUI_frontend@latest

```

### Testing a Specific Release Tag

Lock the UI to a known good state by specifying an exact semantic version:

```bash
python main.py \
    --front-end-version Comfy-Org/ComfyUI_frontend@1.2.2

```

This command triggers the download logic in the startup sequence (implemented in [`app.py`](https://github.com/Comfy-Org/ComfyUI/blob/main/app.py) and helper utilities in [`comfy/utils/download.py`](https://github.com/Comfy-Org/ComfyUI/blob/main/comfy/utils/download.py)) to retrieve that specific release asset before the FastAPI server begins accepting connections.

### Testing Local Changes

For front-end developers who need to test modifications before submitting a pull request:

```bash

# Clone and build the frontend repository

git clone https://github.com/Comfy-Org/ComfyUI_frontend.git
cd ComfyUI_frontend
npm install && npm run build   # outputs to web/

# Launch ComfyUI against the local build

cd ../ComfyUI
python main.py \
    --front-end-root $(pwd)/../ComfyUI_frontend/web

```

This workflow eliminates download latency and lets you verify changes immediately by restarting the Python server.

## How Front-End Resolution Works

Understanding the internal pipeline helps debug configuration issues.

1. **CLI Parsing**: `argparse` in [`comfy/cli_args.py`](https://github.com/Comfy-Org/ComfyUI/blob/main/comfy/cli_args.py) registers `--front-end-version` and `--front-end-root`. If both are omitted, the default fallback points to the legacy `comfyanonymous/ComfyUI@latest` coordinate.
2. **Version Resolution**: The startup module validates that the version string matches the `<owner>/<repo>@<tag>` pattern.
3. **Asset Acquisition**: Unless `--front-end-root` is provided, the core code invokes `comfy.utils.download_frontend()` to fetch the release ZIP from GitHub, verify its integrity, and unzip it into a cache directory.
4. **Static Mounting**: The resolved `frontend_path` (whether downloaded or local) is mounted at the root (`/`) of the HTTP server, serving [`index.html`](https://github.com/Comfy-Org/ComfyUI/blob/main/index.html) and bundled JavaScript to the browser.

## Summary

- Pass **`--front-end-version Comfy-Org/ComfyUI_frontend@<tag>`** to download and test any published release without manual file management.
- Use **`--front-end-root <path>`** to serve a locally compiled `web/` directory, skipping network requests and enabling rapid UI development.
- The version string must follow the **`<owner>/<repo>@<tag>`** format recognized by GitHub Releases.
- Configuration is handled in **[`comfy/cli_args.py`](https://github.com/Comfy-Org/ComfyUI/blob/main/comfy/cli_args.py)**, while asset retrieval logic resides in **[`comfy/utils/download.py`](https://github.com/Comfy-Org/ComfyUI/blob/main/comfy/utils/download.py)** and the main startup sequence.

## Frequently Asked Questions

### How do I revert to the default front-end after testing a specific version?

Simply restart ComfyUI without the `--front-end-version` or `--front-end-root` arguments. The launcher defaults to `comfyanonymous/ComfyUI@latest` as specified in [`comfy/cli_args.py`](https://github.com/Comfy-Org/ComfyUI/blob/main/comfy/cli_args.py), fetching the latest stable release automatically.

### Can I use a forked front-end repository for testing?

Yes. As long as the repository follows the standard release asset structure (compiled JavaScript in a downloadable archive), you can pass your fork's coordinates: `--front-end-version YourUsername/YourFork@latest`. The `download_frontend()` utility fetches from any public GitHub repository matching the `<owner>/<repo>@<tag>` pattern.

### Does the front-end version affect the backend API compatibility?

Generally, the front-end and backend are versioned independently, but specific features may require matching versions. If you encounter API errors after switching front-end versions, consult the release notes for `Comfy-Org/ComfyUI_frontend` to verify backend requirements, or test against the `latest` tag which typically maintains synchronization with the current backend master branch.

### Where are downloaded front-end files cached?

ComfyUI downloads release assets into a temporary directory managed by the startup sequence (referenced in [`app.py`](https://github.com/Comfy-Org/ComfyUI/blob/main/app.py) and related modules). These files persist for the duration of the server process. To use a persistent or customized location, clone the repository manually and use `--front-end-root` pointing to your local `web/` directory instead of relying on automatic downloads.