comfy-colab-kit
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 59 GitHub stars
Code Uyari
- network request — Outbound network request in apps/gate/app.py
- network request — Outbound network request in apps/gate/auth.py
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Zero-GPU-idle gateway for running ComfyUI on ephemeral Google Colab VMs with Zero-Trust Access
Comfy Colab Kit
An always-available, wake-on-demand ComfyUI on Google Colab — open the URL; if it's asleep, press Wake and watch it boot; then it is your ComfyUI app.
English • 简体中文
[!IMPORTANT]
Personal-use tool. Colab compute belongs to your Google account. Sharing it with others may violate the
Colab terms/FAQ (e.g. reselling or sharing compute) and can get the account restricted. Keep access to
yourself or a handful of family/friends. Not affiliated with Google or Comfy Org.
📖 Overview
A tiny gateway, comfy-gate (Python / aiohttp), runs on your VPS behind Cloudflare Access.
[!NOTE]
The Gate's Essential Role:comfy-gateis fundamentally a lifecycle, cold-start, and auto-shutdown gateway — it does NOT reimplement ComfyUI. When the GPU is asleep, it serves a lightweight, zero-compute wake card with real-time SSE progress. When booted, it transparently reverse-proxies directly into the authentic, full-featured ComfyUI Web Application (including node graph, App mode, custom nodes, extensions, and WebSocket streaming), injecting only a non-intrusive floating overlay to switch between App mode and the Node Graph.
| Pillar | What you see | How |
|---|---|---|
| 1 · Wake on demand | Sleep card → Wake → stages + logs → ComfyUI Web App | 10-state machine, colab new (L4) + setup via colab exec, streaming reverse proxy (HTTP + /ws) |
| 2 · Switchable profiles | Pick MOSS-Image, SD3.5, … before waking | profile.yaml + JSON Schema; zero secrets, models by public URL |
| 3 · Auto-stop | Overlay shows time left; sleeps on idle / max session / quiet hours / CU budget | every rule configured in .env |
🖼️ Preview

