Skip to content

Comfy-Org/ComfyUI-Desktop-2.0-Beta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

374 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ComfyUI Desktop 2.0

Latest Release CI License

An Electron app for managing multiple ComfyUI installations.

Related Repositories

Downloads

Windows

Windows x64 Windows ARM64

macOS

macOS Apple Silicon

Linux

Linux AppImage x64 Linux AppImage ARM64 Linux DEB x64 Linux DEB ARM64

Running

Windows

Run the NSIS installer (.exe) and launch from the Start Menu or desktop shortcut.

macOS

Open the .dmg, drag ComfyUI Desktop 2.0 to Applications, and launch from there.

Linux

.deb (Debian/Ubuntu):

sudo apt install ./ComfyUI-Desktop-2.0-*.deb

Then launch from your application menu.

AppImage:

chmod +x ComfyUI-Desktop-2.0-*.AppImage
./ComfyUI-Desktop-2.0-*.AppImage --no-sandbox

Development

Prerequisites

  • Node.js v22 LTS or later
  • pnpm v10 or later (via Corepack recommended)

We recommend using nvm (or nvm-windows) to manage Node versions:

# Install and use Node 22
nvm install 22
nvm use 22

# Verify
node --version   # should print v22.x.x

# Enable pnpm via Corepack (bundled with Node)
corepack enable
pnpm --version

Stack

Project structure

src/
  main/          # Electron main process (TypeScript)
  preload/       # Preload scripts (context bridge)
  renderer/src/  # Vue 3 renderer
    components/  # Reusable UI components
    composables/ # Vue composables (useModal, useTheme, …)
    stores/      # Pinia stores (session, installation)
    views/       # Top-level views and modal views
    types/       # Renderer-side type re-exports
  types/         # Shared IPC types (single source of truth)
locales/         # i18n translation files
sources/         # Installation source plugins

Setup

git clone https://github.com/Comfy-Org/ComfyUI-Desktop-2.0-Beta.git
cd ComfyUI-Desktop-2.0-Beta
pnpm install

Run in development

Windows / macOS:

pnpm run dev

Linux:

./linux-dev.sh

Type checking

pnpm run typecheck          # both main + renderer
pnpm run typecheck:node     # main process only
pnpm run typecheck:web      # renderer only

Linting

pnpm run lint           # check for lint errors
pnpm run lint:fix       # auto-fix lint errors
pnpm run format         # format with Prettier
pnpm run format:check   # check formatting without writing

Testing

pnpm test               # run all unit tests
pnpm run test:watch     # run in watch mode

Build for distribution

# Platform-specific
pnpm run build:win      # Windows (NSIS installer)
pnpm run build:mac      # macOS (DMG)
pnpm run build:linux    # Linux (AppImage, .deb)

Build output is written to the dist/ directory.

Releasing

Pushing a version tag to main triggers the ToDesktop Build & Release workflow. It runs a ToDesktop cloud build and creates a draft GitHub Release with platform download links. The workflow enforces that the tag matches the version in package.json.

Release steps

  1. Bump the version — create a branch, update the version field in package.json (e.g. 0.4.40.4.5), and open a PR:

    git checkout main && git pull origin main
    git checkout -b release/v0.4.5
    # Edit package.json "version": "0.4.5"
    git add package.json
    git commit -m "chore: bump version to 0.4.5"
    git push origin release/v0.4.5
    # Open a PR targeting main
  2. Merge the PR — once CI passes and the PR is approved, merge it into main.

  3. Tag and push — pull the merged main, create the tag, and push it to trigger the build:

    git checkout main && git pull origin main
    git tag v0.4.5
    git push origin v0.4.5
  4. Publish — once the build finishes, go to the Releases page to review and publish the draft.

Data Locations

On Windows and macOS, all app data lives under the standard Electron userData path.

Dev vs. production path difference: Electron derives the userData directory name from the app's name. In development (pnpm run dev), it uses the name field from package.json (comfyui-desktop-2), while packaged builds use the productName from electron-builder.yml (ComfyUI Desktop 2.0). This means the two environments use separate data directories:

Windows macOS Linux
Dev %APPDATA%\comfyui-desktop-2 ~/Library/Application Support/comfyui-desktop-2 ~/.config/comfyui-desktop-2
Production %APPDATA%\ComfyUI Desktop 2.0 ~/Library/Application Support/ComfyUI Desktop 2.0 ~/.config/ComfyUI Desktop 2.0

On Linux, the app follows the XDG Base Directory Specification:

Purpose Linux Path
Config (settings.json) $XDG_CONFIG_HOME/comfyui-desktop-2 (default ~/.config/comfyui-desktop-2)
Data (installations.json) $XDG_DATA_HOME/comfyui-desktop-2 (default ~/.local/share/comfyui-desktop-2)
Cache (download-cache/) $XDG_CACHE_HOME/comfyui-desktop-2 (default ~/.cache/comfyui-desktop-2)
State (port-locks/) $XDG_STATE_HOME/comfyui-desktop-2 (default ~/.local/state/comfyui-desktop-2)
Default install dir ~/ComfyUI-Installs

Existing files at the old ~/.config/comfyui-desktop-2 location are automatically migrated on first launch.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors