Skip to main content

ComfyUI custom node for cloud-based workflow execution via BizyAir API

Project description

☁️ BizyAir-CloudBerry

ComfyUI 自定义节点插件,通过 BizyAir/SCX API 实现工作流的云端执行。

安装

pip install bizyair-cloudberry

配置

必填:

export BIZYAIR_API_KEY=sk-xxxxxx

可选(已有默认值):

变量名 说明
BIZYAIR_API_URL BizyAir API 地址
BIZYAIR_SCX_API_URL SCX API 地址

开发

前端开发 (Vue 3 独立包)

前端是一个独立的 Vue 3 + TypeScript 应用,提供模型选择对话框功能。

cd frontend
npm ci
npm run dev     # 开发服务器 (端口 5175)
npm run build   # 构建,输出到 ../src/bizyair_cloudberry/web/

构建产物为 UMD 格式的 bizyair_cloudberry_ui.js,通过 window.bizyairCBLib.showModelSelect() 调用。

技术栈:Vue 3 + TypeScript + Tailwind CSS + naive-ui + vue-i18n

后端开发

# Python 依赖安装
pip install -e ".[dev]"

# 代码格式化
ruff format .

# 运行测试(集成测试需要设置 BIZYAIR_API_KEY)
PYTHONPATH=src python -m pytest tests/ -v

UI 测试 (Playwright)

cd tests/ui
npm ci
npx playwright install --with-deps
npx playwright test

需要先启动 ComfyUI 实例(localhost:8188)。

构建打包

前端必须先构建,产物 bizyair_cloudberry_ui.js 会被打包进 wheel:

# 1. 构建前端
cd frontend && npm ci && npm run build

# 2. 构建 Python 包(开发)
pip install -e .

# 2. 构建 Python 包
pip install build && python -m build

架构

ComfyUI Server → hijack.py → CloudBerrySubgraphNode → InputHandler → SCXAPIExecutor
                                                              ↓
                        ← progress_handler.py ← TaskMonitor ← Task WebSocket
                                                              ↑
                                          gateway_manager.py ← Draft WebSocket

关键组件

后端 (src/bizyair_cloudberry/)

  • cloudberry_node.py - ComfyUI 节点入口
  • hijack.py - 拦截 prompt 并注入 CloudBerry wrapper
  • input_handler.py - 文件/模型映射与解析,图片上传 OSS
  • process_transform.py - 转换工作流 prompt 为云端执行格式
  • file_utils.py - OSS 文件上传下载(三阶段:获取凭证→上传→提交)
  • event_processor.py - 远程事件转换为本地格式
  • env.py - pydantic-settings 环境变量管理
  • scx_executor/ - SCX API 执行器,含双 WebSocket 管理(Draft WS + Task WS)
  • client/scx_client.py - SCX API 客户端(HTTP + WebSocket)
  • routes/community.py - 社区相关 API 端点(模型浏览等)

ComfyUI 前端扩展 (src/bizyair_cloudberry/web/)

  • cloudberry.js - 主入口,注册扩展
  • model_apply.js - 模型 widget 点击行为配置
  • modules/state.js - CloudBerry 模式状态(localStorage)
  • modules/logic.js - 拦截 graphToPrompt 注入 cloudberry_mode
  • modules/model.js - 模型选择逻辑、徽章系统
  • modules/configLoader.js - 远程节点配置加载

Vue 前端 (frontend/)

  • Vue 3 + TypeScript 独立包,构建为 UMD 格式
  • showModelSelect() 导出到 window.bizyairCBLib,由原生 JS 扩展调用
  • 通过 /bizyair/* API 与后端通信
  • 支持中英文 i18n

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bizyair_cloudberry-0.2.6.tar.gz (305.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bizyair_cloudberry-0.2.6-py3-none-any.whl (310.6 kB view details)

Uploaded Python 3

File details

Details for the file bizyair_cloudberry-0.2.6.tar.gz.

File metadata

  • Download URL: bizyair_cloudberry-0.2.6.tar.gz
  • Upload date:
  • Size: 305.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for bizyair_cloudberry-0.2.6.tar.gz
Algorithm Hash digest
SHA256 40a6244619a60859cf9476820ee278a5684b3a8fcc227134bf95ab58dccfa2c6
MD5 cba07234d9531321fb0dc5edc1624760
BLAKE2b-256 11a4cf0e36d5f7c3eafa7d70b689f93721101e55a0685d1f5c53f591a703586c

See more details on using hashes here.

File details

Details for the file bizyair_cloudberry-0.2.6-py3-none-any.whl.

File metadata

File hashes

Hashes for bizyair_cloudberry-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d29a0c143135d4e258931b60d7b69e66c7e012b9cd0d84e65fdfa68bc0aeefd0
MD5 6435a356e7c0dc28107f871232a784ae
BLAKE2b-256 b1654ed3b13c7218f87b81baa699916ec30ce0c80261f3aefa82c597a5e46045

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page