shuzhiren-comfyui/README.md

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_HOSTREDIS_PORT 配置。

ComfyUI 实例离线

检查:

  1. ComfyUI 服务是否正常运行
  2. 端口是否可访问
  3. 防火墙配置

任务队列 WebSocket 连接失败

检查 servers.json 中的 taskQueue.websocketUrl 配置是否正确。

许可证

MIT