# comfyui-lite **Repository Path**: kenful/comfyui-lite ## Basic Information - **Project Name**: comfyui-lite - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-24 - **Last Updated**: 2025-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ComfyUI Lite 这是ComfyUI的轻量级重构版本,专注于API调用节点,不包含本地模型加载功能。 ## 项目概述 ComfyUI Lite是对ComfyUI的简化版本,只支持通过API调用生成图片的工作流节点。该项目分为前后端两部分: - **前端**: 使用Vue 3 + TypeScript构建的工作流画布编辑器 - **后端**: 使用FastAPI + Python构建的工作流执行引擎 ## 支持的节点 1. **LoadImage** - 加载本地图片 2. **SaveImage** - 保存生成的图片 3. **GeminiImage2Node (Nano Banana Pro)** - 通过Google Gemini API生成图片 ## 项目结构 ``` comfyui-demo/ ├── backend/ # 后端服务 │ ├── app/ │ │ ├── core/ # 核心配置 │ │ ├── api/ # API路由 │ │ ├── services/ # 业务逻辑 │ │ ├── nodes/ # 节点定义 │ │ └── main.py # 应用入口 │ ├── storage/ # 存储目录 │ │ ├── input/ # 输入图片 │ │ ├── output/ # 输出图片 │ │ └── temp/ # 临时文件 │ ├── pyproject.toml # Python依赖 │ └── README.md ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── components/ # Vue组件 │ │ ├── stores/ # 状态管理 │ │ ├── utils/ # 工具函数 │ │ ├── App.vue # 根组件 │ │ └── main.ts # 入口文件 │ ├── package.json # Node依赖 │ └── README.md └── README.md # 项目说明 ``` ## 快速开始 ### 前置要求 - Python 3.10+ - Node.js 18+ - UV (Python包管理器) - pnpm/npm/yarn ### 后端设置 1. 进入后端目录: ```bash cd backend ``` 2. 安装依赖: ```bash uv sync # 或 uv pip install -e . ``` 3. 配置环境变量: ```bash cp .env.example .env # 编辑.env文件,设置COMFY_API_KEY等配置 ``` 4. 启动后端服务: ```bash python -m app.main # 或 uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` 后端服务将在 http://localhost:8000 启动。 ### 前端设置 1. 进入前端目录: ```bash cd frontend ``` 2. 安装依赖: ```bash npm install # 或 pnpm install ``` 3. 配置环境变量(可选): ```bash cp .env.example .env # 默认配置已经可以工作 ``` 4. 启动开发服务器: ```bash npm run dev ``` 前端应用将在 http://localhost:5173 启动。 ### 使用示例 1. 打开浏览器访问 http://localhost:5173 2. 双击画布添加节点 3. 构建工作流: - 添加LoadImage节点,选择输入图片 - 添加GeminiImage2Node节点,输入提示词 - 添加SaveImage节点 - 连接节点 4. 点击"执行"按钮运行工作流 5. 查看生成的图片 ## 功能特性 ### 前端 - ✅ 基于LiteGraph.js的可视化工作流编辑器 - ✅ 支持节点的拖拽、连接、删除 - ✅ 双击画布添加节点 - ✅ 连线拖动后自动弹出兼容节点菜单 - ✅ 工作流导入/导出 - ✅ 实时WebSocket通信 - ✅ 执行状态显示 - ✅ 队列状态监控 ### 后端 - ✅ 工作流执行引擎 - ✅ 多线程并发处理(支持配置工作线程数) - ✅ WebSocket实时通信 - ✅ 3个核心节点支持 - ✅ 图片上传/下载 - ✅ 执行历史记录 - ✅ API节点代理(使用ComfyUI API KEY) ## API文档 后端启动后可访问: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc 主要API端点: - `GET /`: 健康检查 - `WS /ws`: WebSocket连接 - `POST /api/prompt`: 提交工作流 - `GET /api/queue`: 查询队列状态 - `GET /api/history`: 查询执行历史 - `POST /upload/image`: 上传图片 - `GET /api/view`: 查看图片 - `GET /api/nodes/info`: 获取节点信息 ## 配置说明 ### 后端配置 (backend/.env) ```bash # 服务器配置 HOST=0.0.0.0 PORT=8000 # 工作线程数(用于API调用并发) MAX_WORKERS=4 # ComfyUI API配置 COMFY_API_BASE=https://api.comfy.org COMFY_API_KEY=your_api_key_here # 存储目录 INPUT_DIR=./storage/input OUTPUT_DIR=./storage/output TEMP_DIR=./storage/temp ``` ### 前端配置 (frontend/.env) ```bash VITE_API_URL=http://localhost:8000 VITE_WS_URL=ws://localhost:8000/ws ``` ## 开发说明 ### 添加新节点 1. 在 `backend/app/nodes/` 创建节点类 2. 继承 `BaseNode` 基类 3. 实现 `INPUT_TYPES()` 和 `execute()` 方法 4. 在 `backend/app/nodes/__init__.py` 注册节点 5. 在 `frontend/src/utils/nodes.ts` 添加前端节点定义 ### 前端开发 ```bash cd frontend npm run dev # 开发模式 npm run build # 构建生产版本 npm run preview # 预览生产版本 ``` ### 后端开发 ```bash cd backend # 开发模式(自动重载) uvicorn app.main:app --reload # 生产模式 uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4 ``` ## 测试 ### 测试示例工作流 项目包含一个示例工作流文件 `api_nano_banana_pro.json`,可以直接加载测试。 ## 技术栈 ### 前端 - Vue 3 - 渐进式JavaScript框架 - TypeScript - 类型安全 - Vite - 快速构建工具 - Pinia - 状态管理 - LiteGraph.js - 节点编辑器 - Axios - HTTP客户端 ### 后端 - FastAPI - 现代Python Web框架 - Uvicorn - ASGI服务器 - WebSockets - 实时通信 - Pydantic - 数据验证 - Pillow - 图片处理 - UV - Python包管理 ## 注意事项 1. 需要配置有效的 `COMFY_API_KEY` 才能使用Gemini API节点 2. 确保后端服务先启动,前端才能正常连接 3. 图片文件需要放在 `backend/storage/input/` 目录才能被LoadImage节点加载 4. 生成的图片会保存在 `backend/storage/output/` 目录 ## 许可证 本项目基于ComfyUI重构,遵循ComfyUI的开源协议。 ## 贡献 欢迎提交Issue和Pull Request! ## 联系方式 如有问题请提交Issue。