# ComfyUI 工作流管理 ![这是图片](https://cdn.roasmax.cn/static/publisher.png) ## 功能 - 工作流上传 - 工作流版本控制 - 工作流加载 - ComfyUI 服务器管理(支持持久化) - 需配置工作流服务器 (详见**WAAS(工作流即服务) Demo API 服务器**) # WAAS(工作流即服务) Demo API 服务器 ![WAAS整体结构.png](WAAS%E6%95%B4%E4%BD%93%E7%BB%93%E6%9E%84.png) - 路径: ./workflow_service - 部署: `modal deploy modal_deploy.py --name waas-demo -e dev` - 配置: 参考`.env`文件 - 必须按照指定规则命名 - **输入节点名**: 前缀 **INPUT\_** - **除生成文件节点外输出节点名**: 前缀 **OUTPUT\_** - 支持输入节点: - comfyui-core - 加载图像 - ComfyUI-VideoHelperSuite - Load Video(Upload) - comfyui-easy-use - 整数 - 字符串 - 浮点数 - 支持输出节点: - 所有在 output 文件夹中生成文件(图片/视频)的节点 - comfyui-easy-use - 展示任何 - 数据库 - 类型: **SQLite** (workflows_service.sqlite) - 数据库结构 ``` CREATE TABLE IF NOT EXISTS workflows ( name TEXT PRIMARY KEY, base_name TEXT NOT NULL, version TEXT NOT NULL, workflow_json TEXT NOT NULL ) CREATE TABLE IF NOT EXISTS comfyui_servers ( name TEXT PRIMARY KEY, http_url TEXT NOT NULL, ws_url TEXT NOT NULL, status TEXT NOT NULL DEFAULT 'offline', last_health_check DATETIME, current_tasks INTEGER DEFAULT 0, max_concurrent_tasks INTEGER DEFAULT 1, capabilities TEXT, server_metadata TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ``` - 路由 - GET /api/workflow: 列出工作流 - POST /api/workflow: 添加工作流 - DELETE /api/workflow: 删除工作流 - GET /api/run/{base_name}: 获取工作流输入输出元数据 ``` 输入: *base_name: 工作流名称 version: 工作流版本 输出: Json { "inputs": { "image_image": { "node_id": "13", "type": "UploadFile", "widget_name": "image" }, "prefix_value": { "node_id": "22", "type": "int", "widget_name": "value" } }, "outputs": { "text_output": { "node_id": "21", "class_type": "easy showAnything", "output_name": "output", "output_index": 0 } } } ``` - POST /api/run/{base_name}: 执行工作流 ``` 输入: *base_name: 工作流名称 version: 工作流版本 输出: Json { "output_files": [ "https://cdn.roasmax.cn/outputs/测试/4e91e429-c848-4f66-885c-98a83c745872_111_00001_.png" ], "text_output": [ "output\\111_00001_.png" ] } ``` # ComfyUI 服务器持久化功能 ## 概述 ComfyUI 服务器管理器现在支持持久化功能,这意味着即使管理服务重启,也能从数据库中恢复已注册的服务器及其状态信息。 ## 主要特性 - **自动持久化**: 服务器注册、状态变化、注销时自动保存到数据库 - **自动恢复**: 服务启动时自动从数据库加载已注册的服务器 - **健康检查**: 定期检查服务器健康状态并更新数据库 ## 使用方法 ### 1. 数据库迁移 首次使用需要运行迁移脚本: ```bash python migrate_database.py ``` ### 2. 测试功能 运行测试脚本验证功能: ```bash python test_persistence.py ``` ### 3. API 使用 ```python from app.comfy.comfy_server import server_manager # 注册服务器 await server_manager.register_server( name="my_server", http_url="http://localhost:8188", ws_url="ws://localhost:8188", max_concurrent_tasks=2 ) # 获取服务器状态 servers = await server_manager.get_all_servers() ``` 详细文档请参考 [PERSISTENCE_README.md](PERSISTENCE_README.md) --- # JS 脚本使用指南 ### MacOS 将这个脚本直接放在该目录下,重启 ComfyUI 即可 /Applications/ComfyUI.app/Contents/Resources/ComfyUI/custom_nodes/ComfyUI-Manager/js ### Windows 将这个脚本直接放在该目录下,重启 ComfyUI 即可 {Comfy 的安装目录}\comfy\ComfyUI\custom_nodes\ComfyUI-Manager\js ### Q&A 主要是找到 `custom_nodes/ComfyUI-Manager` 的位置,这个目录下有一个 js 目录,把 `publisher.js` 脚本直接扔到这个 js 目录下即可。 一些版本安装的时候,用户额外装的的 custom_nodes 和系统自带的可能还不在一个位置,比如 MacOS 装客户端版本。用户额外装的是在 Documents 下,但 ComfyUI-Manager 是在对应的安装包目录里,得去 `/Applications` 里找。Windows 可能也会有类似的逻辑