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

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.

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/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.

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.

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:

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:

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 and helper utilities in 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:


# 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 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 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, while asset retrieval logic resides in 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, 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 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.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →