Extensions/ComfyUI Deploy
ComfyUI Extension

ComfyUI Deploy

Open source comfyui deployment platform, a vercel for generative workflow infra.

By BennyKok·Created 3 years ago·Updated 10 months ago· 1,529
BennyKok/comfyui-deploy
Nodes29
On cloudLocal install
Category🔗ComfyDeploy
Stars1,529
Updated10 months ago

Nodes (29)

EXR Output (ComfyDeploy)

Save HDR EXR output from a deployed workflow — the export half of the HDR pair

🔗ComfyDeploy
File Output (ComfyDeploy)

Ship any file out of a deployed workflow — zips, PSDs, CSVs, whatever

🔗ComfyDeploy
Image Output (ComfyDeploy)

The SaveImage that actually gets your image back out of ComfyDeploy

🔗ComfyDeploy
Text Output (ComfyDeploy)

Return text from a deployed workflow — prompts, captions, JSON payloads

🔗ComfyDeploy
Image Websocket Input (ComfyDeploy)

Receive a live image from a web client — the input half of realtime ComfyUI

🔗ComfyDeploy
Image Websocket Output (ComfyDeploy)

Stream images to a web client mid-generation — no waiting for the full run

🔗ComfyDeploy
External Audio (ComfyUI Deploy)

Load audio into a deployed workflow from a URL or file path

🔗ComfyDeploy
External Boolean (ComfyUI Deploy)

The toggle your deployed API callers will actually use

🔗ComfyDeploy
External Checkpoint (ComfyUI Deploy)

Let API callers pick the checkpoint — or hot-download one from a URL

🔗ComfyDeploy
External Enum

The dropdown your API callers actually want — a real menu, not a free-text box

🔗ComfyDeploy
External EXR (ComfyUI Deploy)

Feed HDR EXR files into a workflow — tonemapping included, no Photoshop trip required

🔗ComfyDeploy
External Face Model (ComfyUI Deploy)

Feed ReActor face-swap models into a deployed workflow — without hand-copying files

🔗ComfyDeploy
External File (ComfyUI Deploy)

Drop an arbitrary file into a deployed workflow by URL

🔗ComfyDeploy
External Image (ComfyUI Deploy)

The img2img input that eats URLs and base64 — the workhorse of deployed workflows

🔗ComfyDeploy
External Image Alpha (ComfyUI Deploy)

External Image, but the alpha channel survives the trip

🔗ComfyDeploy
External Image Batch (ComfyUI Deploy)

Send a whole batch of images to a deployed workflow — from one JSON array

🔗ComfyDeploy
External Lora (ComfyUI Deploy)

Point your API callers at a LoRA without them ever touching your disk

🔗ComfyDeploy
External Number (ComfyUI Deploy)

The float input for deployed workflows — and its one genuinely weird quirk

🔗ComfyDeploy
External Number Int (ComfyUI Deploy)

External Number, but integers only — steps, seeds, batch sizes

🔗ComfyDeploy
External Number Slider (ComfyUI Deploy)

The Float Slider That Becomes an API Argument

🔗ComfyDeploy
External Number Slider Int (ComfyUI Deploy)

The Integer Slider for When Steps and Counts Are API Inputs

🔗ComfyDeploy
External Seed (ComfyUI Deploy)

The Seed Input That Knows When to Re-Roll

🔗ComfyDeploy
External Text (ComfyUI Deploy)

The Text Field That Turns Your Prompt Into an API Parameter

🔗ComfyDeploy
External Text Any (ComfyUI Deploy)

The Wildcard Text Input That Fits Any Socket

🔗ComfyDeploy
External Video (ComfyUI Deploy) path

The Video Node That Hands You a File Path, Not Pixels

🔗ComfyDeploy
External Video (ComfyUI Deploy x VHS)

The VHS-Powered Video Input That Actually Decodes Frames

🔗ComfyDeploy
Model List (ComfyUI Deploy)

The Model List Node That ComfyUI Deploy Already Deleted

🔗ComfyDeploy
String Combine (ComfyUI Deploy)

String Combine With a Hidden Regex Superpower

🔗ComfyDeploy
String Function

String Function is really a prompt-tag cleaner wearing two hats

