4.0 KiB
4.0 KiB
ComfyUI 实例集群通信中间层
多服务器 ComfyUI 实例集群的专用通信桥梁,实现统一状态管理、任务转发与结果回传。
项目特点
- 多服务器分布式部署支持
- 实时实例状态监控
- WebSocket 双向通信
- 任务精准转发与结果回传
- 专业的可视化管理界面
- 热更新配置支持
技术栈
| 层级 | 技术 |
|---|---|
| 后端 | Node.js + Express |
| 前端 | Vue 3 + Element Plus + Vite |
| 数据存储 | Redis |
| 通信 | WebSocket (ws) + Axios |
快速开始
环境要求
- Node.js >= 16
- Redis >= 6
- 可访问的 ComfyUI 实例
1. 安装依赖
# 根目录
cd d:\WebUI\Kexue\comfyui\comfyui-cluster-bridge
# 安装后端依赖
cd backend
npm install
# 安装前端依赖
cd ../frontend
npm install
2. 配置
2.1 环境变量
复制并编辑 .env 文件:
cd backend
cp .env.example .env
# 编辑 .env 文件,配置 Redis、JWT 密钥等
2.2 服务器配置
编辑 backend/config/servers.json 文件,配置 ComfyUI 实例:
{
"servers": [
{
"id": "server-1",
"name": "主服务器",
"ip": "127.0.0.1",
"enabled": true,
"instances": [
{ "port": 8001, "enabled": true },
{ "port": 8002, "enabled": true }
]
}
]
}
3. 启动 Redis
# Windows
redis-server
# 或使用 Docker
docker run -d -p 6379:6379 redis:latest
4. 启动服务
# 开发模式(同时启动后端和前端)
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。
配置说明
服务器配置 (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 实例离线
检查:
- ComfyUI 服务是否正常运行
- 端口是否可访问
- 防火墙配置
任务队列 WebSocket 连接失败
检查 servers.json 中的 taskQueue.websocketUrl 配置是否正确。
许可证
MIT