|
|
||
|---|---|---|
| js | ||
| workflow_service | ||
| .env | ||
| .gitignore | ||
| README.md | ||
| WAAS整体结构.png | ||
| __init__.py | ||
| modal_deploy.py | ||
| requirements.txt | ||
| run_service.py | ||
README.md
ComfyUI 工作流管理
功能
- 工作流上传
- 工作流版本控制
- 工作流加载
- ComfyUI 服务器管理(支持持久化)
- 需配置工作流服务器 (详见WAAS(工作流即服务) Demo API 服务器)
WAAS(工作流即服务) Demo API 服务器
-
路径: ./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
- 整数
- 字符串
- 浮点数
- comfyui-core
-
支持输出节点:
- 所有在 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_heartbeat DATETIME, 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. 数据库迁移
首次使用需要运行迁移脚本:
python migrate_database.py
2. 测试功能
运行测试脚本验证功能:
python test_persistence.py
3. API 使用
from workflow_service.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
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 可能也会有类似的逻辑

