INSTACOMFY
Self-hosted AI image generation — clean UI over a GPU pipeline
The Problem
ComfyUI is the gold standard for local diffusion inference — precise node-graph control, ControlNet support, LoRA stacking, custom samplers. It is also, without ceremony, completely hostile to anyone who didn't build it. The interface is a graph of floating boxes connected by colored wires. Prompts live in text nodes. Queue management is a sidebar afterthought. Running a generation means knowing which node holds the positive conditioning, which checkpoint the model node expects, and why the VAE might be mismatched.
For a studio that generates images daily — product mockups, concept exploration, reference art — this friction compounds fast. Every session begins with reorienting the graph, reconnecting broken wires, and hoping nothing in the workflow JSON changed between ComfyUI updates.
The Solution
InstaComfy puts a clean, intentional web interface in front of the ComfyUI process. The user sees a prompt field, a model selector, and generation controls — nothing else. Under the hood, the frontend serializes those inputs into a valid ComfyUI workflow JSON, posts it to ComfyUI's queue API, and polls for completion. When the image is ready, it fetches the output bytes and renders them inline. The entire ComfyUI node graph is hidden behind a typed abstraction layer — it only surfaces when a power user explicitly requests graph access.
Raw ComfyUI is for engineers. InstaComfy is for everyone who needs the output, not the plumbing.
The platform runs in production under a process manager, with a Next.js frontend and ComfyUI managed as a supervised background process. The supervisor handles automatic restarts on crash, log rotation, and startup persistence — so generation capacity survives a reboot without manual intervention. A separate dev instance runs in parallel, gated from the main queue, used for workflow experimentation without touching the production surface.
Craft Details
Queue management. ComfyUI processes one job at a time. InstaComfy exposes this honestly: the UI shows queue position and estimated wait, derived from ComfyUI's /prompt endpoint's exec_info payload. Concurrent requests don't race — they queue server-side and the frontend updates reactively via polling. No jobs are silently dropped.
Prod / dev separation. Two separately supervised processes — one prod, one dev — run side by side and point at independent ComfyUI output directories. A workflow change is tested in dev, verified on the GPU, then promoted to prod without touching the running prod process.
Iteration to v3. v1 was a proof-of-concept: one hardcoded workflow, one model, prompt in, image out. v2 added model switching and sampler controls, surfacing the knobs that actually matter to output quality without exposing the graph. v3, the current production version, introduced LoRA selection, aspect ratio presets, and a generation history panel — enough control to replace the raw UI for 95% of daily usage.
Stack
Result
InstaComfy is the studio's daily image generation surface. The ComfyUI node graph hasn't been opened in production use since v2 shipped. Generation sessions that previously required 10–15 minutes of workflow orientation now start in under thirty seconds — open the UI, type a prompt, pick a model, generate. The GPU does the rest.
The architecture is intentionally transparent about what it is: a disciplined UI layer, not a reimplementation. When ComfyUI adds a new capability, it surfaces in InstaComfy within one abstraction update. The underlying inference engine never needed to change.
The right abstraction level isn't the one that hides the most — it's the one that hides exactly what doesn't serve the user.