# aimui **Repository Path**: yozorah/aimui ## Basic Information - **Project Name**: aimui - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-26 - **Last Updated**: 2026-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AimUI A comprehensive web-based management interface for ComfyUI instances with multi-instance support, Python environment management, and real-time monitoring. ## 项目简介 AimUI 是一个全栈 Web 应用,用于管理和监控多个 ComfyUI 实例。它提供了一个现代化的用户界面,让您可以轻松地: - 创建、启动、停止和删除多个 ComfyUI 实例 - 管理 Python 环境并自动修复路径问题 - 切换 ComfyUI 版本(支持 tag 切换和版本更新) - 配置和管理代理设置 - 实时监控实例运行状态和日志 - 通过 Server-Sent Events (SSE) 实现实时事件推送 ## 功能特性 ### 多实例管理 - 创建独立的 ComfyUI 实例 - 启动/停止/重启实例 - 删除实例 - 查看实例运行状态 ### Python 环境管理 - 自动扫描系统中的 Python 环境 - 检测并修复 conda 环境路径问题 - 查看已安装的 Python 包列表 - 环境健康状态检查 ### ComfyUI 版本管理 - 扫描所有可用的 ComfyUI 版本标签 - 切换到指定版本 - 更新到最新版本 - 查看当前版本信息和提交记录 ### 代理配置 - 设置默认代理服务器 - 配置实例专用代理 - 代理健康检查 ### 实时监控 - 实时日志流输出 - 进程状态监控 - 任务队列跟踪 - SSE 实时事件推送 ## 技术栈 ### 前端 - React 18 + Hooks - Vite 5 (构建工具) - Ant Design 5 (UI 组件库) - Axios (HTTP 客户端) - React Router 6 (路由管理) ### 后端 - Node.js 18+ - Express 4 - ES Modules (ESM) - Child Process (进程管理) - SSE (Server-Sent Events) ## 安装与配置 ### 系统要求 - Node.js >= 18.x - Python >= 3.8 (用于 ComfyUI 运行环境) - Git (用于版本管理) - Windows/Linux/macOS ### 快速开始 1. **克隆项目** ```bash git clone cd aimui ``` 2. **安装依赖** ```bash # 安装前端依赖 cd frontend npm install # 安装后端依赖 cd ../backend npm install ``` 3. **配置环境** 项目使用以下配置文件: - `config/proxy-config.json` - 代理配置 - `config/instances.json` - 实例配置 - `config/constants.js` - 常量定义 4. **启动应用** ```bash # 启动后端服务 cd backend npm start # 启动前端开发服务器 cd frontend npm run dev ``` 访问 `http://localhost:4000` 查看应用。 ## 项目结构 ``` aimui/ ├── frontend/ # React 前端应用 │ ├── src/ │ │ ├── api/ # API 客户端 │ │ │ ├── client.js # Axios 客户端配置 │ │ │ └── endpoint.js # API 端点定义 │ │ ├── components/ # React 组件 │ │ │ ├── common/ # 通用组件 │ │ │ └── layout/ # 布局组件 │ │ ├── pages/ # 页面组件 │ │ │ ├── Home.jsx # 主页 │ │ │ ├── Instances.jsx # 实例管理 │ │ │ ├── ProxyManager.jsx # 代理管理 │ │ │ └── VersionManager.jsx # 版本管理 │ │ ├── services/ # 业务逻辑服务 │ │ ├── App.jsx # 主应用组件 │ │ └── main.jsx # 入口文件 │ ├── public/ # 静态资源 │ ├── vite.config.js # Vite 配置 │ └── package.json │ ├── backend/ # Express 后端服务 │ ├── src/ │ │ ├── routes/ # API 路由 │ │ │ ├── comfyui.js # ComfyUI 实例 API │ │ │ └── env.js # 环境管理 API │ │ ├── services/ # 业务逻辑服务 │ │ │ ├── comfyuiInstanceManager.js # 实例管理 │ │ │ ├── proxyManager.js # 代理管理 │ │ │ └── envScanner.js # 环境扫描 │ │ ├── config/ # 配置文件 │ │ │ └── constants.js # 常量定义 │ │ ├── utils/ # 工具函数 │ │ ├── index.js # 入口文件 │ │ └── server.js # 服务器配置 │ ├── package.json │ └── README.md │ ├── engine/ # ComfyUI 和 Python 环境 │ ├── ComfyUI/ # ComfyUI 核心代码 │ └── rocm/ # Python 环境目录 │ ├── config/ # 应用配置 │ ├── proxy-config.json # 代理配置 │ ├── instances.json # 实例配置 │ └── constants.js # 常量定义 │ ├── data/ # 数据存储 │ ├── scripts/ # 构建和管理脚本 │ ├── install.bat # Windows 安装脚本 │ └── start.bat # 启动脚本 │ ├── AGENTS.md # 开发指南 └── README.md ``` ## API 文档 ### ComfyUI 实例管理 #### 获取所有实例 - **URL**: `/api/comfyui/instances` - **Method**: `GET` - **Response**: ```json { "success": true, "data": [ { "id": "instance-1", "name": "Main Instance", "status": "running", "port": 8188, "pid": 12345, "version": "v1.0.0" } ] } ``` #### 创建新实例 - **URL**: `/api/comfyui/instances` - **Method**: `POST` - **Request Body**: ```json { "name": "New Instance", "port": 8189, "proxy": "http://proxy.example.com:8080" } ``` #### 启动实例 - **URL**: `/api/comfyui/instances/:id/start` - **Method**: `POST` #### 停止实例 - **URL**: `/api/comfyui/instances/:id/stop` - **Method**: `POST` #### 删除实例 - **URL**: `/api/comfyui/instances/:id` - **Method**: `DELETE` #### 实时日志流 - **URL**: `/api/comfyui/instances/:id/logs` - **Method**: `GET` - **Response**: SSE 流,返回实时日志 ### 环境管理 #### 扫描 Python 环境 - **URL**: `/api/env/python/scan` - **Method**: `GET` - **Response**: ```json { "success": true, "data": [ { "name": "env-1", "path": "/path/to/env", "pythonExe": "/path/to/env/python.exe", "version": "3.10.0", "packages": [ {"name": "torch", "version": "2.0.0"} ], "needRepair": false } ] } ``` #### 修复 Python 环境 - **URL**: `/api/env/python/repair` - **Method**: `POST` - **Request Body**: ```json { "path": "/path/to/env" } ``` #### 扫描 ComfyUI 版本 - **URL**: `/api/env/comfyui/tags` - **Method**: `GET` - **Response**: ```json { "success": true, "data": [ { "tag": "v1.0.0", "date": "2024-01-01T00:00:00Z", "fullCommit": "abc123...", "shortCommit": "abc1234", "commitMessage": "Initial release", "isCurrent": true } ] } ``` #### 切换 ComfyUI 版本 - **URL**: `/api/env/comfyui/version` - **Method**: `POST` - **Request Body**: ```json { "tag": "v1.0.0" } ``` #### 更新 ComfyUI - **URL**: `/api/env/comfyui/update` - **Method**: `POST` - **Response**: ```json { "success": true, "message": "已更新到最新版本: abc1234", "commit": "abc1234" } ``` ### 代理管理 #### 获取代理配置 - **URL**: `/api/proxy/config` - **Method**: `GET` #### 更新代理配置 - **URL**: `/api/proxy/config` - **Method**: `PUT` - **Request Body**: ```json { "proxyUrl": "http://proxy.example.com:8080" } ``` ### 事件流 #### SSE 实时事件 - **URL**: `/api/events` - **Method**: `GET` - **Response**: SSE 流,事件类型包括: - `instance_status` - 实例状态变更 - `log_output` - 日志输出 - `process_start` - 进程启动 - `process_stop` - 进程停止 - `env_scan_complete` - 环境扫描完成 ## 开发指南 ### 代码风格 - 使用 ES Modules (`import`/`export`) - 前端使用 `.jsx` 扩展名,后端使用 `.js` 扩展名 - 字符串使用单引号 - 使用 `console.log` 进行调试,`console.error` 进行错误日志 - 变量/函数名使用 `camelCase` - 组件名使用 `PascalCase` - 常量使用 `UPPER_SNAKE_CASE` ### 构建命令 ```bash # 前端开发服务器 cd frontend npm run dev # 前端生产构建 npm run build # 后端开发模式 cd backend npm run dev # 后端生产模式 npm start ``` ### 项目配置 - 前端端口: `4000` - 后端端口: `4001` - API 前缀: `/api` - 静态资源目录: `frontend/dist` ## 常见问题 ### 1. Python 环境需要修复 如果看到 `conda-unpack.exe` 文件存在但环境标记为需要修复,运行修复命令或通过 UI 进行修复。 ### 2. 实例无法启动 - 检查端口是否被占用 - 确认 Python 环境完整 - 查看实时日志获取详细错误信息 ### 3. 版本切换失败 - 确认 Git 远程仓库配置正确 - 检查网络连接 - 查看 ComfyUI 目录的 Git 状态 ## 许可证 MIT ## 贡献 欢迎提交 Issue 和 Pull Request。