# ComfyUI 实例集群通信中间层 多服务器 ComfyUI 实例集群的专用通信桥梁,实现统一状态管理、任务转发与结果回传。 ## 项目特点 - 多服务器分布式部署支持 - 实时实例状态监控 - WebSocket 双向通信 - 任务精准转发与结果回传 - 专业的可视化管理界面 - 热更新配置支持 ## 技术栈 | 层级 | 技术 | |------|------| | 后端 | Node.js + Express | | 前端 | Vue 3 + Element Plus + Vite | | 数据存储 | Redis | | 通信 | WebSocket (ws) + Axios | ## 快速开始 ### 环境要求 - Node.js >= 16 - Redis >= 6 - 可访问的 ComfyUI 实例 ### 1. 安装依赖 ```bash # 根目录 cd d:\WebUI\Kexue\comfyui\comfyui-cluster-bridge # 安装后端依赖 cd backend npm install # 安装前端依赖 cd ../frontend npm install ``` ### 2. 配置 #### 2.1 环境变量 复制并编辑 `.env` 文件: ```bash cd backend cp .env.example .env # 编辑 .env 文件,配置 Redis、JWT 密钥等 ``` #### 2.2 服务器配置 编辑 `backend/config/servers.json` 文件,配置 ComfyUI 实例: ```json { "servers": [ { "id": "server-1", "name": "主服务器", "ip": "127.0.0.1", "enabled": true, "instances": [ { "port": 8001, "enabled": true }, { "port": 8002, "enabled": true } ] } ] } ``` ### 3. 启动 Redis ```bash # Windows redis-server # 或使用 Docker docker run -d -p 6379:6379 redis:latest ``` ### 4. 启动服务 ```bash # 开发模式(同时启动后端和前端) cd d:\WebUI\Kexue\comfyui\comfyui-cluster-bridge npm run dev # 或分别启动 # 后端 (端口 3000) cd backend npm run dev # 前端 (端口 5173) cd frontend npm run dev ``` ### 5. 访问管理界面 打开浏览器访问:http://localhost:5173 默认登录账号: - 用户名:`admin` - 密码:`admin123` ## 目录结构 ``` comfyui-cluster-bridge/ ├── backend/ # 后端服务 │ ├── src/ │ │ ├── index.js # 主入口 │ │ ├── config/ # 配置模块 │ │ ├── logger/ # 日志模块 │ │ ├── cluster-manager/# 集群管理 │ │ ├── websocket-client/# WebSocket 通信 │ │ ├── task-forwarder/ # 任务转发 │ │ ├── file-uploader/ # 文件上传 │ │ └── admin-api/ # 管理 API │ ├── config/ # 配置文件 │ ├── logs/ # 日志目录 │ └── uploads/ # 上传文件目录 ├── frontend/ # 前端管理界面 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ ├── stores/ # Pinia 状态 │ │ ├── router/ # 路由配置 │ │ └── api/ # API 封装 │ └── index.html └── README.md ``` ## API 文档 详细的接口文档请参考 [API.md](./API.md)。 ## 配置说明 ### 服务器配置 (servers.json) | 字段 | 类型 | 说明 | |------|------|------| | servers | array | 服务器列表 | | servers[].id | string | 服务器唯一标识 | | servers[].name | string | 服务器名称 | | servers[].ip | string | 服务器 IP 地址 | | servers[].enabled | boolean | 是否启用 | | servers[].instances | array | ComfyUI 实例列表 | | servers[].instances[].port | number | 实例端口 | | servers[].instances[].enabled | boolean | 是否启用 | | healthCheck.interval | number | 健康检查间隔 (毫秒) | | healthCheck.timeout | number | 健康检查超时 (毫秒) | | taskQueue.websocketUrl | string | 任务队列 WebSocket 地址 | | upload.url | string | 文件上传接口地址 | ## 常见问题 ### Redis 连接失败 确保 Redis 服务已启动,检查 `.env` 文件中的 `REDIS_HOST` 和 `REDIS_PORT` 配置。 ### ComfyUI 实例离线 检查: 1. ComfyUI 服务是否正常运行 2. 端口是否可访问 3. 防火墙配置 ### 任务队列 WebSocket 连接失败 检查 `servers.json` 中的 `taskQueue.websocketUrl` 配置是否正确。 ## 许可证 MIT