shuzhiren-comfyui/README.md

184 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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