No description
  • JavaScript 55.9%
  • CSS 24.1%
  • HTML 20%
Find a file
2026-03-31 23:42:20 +00:00
public Add branded visual assets for UI and README 2026-03-31 23:42:20 +00:00
.env.example Build ComfyUI web interface MVP 2026-03-31 23:29:11 +00:00
.gitignore Build ComfyUI web interface MVP 2026-03-31 23:29:11 +00:00
package.json Build ComfyUI web interface MVP 2026-03-31 23:29:11 +00:00
README.md Add branded visual assets for UI and README 2026-03-31 23:42:20 +00:00
server.js Build ComfyUI web interface MVP 2026-03-31 23:29:11 +00:00

comfy-webinterface

Comfy Webinterface hero

comfy-webinterface is a lean control surface for ComfyUI. It gives you a local web app with:

  • a server-side proxy to your ComfyUI instance
  • a focused UI for pasting or importing workflow API JSON
  • queue submission and interrupt actions
  • prompt history polling with image previews

Visuals

Queue empty state

Outputs empty state

Features

  • Works with exported ComfyUI API workflows or full payloads containing prompt
  • Avoids browser-side direct calls to ComfyUI by proxying requests through the local Node server
  • Tracks queue and health state
  • Pulls output images back into the UI from ComfyUI history

Requirements

  • Node.js 20+
  • A running ComfyUI instance, typically at http://127.0.0.1:8188

Setup

  1. Copy .env.example to .env if you want custom values.
  2. Export the variables you need:
export PORT=4173
export COMFYUI_BASE_URL=http://127.0.0.1:8188
  1. Start the app:
npm run start
  1. Open http://localhost:4173

Scripts

  • npm run start starts the server
  • npm run dev starts the server in watch mode
  • npm run check runs a syntax check for the server and frontend code

API behavior

The local app exposes:

  • GET /api/config
  • GET /api/health
  • GET /api/queue
  • GET /api/history/:promptId
  • POST /api/prompt
  • POST /api/interrupt
  • GET /api/view?...

Workflow input

Paste either:

  1. a raw ComfyUI API workflow object
  2. or a full payload shaped like:
{
  "client_id": "optional-client-id",
  "prompt": {
    "...": "workflow nodes"
  }
}

If your JSON includes a workflow key, the server forwards it as extra_pnginfo.workflow when possible.