Landing Showcase: WebGL Aurora backdrop, zero-GPU-idle architecture, and community workflow showcase
![]() Cold-Start Wake Gateway Real-time SSE stage telemetry, Cloudflare Access Zero-Trust auth, and live CU budget ledger |
![]() ComfyUI on Colab L4 GPU Native ComfyUI web application with App mode, Linear/Graph toggle overlay, and real-time image generation |
🤖 AI Agent Driving the GPU
Two real sessions where an AI agent called the gateway end-to-end — no browser, no manual cell.
![]() Text-to-Image via /comfy-colab-kit41 s from prompt to finished PNG |
![]() Image-to-Image via /comfy-colab-kit2 m 14 s, two variations from one reference |
| 🟢 Text-to-Image | 🟣 Image-to-Image | |
|---|---|---|
| Agent command | text to img: a pic about "hello world: comfy-colab-kit" 1024 × 1024 |
img to img, using the highest quality, generate an image based on the reference image, maintaining the original composition, and completely change the girl's outfit to a bikini. |
| Skill entry | /comfy-colab-kit |
/comfy-colab-kit |
| Pipeline | MOSS-Image DeBand text-to-image | character matte → beach plate → MOSS-Image DeBand img2img |
| Profile preset | Fast alt — 10 steps + anti-banding LoRAs |
Quality — 25 steps, banding-fix LoRAs at full strength, no turbo LoRAs |
| Resolution | 1024 × 1024 | 1024 × 1024, 2 variations |
| GPU state on arrival | already ready — no wake-up needed |
already ready — session reused |
| Wall time | 41 s | 2 m 14 s |
| Output | one PNG (outputs/hello-world-comfy-colab-kit-1024.png) |
beachA (sheer wrap) and beachB (plain two-piece) |
| CU ledger | 22.16 CU left · 1.71 CU/hr while up | 20.99 CU left · 1.71 CU/hr while up |
| Afterwards | agent can call stop to release the GPU immediately |
agent keeps the GPU warm for the next variation, then releases it |
Both flows run entirely through the gateway's REST/MCP surface: the agent never touches a browser, a notebook cell, or a Colab URL.
💡 Why Comfy Colab Kit? (The Paradigm Shift)
Traditional Colab forces you to sit in front of a computer, manually run notebook cells, and baby-sit browser tabs that disconnect when your laptop sleeps. Comfy Colab Kit completely decouples compute execution from human attendance:
| Dimension | ❌ Traditional Colab Notebooks | ⚡ Comfy Colab Kit |
|---|---|---|
| Trigger Method | Sit at PC, open browser, manually execute cells | Anywhere & Autonomous Agents: 1-click wake on mobile, tablet, or headless AI agent (REST / MCP) |
| Session Reliability | Dies if laptop sleeps, tab closes, or Wi-Fi blips | Decoupled Cloud Gateway: VPS gateway persists state, auto-reconnects, survives local disconnects |
| Access & Security | Ephemeral random *.trycloudflare.com URLs with zero auth |
Single Custom Domain + Cloudflare Access: Enterprise Zero-Trust SSO / OTP, service tokens for agents |
| Collaboration | Teammates accidentally spin up duplicate VMs, burning CU | Global Idempotent Shared Session: All visitors join the running instance with live streaming logs |
| Budget Safety | Leaving notebooks running overnight drains entire CU quotas | Smart Auto-Shutdown: Automatic spin-down on idle (e.g. 20m), max session time, or CU hard budget |
| Automation & MCP | Inaccessible to headless AI coding agents | AI Agent & MCP Native: Full Model Context Protocol (stdio + HTTP), ckit CLI, RFC 8628 device flow, /comfy-colab-kit skill |
✨ Features
- Remote & Mobile Wake — Wake ComfyUI on Colab L4 from your smartphone, tablet, or terminal. No desktop browser or manual cell execution required.
- One shared session — wake is idempotent; a second visitor (or agent) joins the in-flight boot instead of
starting another VM. State survives gate restarts (STATE_DIR/session.json). - Model Context Protocol (MCP) Native — Full MCP JSON-RPC 2.0 support via local stdio (
ckit mcp) and remote HTTP (/mcp), exposinggate_status,gate_wake,gate_txt2img,gate_img2img,gate_generate, andgate_stop. - Live progress for everyone — Server-Sent Events broadcast state, download GB / speed and setup logs.
- Dual-Mode Access Control (Mode B Default) —
OWNER_ONLY_CONTROL=truerestricts wake, stop, profile switch, and extension to administrators (OWNER_EMAILS), safeguarding Colab compute units while allowing all authenticated team members to share ComfyUI once ready. Switchable to Mode A collaborative control ("who wakes can stop"). - Multi-IdP & Access-verified identity — Supports Google & GitHub OAuth alongside Email OTP. Every request verifies
Cf-Access-Jwt-Assertion(RS256, AUD, issuer). - Backend locked to a service token — the Colab tunnel hostname only admits the gate's Access service token.
- Fast cold start & L4 hardware acceleration — a parallel HTTP Range downloader streams the 24.9 GB MOSS-Image profile at T0 straight into a RAM tmpfs at up to 1,096 MB/s (8.77 Gbps), overlapping tool installs and ComfyUI boot.
--highvramkeeps the entire 18 GB model suite resident in L4's 24 GB VRAM with 100% cache retention (zero PCIe swapping), yielding ~90 s (~1.5 min) cold starts and 26.8 s warm 1024×1024 generations. - App mode first — workflows get ComfyUI App-mode metadata; the injected overlay toggles App ⇄ Graph.
- Full ComfyUI API passthrough — transparently proxies
/upload/imagefor Img2Img reference images,/prompt,/history,/view,/object_info,/system_stats,/queue, and WebSocket/ws. - Autonomous Agent friendly — RFC 8628 device flow (
ckit auth), 1-click prompt copy in Web UI,docs/AGENT_SKILL.md,docs/MCP.md,skills/comfy-colab-kit/SKILL.md, andllms.txt.
🚀 Quick start (VPS + Cloudflare)
git clone <this repo> comfy-colab-kit && cd comfy-colab-kit
cp .env.example .env # set PUBLIC_HOST, COLAB_TUNNEL_HOST, CF_ACCESS_*, emails
mkdir -p secrets data && chmod 700 secrets data
ZONE_NAME=example.com COLAB_TUNNEL_HOST=comfy-colab.example.com \
CLOUDFLARE_API_TOKEN=… scripts/cf-setup.sh # tunnel + DNS + backend Access app + service token → secrets/
openssl rand -hex 32 > secrets/agent_token && chmod 600 secrets/*
docker compose -f deploy/docker-compose.yml run --rm comfy-gate colab sessions # one-time colab login
docker compose -f deploy/docker-compose.yml up -d
# add deploy/Caddyfile.snippet to Caddy, reload, open https://$PUBLIC_HOST
Pre-built container images are also published on GHCR (docker pull ghcr.io/firetable/comfy-colab-kit:latest), and the operator CLI / MCP client can be installed standalone via uv tool install git+https://github.com/FireTable/comfy-colab-kit.git (or from the .whl attached to GitHub Releases).
Full walkthrough: docs/DEPLOY_VPS.md, docs/ACCESS.md (browser, guest link, LAN & agent access), docs/CLOUDFLARE.md, and docs/AGENT.md (comprehensive credential guide).
🤖 For AI Agents & Automation (Agent Skill Protocol)
Autonomous coding agents (Claude Code, Cursor, OpenClaw, Codex, LangGraph) can wake, monitor, use, and release the ComfyUI GPU backend without manual browser interaction:
[Agent] ──Bearer / Service Token──► comfy-gate (/_gate/status)
│ If sleeping: POST /_gate/wake
▼
Colab VM boots L4 ComfyUI
▼
[Agent] ◄──standard ComfyUI API───► Proxied /prompt, /history, /view
▼
[Agent] ──POST /_gate/stop────────► Releases GPU (or auto-sleep on idle)
- Authentication & Pairing: Provide
Authorization: Bearer <agent_token>or Cloudflare Access Service Token headers. Alternatively, use RFC 8628 device flow viackit auth https://<host>or click 🤖 Copy Prompt for AI Agent in the Web UI. - Status Check & Discovery: Call
GET /_gate/status(orckit status --json). Discover supported workflows viackit profiles --jsonorGET /_gate/profiles. - Idempotent Wake: Call
POST /_gate/wake(orckit wake --profile <name> --wait). Multiple concurrent wakes safely join the in-flight boot. - Model Context Protocol (MCP): Run
ckit mcplocally for Cursor/Claude Desktop, or point streamable MCP clients tohttps://<host>/mcpto usegate_status,gate_wake,gate_txt2img,gate_img2img,gate_generate, andgate_stop. - ComfyUI API Passthrough: Once
ready, call standard ComfyUI endpoints directly through the gate (POST /upload/imagefor Img2Img reference uploads,POST /prompt,GET /history/{prompt_id},GET /view?filename=..., and WebSocket/ws). - Clean Shutdown: When execution completes and no humans are active (
clients == 0), callPOST /_gate/stop(or MCPgate_stop) to immediately release compute, or allow the idle auto-stop rule to reclaim the VM.
📖 Agent References & Protocols:
- docs/AGENT_SCAFFOLDING.md — Let AI Build Your Profile or Adapt a Fork: Agent runbook & copy-paste prompts for generating custom ComfyUI profiles or adapting a fork of this gateway to run any Google Colab GPU workload (vLLM, Ollama, Forge, Gradio, etc.).
- docs/MCP.md — Comprehensive Model Context Protocol guide (stdio
ckit mcp, remote HTTP/mcp, Cursor & Claude setup). - skills/comfy-colab-kit/SKILL.md — Universal Agent Skill specification (
/comfy-colab-kit) with Txt2Img vs Img2Img decision tree. - skills/comfy-workflow-ui/SKILL.md — ComfyUI App Mode and workflow UI inspection & audit runbook.
- docs/APP_MODE.md — ComfyUI App Mode (Linear Mode) architecture, schemas, and node serialization rules.
- docs/AGENT_SKILL.md — Detailed Agent Skill specification, credential handling, and tool patterns.
- docs/AGENT.md — Autonomous VPS deployment guide, credential procurement, and Cloudflare Access setup.
- apps/gate/openapi.yaml — OpenAPI 3.1 specification for all
/_gate/*and passthrough routes. - llms.txt — LLM context index for AI systems.
🧩 Profiles
| Profile | Purpose | Default download |
|---|---|---|
moss-image (primary) |
MOSS-Image: DeBand int8 default, 4-step turbo, official quality / layout, edit (optional) — side by side in App mode | ~26 GB core / ~57 GB full default set |
sd-latest |
Stable Diffusion 3.5: Large fp8 default, TurboX 8-step, Medium turbo (gated, optional) | ~15 GB core / ~22 GB |
qwen-image |
Qwen-Image 2.1: Turbo T2I default, full T2I, Turbo / full Edit | ~27 GB core / ~43 GB |
Workflows are only community-published ones, fetched from the author with source and license recorded.
Format and passthrough options: docs/PROFILES.md.
[!TIP]
Need a different model or a non-ComfyUI Colab service?
If the built-in profiles don't include the model you want — or if you want to fork this repository and reuse its wake-on-demand gateway, Zero-Trust auth, RAMtmpfsRange downloader, and auto-stop rules for any Google Colab GPU workload (vLLM, Ollama, SD-WebUI Forge, Gradio, etc.) — point your AI coding agent atdocs/AGENT_SCAFFOLDING.mdto scaffold it automatically.
⏱️ Auto-stop
IDLE_TIMEOUT_MIN · MAX_SESSION_HOURS / EXTEND_MAX_TIMES · BOOT_TIMEOUT_MIN · STOP_ON_PAGE_CLOSE_MIN ·QUIET_HOURS · DAILY_CU_BUDGET / MONTHLY_CU_BUDGET / MIN_CU_BALANCE · ORPHAN_SWEEP_MIN ·WATCHDOG_GATE_LOST_MIN (Colab-side self-release). Details: docs/AUTO_STOP.md.
🔐 Security
No secret ever enters the repo: .env, secrets/, data/ are ignored, gitleaks + scripts/check-secrets.sh
run in pre-commit and CI, profiles reject credential-like keys. Secrets reach Colab over colab exec stdin and
live only in kernel memory. See docs/SECURITY.md.
🏗️ Monorepo Architecture
Request path, 10-state lifecycle, and the five auto-stop gates — animated SVG, light & dark aware
Comfy Colab Kit is structured as an engineering monorepo separating server applications, runtime packages, model profiles, and deployment automation:
comfy-colab-kit/
├── apps/
│ ├── gate/ # [Application] Gateway & Reverse Proxy (backend Python + web UI)
│ │ ├── app.py # aiohttp entrypoint, routes, middleware, auto-stop loop
│ │ ├── session.py # Central single-instance Session orchestrator
│ │ ├── proxy.py # Reverse proxy with SSE/WS streaming & overlay injection
│ │ ├── openapi.yaml # OpenAPI 3.1 specification
│ │ └── web/ # Wake page static UI (index.html, bg.js, logo.svg)
│ └── site/ # [Application] Showcase / Landing Site
│ ├── index.html # Showcase documentation & promo page
│ ├── styles.css # Aligned theme styles
│ └── main.js # Client interactions
├── packages/
│ ├── colab/ # [Package] Colab VM agent & runtime (setup.py)
│ ├── cli/ # [Package] Host & developer CLI tool (ckit)
│ └── schemas/ # [Package] JSON Schema definitions (profile.schema.json)
├── profiles/ # Profiles & Model Configurations
│ ├── examples/ # Built-in community profiles (moss-image, sd-latest, qwen-image)
│ └── custom/ # Mount point for user custom profiles
├── deploy/ # Infrastructure & deployment configuration
│ ├── Dockerfile # Container build recipe
│ ├── docker-compose.yml # VPS orchestration
│ └── Caddyfile.snippet # Reverse proxy routing
├── docs/ # Comprehensive product & engineering documentation
│ ├── AGENT.md # VPS deployment & credential acquisition runbook
│ ├── AGENT_SKILL.md # AI agent usage guide (wake, generate, stop)
│ ├── AGENT_SCAFFOLDING.md # AI agent guide to author profiles or adapt forks for any Colab workload
│ ├── APP_MODE.md # ComfyUI App Mode form architecture & UI specifications
│ └── ...
├── skills/ # Self-contained agent runbooks
│ ├── comfy-colab-kit/ # Gateway operator skill (wake, prompt, generate, stop)
│ └── comfy-workflow-ui/ # Workflow UI & App Mode inspector and audit skill
├── scripts/ # CI, validation and secret check utilities
└── tests/ # Pytest test suite (157 tests)
🛠️ Development
python -m venv .venv && . .venv/bin/activate && pip install -e ".[dev]"
npm install # Graphviz (WebAssembly) — lays out the architecture diagram
python -m pytest -q
node scripts/build-hero.mjs # the dispatch bench, assets/architecture/hero.svg
python scripts/build-architecture-svg.py # regenerate assets/architecture/flow*.svg
AUTH_DISABLED=true STATE_DIR=/tmp/kit COLAB_BIN=/bin/false python -m gate.app # wake page on :8080
💖 Acknowledgments & Open-Source Credits
Comfy Colab Kit stands on the shoulders of giants. We express our deepest gratitude to the creators and open-source communities who make this project possible:
- ComfyUI — The revolutionary node-based diffusion execution engine and modern Web App interface created by @comfyanonymous and the Comfy Org.
- Google Colab — For democratizing high-performance GPU compute (NVIDIA L4 24GB).
- Cloudflare — For the rock-solid Zero Trust Access network, Named Tunnels (
cloudflared), and global Pages hosting. - React Bits — The visual design foundation for the Aurora WebGL shaders, SpotlightCard cursor glow, and ShinyText animations created by David Haz.
- Hugging Face — High-speed model hosting and parallel weight streaming (
hf_xet). - uv by Astral — Blazing fast Python environment initialization.
- MOSS-Image — Cutting-edge open diffusion weights, DeBand LoRAs, and community workflows by OpenLMLab and MATLOWAI.
- Stability AI & Qwen Team — For open-weights research (SD 3.5 Large & Qwen-Image 2.1).
📄 License
MIT for this repository. Models, LoRAs, custom nodes and workflows referenced by profiles keep their own licenses
(listed in each profile README) and are downloaded from their original sources. Colab is a trademark of Google;
ComfyUI belongs to Comfy Org. This project is not affiliated with either.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi



