
关于
ComfyUI 服务器的 REST API 网关。支持工作流管理、任务队列、Webhook、缓存、认证、限流和图像交付(URL + base64)
name: comfyui-gateway description: ComfyUI 服务器的 REST API 网关。工作流管理、任务队列、Webhook、缓存、认证、速率限制和图片交付(URL + base64)。 risk: safe source: community date_added: '2026-03-06' author: renat tags:
- comfyui
- api-gateway
- image-generation
- typescript tools:
- claude-code
- antigravity
- cursor
- gemini-cli
- codex-cli
ComfyUI 网关
概述
ComfyUI 服务器的 REST API 网关。工作流管理、任务队列、Webhook、缓存、认证、速率限制和图片交付(URL + base64)。
何时使用此技能
- 当用户提到 "comfyui" 或相关主题时
- 当用户提到 "comfy ui" 或相关主题时
- 当用户提到 "stable diffusion api 网关" 或相关主题时
- 当用户提到 "comfyui 网关" 或相关主题时
- 当用户提到 "api 图片网关" 或相关主题时
- 当用户提到 "图片队列" 或相关主题时
不适用场景
- 任务与 ComfyUI 网关无关
- 更简单、更具针对性的工具可以处理该请求
- 用户需要的是通用帮助而非领域专业知识
工作原理
一个生产级 REST API 网关,可将任何 ComfyUI 服务器转变为通用、安全且可扩展的服务。支持带占位符的工作流模板、带优先级的任务队列、Webhook 回调、结果缓存和多种存储后端。
架构概览
┌─────────────┐ ┌──────────────────────────────────┐ ┌──────────┐
│ Clients │────▶│ ComfyUI Gateway │────▶│ ComfyUI │
│ (curl, n8n, │ │ │ │ Server │
│ Claude, │ │ ┌─────────┐ ┌──────────────┐ │ │ (local/ │
│ Lovable, │ │ │ Fastify │ │ BullMQ Queue │ │ │ remote) │
│ Supabase) │ │ │ API │──│ (or in-mem) │ │ └──────────┘
│ │◀────│ └─────────┘ └──────────────┘ │
│ │ │ ┌─────────┐ ┌──────────────┐ │ ┌──────────┐
│ │ │ │ Auth + │ │ Storage │ │────▶│ S3/MinIO │
│ │ │ │ RateL. │ │ (local/S3) │ │ │(optional)│
│ │ │ └─────────┘ └──────────────┘ │ └──────────┘
└─────────────┘ └──────────────────────────────────┘
组件
| 组件 | 用途 | 文件 |
|-----------|---------|---------|
| API 网关 | REST 端点、验证、CORS | src/api/ |
| Worker | 处理任务,与 ComfyUI 通信 | src/worker/ |
| ComfyUI 客户端 | HTTP + WebSocket 连接 ComfyUI | src/comfyui/ |
| 工作流管理器 | 模板存储、占位符渲染 | src/workflows/ |
| 存储提供者 | 本地磁盘 + S3 兼容 | src/storage/ |
| 缓存 | 基于哈希的去重 | src/cache/ |
| 通知器 | 带 HMAC 签名的 Webhook | src/notifications/ |
| 认证 | API Key + JWT + 速率限制 | src/auth/ |
| 数据库 | SQLite (better-sqlite3) 或 Postgres | src/db/ |
| CLI | 初始化、添加工作流、运行、Worker | src/cli/ |
快速开始
## 1. 安装
cd comfyui-gateway
npm install
## 2. 配置
cp .env.example .env
## 3. 初始化
npx tsx src/cli/index.ts init
## 4. 添加工作流
npx tsx src/cli/index.ts add-workflow ./workflows/sdxl_realism_v1.json \
--id sdxl_realism_v1 --schema ./workflows/sdxl_realism_v1.schema.json
## 5. 启动(API + Worker 单进程)
npm run dev
## 或分别启动:
npm run start:api # 仅 API
npm run start:worker # 仅 Worker
环境变量
所有配置通过 .env 完成 — 无硬编码:
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| PORT | 3000 | API 服务器端口 |
| HOST | 0.0.0.0 | API 绑定地址 |
| COMFYUI_URL | http://127.0.0.1:8188 | ComfyUI 服务器 URL |
| COMFYUI_TIMEOUT_MS | 300000 | ComfyUI 最大等待时间(5分钟) |
| API_KEYS | "" | 逗号分隔的 API 密钥(key:role) |
| JWT_SECRET | "" | JWT 签名密钥(空 = 禁用 JWT) |
| REDIS_URL | "" | Redis URL(空 = 内存队列) |
| DATABASE_URL | ./data/gateway.db | SQLite 路径或 Postgres URL |
| STORAGE_PROVIDER | local | local 或 s3 |
| STORAGE_LOCAL_PATH | ./data/outputs | 本地输出目录 |
| S3_ENDPOINT | "" | S3/MinIO 端点 |
| S3_BUCKET | "" | S3 存储桶名称 |
| S3_ACCESS_KEY | "" | S3 访问密钥 |
| S3_SECRET_KEY | "" | S3 密钥 |
| S3_REGION | us-east-1 | S3 区域 |
| WEBHOOK_SECRET | "" | Webhook HMAC 签名密钥 |
| WEBHOOK_ALLOWED_DOMAINS | * | 逗号分隔的允许回调域名 |
| MAX_CONCURRENCY | 1 | 每 GPU 并行任务数 |
| MAX_IMAGE_SIZE | 2048 | 最大尺寸(宽或高) |
| MAX_BATCH_SIZE | 4 | 最大批量大小 |
| CACHE_ENABLED | true | 启用结果缓存 |
| CACHE_TTL_SECONDS | 86400 | 缓存 TTL(24小时) |
| RATE_LIMIT_MAX | 100 | 每窗口请求数 |
| RATE_LIMIT_WI