🔗ComfyDeploy
Readme

ComfyUI Deploy

Open source comfyui deployment platform, a vercel for generative workflow infra. (serverless hosted gpu with vertical intergation with comfyui)

Check out our latest lcoal demo -> https://github.com/comfy-deploy/comfyui-api-comfydeploy

Full backend and frontend is here -> https://github.com/comfy-deploy/comfydeploy

[!NOTE]
Im looking for creative hacker to join ComfyDeploy's core team! DM me on twitter

Join Discord to chat more or visit Comfy Deploy to get started!

Check out our latest nextjs starter kit with Comfy Deploy

63shots_so 1# How it works

  1. Comfy Deploy Dashboard (https://comfydeploy.com) or self-hosted version
  2. Machines (Long running, on-premise ComfyUI machines and serverless)
  3. Supports runpods, modal, and hosted ComfyDeploy machines (powered by modal)

https://github.com/BennyKok/comfyui-deploy/assets/18395202/85f85325-a4bb-446d-aa67-ed225ee03479

Setting up a basic sd txt2img API

https://github.com/BennyKok/comfyui-deploy/assets/18395202/0fb1829b-401a-41f2-b21a-5b77483c6ee2

Comfy Deploy Plugin Installation

Plugin lets you set up the machine as a target machine, and also upload workflow directly from there

  1. cd custom_nodes
  2. git clone https://github.com/BennyKok/comfyui-deploy.git
  3. Go to (https://comfydeploy.com) or a self-hosted version
    • Machines -> Add Machines
      • Enter a name and the URL of your machines (set up Ngrok for a public URL for your machines)
      • Create a new ComfyDeploy machines (pick any custom nodes).

Usecase

  1. Deploy a complicated comfy workflow with a versioning system
  2. Manage versioning and easily preview different generated versions' output
  3. Persistent API generated for Production and Staging environment
  4. Run the same comfyui workflow across different remote machines

467shots_so 1# Status & Timeline

WIP, welcomes contributors!! Please join Discord -> https://discord.gg/EEYcQmdYZw

Primary goal -> release v0.1.0 of stable Comfy Deploy

Major areas

  • Security enforcement
  • Error handling
  • QOL workflow improvement
  • API usage examples
  • Load balancing
  • Workflow dependencies checking (custom nodes)
  • Remote machines
  • Serverless machines? Possible to set up a clean environment via Salad, Modal, etc
  • LCM realtime web socket image gen

Tech Stack

  • Shadcn UI

  • NextJS

  • Clerk (Auth)

  • Neon / Vercel Postgres (Database)

  • Drizzle (ORM)

  • R2 / S3 (Object Storage)

Development

  1. git clone https://github.com/BennyKok/comfyui-deploy
  2. cd web
  3. bun i
  4. Start docker
  5. cp .env.example .env.local
  6. Replace JWT_SECRET with openssl rand -hex 32
  7. Get a local clerk dev key for NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY
  8. Keep a terminal live for bun run db-dev
  9. Execute the local migration to create the initial data bun run migrate-local
  10. Finally start the next server with bun dev

Schema Changes

  1. bun run generate
  2. bun run migrate-local

Special Thanks

  • comfyui
  • oss/acc

Self Hosting with Vercel

Build command

next build && bun run migrate-production

Install command

npx [email protected] install

Env key setup

POSTGRES_URL=

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=

SPACES_ENDPOINT="http://localhost:4566"
SPACES_ENDPOINT_CDN="http://localhost:4566"
SPACES_BUCKET="comfyui-deploy"
SPACES_KEY="xyz"
SPACES_SECRET="aaa"

# generate using -> openssl rand -hex 32
JWT_SECRET=

# r2 settings
SPACES_REGION="auto"
SPACES_CDN_FORCE_PATH_STYLE="true"
SPACES_CDN_DONT_INCLUDE_BUCKET="true"

# digital ocean settings
SPACES_REGION="nyc3"
SPACES_CDN_FORCE_PATH_STYLE="false"

# s3 settings
SPACES_REGION="nyc3"
SPACES_CDN_DONT_INCLUDE_BUCKET="false"
SPACES_CDN_FORCE_PATH_STYLE="true"