Metadata-Version: 2.4
Name: bizyair-cloudberry
Version: 0.1.0
Summary: ComfyUI custom node for cloud-based workflow execution via BizyAir API
Project-URL: Repository, https://github.com/siliconflow/BizyAir-CloudBerry
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: websockets>=12.0
Requires-Dist: pydantic-settings>=2.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"

# ☁️ BizyAir-CloudBerry

ComfyUI 自定义节点插件，通过 BizyAir/SCX API 实现工作流的云端执行。支持将 ComfyUI 工作流提交到云端运行，同时保持本地 UI 集成和实时事件流。

## 功能特性

- **云端执行**：将本地 ComfyUI 工作流提交至云端运行
- **实时进度**：通过 WebSocket 实时获取任务执行进度
- **自动资源处理**：自动处理模型和文件的云端上传下载
- **无缝集成**：保留原生 ComfyUI 使用体验

## 环境要求

- Python >= 3.10
- ComfyUI
- BizyAir API Key

## 快速开始

### 1. 安装插件

```bash
# 克隆项目到 ComfyUI custom_nodes 目录
git clone https://github.com/siliconflow/BizyAir-CloudBerry.git ComfyUI/custom_nodes/BizyAir-CloudBerry

# 安装依赖
cd ComfyUI/custom_nodes/BizyAir-CloudBerry
pip install -e .

# 开发模式 
pip install -e ".[dev]" 

# 格式化代码（开发模式下）
ruff format 
```

### 2. 配置环境变量

在启动 ComfyUI 前设置 API Key：

```bash
# Linux/macOS
export BIZYAIR_API_KEY=sk-xxxxxx

# Windows (PowerShell)
$env:BIZYAIR_API_KEY="sk-xxxxxx"
```

或者在运行 ComfyUI 的终端中设置后再启动 ComfyUI。

### 3. 启动 ComfyUI

```bash
cd ComfyUI
python main.py
```

## 项目结构

```
BizyAir-CloudBerry/
├── bizyair_cloudberry/
│   ├── __init__.py           # 插件入口，注册节点
│   ├── cloudberry_node.py    # CloudBerry 主节点实现
│   ├── hijack.py             # 拦截 ComfyUI 提示词
│   ├── scx_api_executor.py   # SCX API 通信与 WebSocket 流
│   ├── event_processor.py    # 远程事件转换处理
│   ├── input_handler.py      # 文件/模型映射与解析
│   ├── file_utils.py         # OSS 文件上传下载
│   ├── progress_handler.py   # 进度处理
│   └── env.py                # 环境变量管理
├── docs/                     # 开发文档
│   └── EXECUTE_WORKFLOW.md   # execute_workflow 执行流程说明
├── tests/                    # 测试用例
│   ├── test_file_utils.py    # 文件上传下载集成测试
│   ├── test_scx_executor.py  # SCXAPIExecutor 的execute_workflow集成测试脚本（事件接收）
│   ├── image_test.json       # 测试用工作流 JSON
│   ├── api_executor_test_case/  # 单元测试（已废弃 ⚠️）
│   │                              # 废弃原因：GitHub Action 无法连接 WebSocket
│   └── ui/                   # Playwright UI 测试
│       ├── playwright.config.ts
│       └── tests/            # UI 测试用例
├── pyproject.toml            # 项目配置
└── README.md                 # 本文件
```

## 开发文档

- [execute_workflow 执行流程说明](docs/EXECUTE_WORKFLOW.md) - 详解 SCXAPIExecutor 核心方法的执行流程、WebSocket 通道和任务取消机制
