feat: Codex 工作区改动迁移(支付管理/用户余额/创作页等)
将 Codex 在工作区累积的改动整体落到 refactor/rust-backend: 支付管理与用户余额页、各创作 surface、website 等。排除 boosapi.db/config.toml 等敏感文件。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,164 +0,0 @@
|
||||
# 2026-05-15 技术报告 / Technical Report
|
||||
|
||||
## Executive Summary
|
||||
|
||||
本日完成 BoosAPI 品牌迁移、ComfyUI Agent 对话助手开发、Gitea CI/CD Runner 部署、Notification Service 能力梳理及部署文档重写。核心变更包括:将项目内 `Metapi` 全局替换为 `BoosAPI`,新增 `/comfyui-agent` 对话式 AI 视频生成入口,完成 SSE streaming 前后端链路,并完善生产部署文档与通知服务说明。
|
||||
|
||||
---
|
||||
|
||||
## 1. Metapi → BoosAPI 全局改名 / Global Rename
|
||||
|
||||
### 1.1 变更范围 / Change Scope
|
||||
|
||||
| 区域 / Area | 变更内容 / Changes |
|
||||
|---|---|
|
||||
| UI 界面 / UI | About 页面、侧边栏、登录页品牌名更新为 `BoosAPI` |
|
||||
| i18n 翻译 / Internationalization | 所有语言文件中的 `Metapi` 替换为 `BoosAPI` |
|
||||
| 后端通知 / Backend Notification | `notifyService.ts` 通知前缀由 `[metapi]` 改为 `[BoosAPI]` |
|
||||
| 桌面元数据 / Desktop Metadata | Electron / Docker 描述信息更新 |
|
||||
|
||||
### 1.2 已完成的技术标识替换 / Completed Technical Identifier Changes
|
||||
|
||||
| 项目 / Item | 变更说明 / Description |
|
||||
|---|---|
|
||||
| HTTP Header | `x-metapi-*` → `x-boosapi-*` |
|
||||
| 推理签名前缀 / Inference Signature Prefix | `metapi:` → `boosapi:` |
|
||||
| 运行时属性 / Runtime Properties | `__metapiTruncated` 等 → `__boosapi*` |
|
||||
| 环境变量 / Environment Variables | `METAPI_*` → `BOOSAPI_*` |
|
||||
| Package Name | `package.json` 中 `name` 更新为 `boosapi` |
|
||||
|
||||
### 1.3 验证方式 / Verification
|
||||
|
||||
```bash
|
||||
grep -rn '[mM]etapi' src/ --include='*.ts' --include='*.tsx' --include='*.html' \
|
||||
| grep -v '.test.' | grep -v node_modules | grep -iv 'boosapi'
|
||||
```
|
||||
|
||||
预期结果:无输出。
|
||||
|
||||
---
|
||||
|
||||
## 2. ComfyUI Agent 对话助手 / Conversational Assistant
|
||||
|
||||
### 2.1 功能概述 / Feature Overview
|
||||
|
||||
侧边栏新增「对话助手」入口,路由为 `/comfyui-agent`,提供与 AI 视频生成助手的对话式交互,支持文本、角色提示词、图像、场景、语音和 ComfyUI workflow 等多类型内容的流式渲染。
|
||||
|
||||
### 2.2 技术架构 / Architecture
|
||||
|
||||
```
|
||||
用户 / User → POST /api/comfyui-agent/chat → BoosAPI → LLM 本地 API (streaming)
|
||||
→ SSE 事件流 → BoosAPI 转发 → 浏览器
|
||||
```
|
||||
|
||||
### 2.3 后端实现 / Backend
|
||||
|
||||
| 文件 / File | 作用 / Responsibility |
|
||||
|---|---|
|
||||
| `src/server/routes/api/comfyuiAgent.ts` | SSE 流式聊天接口,调用本地 LLM API |
|
||||
| `src/server/services/boosapi_comfy_nodes.py` | ComfyUI 自定义节点,默认连接 `http://127.0.0.1:4000/v1` |
|
||||
|
||||
### 2.4 前端实现 / Frontend
|
||||
|
||||
| 文件 / File | 作用 / Responsibility |
|
||||
|---|---|
|
||||
| `src/web/pages/ComfyUIAgent.tsx` | 对话界面组件,SSE 流式渲染 |
|
||||
| `src/web/App.tsx` | 注册 `/comfyui-agent` 路由及侧边栏入口 |
|
||||
|
||||
### 2.5 SSE 事件类型 / SSE Event Types
|
||||
|
||||
| `type` | 含义 / Meaning | 前端渲染 / Rendering |
|
||||
|---|---|---|
|
||||
| `text` | 流式文本 | 追加到对话内容 |
|
||||
| `character_prompts` | 四角度角色提示词 | 角色卡片 |
|
||||
| `image` | 生成的角色图像 | 内联图片 |
|
||||
| `scene` | 场景提示词 | 场景块 |
|
||||
| `tts` | 语音音频 | 音频播放器 |
|
||||
| `comfyui_workflow` | 完整 ComfyUI 工作流 JSON | 下载按钮 |
|
||||
| `done` | 流结束 | 停止等待 |
|
||||
|
||||
### 2.6 验证结果 / Verification
|
||||
|
||||
| 命令 | 结果 |
|
||||
|---|---|
|
||||
| `npm install` | ✅ |
|
||||
| `npm run typecheck:web` | ✅ 0 error |
|
||||
|
||||
---
|
||||
|
||||
## 3. Gitea CI/CD Runner 部署 / Runner Deployment
|
||||
|
||||
### 3.1 部署信息 / Deployment Info
|
||||
|
||||
| 项目 | 详情 |
|
||||
|---|---|
|
||||
| 系统 | Alpine Linux, OpenRC |
|
||||
| 部署方式 | 裸机直跑,无 DinD |
|
||||
| Runner 版本 | v0.1.3 |
|
||||
| 注册模式 | `:host` 标签 |
|
||||
| OpenRC 服务 | `/etc/init.d/gitea-runner` |
|
||||
| 代理 | `HTTP_PROXY=http://127.0.0.1:7890` |
|
||||
| `NO_PROXY` | 包含 `git.boos.lat` |
|
||||
| 持久化 | `ephemeral: false` |
|
||||
|
||||
### 3.2 已知限制 / Known Limitations
|
||||
|
||||
- 不支持 Docker in Docker;CI 使用 `runs-on: host`
|
||||
- 无原生 artifact 存储;构建产物需手动备份
|
||||
- `actions/checkout` 偶发 timeout;可重试或使用本地 git 镜像
|
||||
|
||||
---
|
||||
|
||||
## 4. Notification Service
|
||||
|
||||
### 4.1 支持通道 / Supported Channels
|
||||
|
||||
| 通道 | 配置前缀 | 协议 |
|
||||
|---|---|---|
|
||||
| Telegram | `telegram*` | Bot API |
|
||||
| 企业微信 | `wecom*` | Webhook |
|
||||
| 飞书 | `feishu*` | Webhook |
|
||||
| 通用 Webhook | `webhook*` | JSON POST |
|
||||
| Bark | `bark*` | HTTP, iOS |
|
||||
| Server酱 | `serverchan*` | HTTP |
|
||||
| SMTP | `smtp*` | Email |
|
||||
|
||||
### 4.2 Telegram 消息格式
|
||||
|
||||
- 纯文本,不启用 HTML/Markdown 解析
|
||||
- 单条最大 3900 字符,超长截断 + `...(truncated)`
|
||||
- 支持 Telegram Topics(`message_thread_id`)
|
||||
|
||||
### 4.3 节流机制 / Throttling
|
||||
|
||||
- 基于通知签名的全局冷静期:`notifyCooldownSec`
|
||||
- 同一签名在冷静期内重复触发时合并为一次
|
||||
- 冷静期为全局共享,不按通道独立
|
||||
|
||||
---
|
||||
|
||||
## 5. 部署文档完善 / Deployment Documentation
|
||||
|
||||
Commit: `5bd847d`
|
||||
|
||||
对 `docs/deployment.md` 全量重写,修复所有 `metapi` 残留:
|
||||
|
||||
- 完整 `docker-compose.yml` 示例(含 healthcheck)
|
||||
- `.env` 变量插值模式
|
||||
- 全部环境变量参考表(20+ 变量)
|
||||
- 扩展配置:外部 MySQL/PostgreSQL、Redis、资源限制
|
||||
- 生产部署检查清单
|
||||
- Nginx 反向代理(WebSocket + SSE)
|
||||
- 管理后台 IP 白名单限制示例
|
||||
- Docker run 常用选项表
|
||||
- 升级/回滚操作流程
|
||||
|
||||
---
|
||||
|
||||
## 6. 待办事项 / TODO
|
||||
|
||||
| 优先级 | 事项 | 说明 |
|
||||
|---|---|---|
|
||||
| High | 服务未运行 | CI 崩溃后容器未恢复,需确定 Docker vs `npm run dev` |
|
||||
| Medium | Telegram 格式优化 | 待确认 HTML/Markdown/简化 |
|
||||
| Medium | CI pipeline 稳定性 | Docker 镜像拉取超时,需排查网络 |
|
||||
@@ -1,340 +0,0 @@
|
||||
# 内置 ComfyUI 视频助手 + SaaS 多租户方案
|
||||
|
||||
> 生成: gpt-5.5 via api.boos.lat | 2026-05-18
|
||||
|
||||
---
|
||||
|
||||
## 1. 数据表设计 (SQLite migrations)
|
||||
|
||||
### 1.1 `tenants` 租户
|
||||
|
||||
```sql
|
||||
CREATE TABLE tenants (
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
slug TEXT UNIQUE NOT NULL,
|
||||
plan TEXT NOT NULL DEFAULT 'free',
|
||||
status TEXT NOT NULL DEFAULT 'active',
|
||||
owner_user_id TEXT NOT NULL,
|
||||
settings TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
```
|
||||
|
||||
### 1.2 `tenant_members` 租户成员
|
||||
|
||||
```sql
|
||||
CREATE TABLE tenant_members (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
user_id TEXT NOT NULL,
|
||||
role TEXT NOT NULL DEFAULT 'member',
|
||||
status TEXT NOT NULL DEFAULT 'active',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
UNIQUE(tenant_id, user_id)
|
||||
);
|
||||
```
|
||||
|
||||
### 1.3 `subscriptions` 订阅与额度
|
||||
|
||||
```sql
|
||||
CREATE TABLE subscriptions (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
plan TEXT NOT NULL,
|
||||
status TEXT NOT NULL DEFAULT 'active',
|
||||
monthly_generations_limit INTEGER NOT NULL DEFAULT 100,
|
||||
monthly_video_seconds_limit INTEGER NOT NULL DEFAULT 300,
|
||||
storage_bytes_limit INTEGER NOT NULL DEFAULT 5368709120,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
```
|
||||
|
||||
### 1.4 `usage_counters` 用量统计
|
||||
|
||||
```sql
|
||||
CREATE TABLE usage_counters (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
period TEXT NOT NULL,
|
||||
generations_used INTEGER NOT NULL DEFAULT 0,
|
||||
video_seconds_used INTEGER NOT NULL DEFAULT 0,
|
||||
storage_bytes_used INTEGER NOT NULL DEFAULT 0,
|
||||
ai_tokens_used INTEGER NOT NULL DEFAULT 0,
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
UNIQUE(tenant_id, period)
|
||||
);
|
||||
```
|
||||
|
||||
### 1.5 `comfy_workflows` 工作流模板
|
||||
|
||||
```sql
|
||||
CREATE TABLE comfy_workflows (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
name TEXT NOT NULL,
|
||||
description TEXT,
|
||||
type TEXT NOT NULL DEFAULT 'video',
|
||||
visibility TEXT NOT NULL DEFAULT 'private',
|
||||
workflow_json TEXT NOT NULL,
|
||||
input_schema TEXT NOT NULL DEFAULT '{}',
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
is_default INTEGER NOT NULL DEFAULT 0,
|
||||
created_by TEXT,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
```
|
||||
|
||||
### 1.6 `video_jobs` 视频任务
|
||||
|
||||
```sql
|
||||
CREATE TABLE video_jobs (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
user_id TEXT,
|
||||
workflow_id TEXT REFERENCES comfy_workflows(id),
|
||||
status TEXT NOT NULL DEFAULT 'queued',
|
||||
priority INTEGER NOT NULL DEFAULT 100,
|
||||
prompt TEXT,
|
||||
negative_prompt TEXT,
|
||||
params TEXT NOT NULL DEFAULT '{}',
|
||||
comfy_prompt_id TEXT,
|
||||
progress REAL NOT NULL DEFAULT 0,
|
||||
error_message TEXT,
|
||||
result_asset_id TEXT,
|
||||
estimated_video_seconds INTEGER DEFAULT 0,
|
||||
actual_video_seconds INTEGER DEFAULT 0,
|
||||
started_at TEXT,
|
||||
completed_at TEXT,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
```
|
||||
|
||||
### 1.7 `assets` 文件资产
|
||||
|
||||
```sql
|
||||
CREATE TABLE assets (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
user_id TEXT,
|
||||
job_id TEXT REFERENCES video_jobs(id) ON DELETE SET NULL,
|
||||
type TEXT NOT NULL,
|
||||
mime_type TEXT,
|
||||
file_name TEXT,
|
||||
storage_path TEXT NOT NULL,
|
||||
public_url TEXT,
|
||||
size_bytes INTEGER NOT NULL DEFAULT 0,
|
||||
metadata TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. API 路由设计
|
||||
|
||||
### 租户管理
|
||||
```
|
||||
POST /api/tenants → 创建租户
|
||||
GET /api/tenants → 我的租户列表
|
||||
GET /api/tenants/:id → 租户详情
|
||||
PATCH /api/tenants/:id → 更新租户
|
||||
```
|
||||
|
||||
### 成员管理
|
||||
```
|
||||
GET /api/tenants/:id/members → 成员列表
|
||||
POST /api/tenants/:id/members/invite → 邀请成员
|
||||
DELETE /api/tenants/:id/members/:uid → 移除成员
|
||||
PATCH /api/tenants/:id/members/:uid/role → 修改角色
|
||||
```
|
||||
|
||||
### 视频助手
|
||||
```
|
||||
POST /api/tenants/:id/video/analyze → 解析脚本(角色/场景/对话)
|
||||
POST /api/tenants/:id/video/generate → 生成视频任务
|
||||
GET /api/tenants/:id/video/jobs → 任务列表
|
||||
GET /api/tenants/:id/video/jobs/:jid → 任务详情
|
||||
POST /api/tenants/:id/video/jobs/:jid/cancel → 取消任务
|
||||
GET /api/tenants/:id/video/jobs/:jid/events → SSE 进度
|
||||
```
|
||||
|
||||
### ComfyUI 工作流
|
||||
```
|
||||
GET /api/tenants/:id/workflows → 工作流模板列表
|
||||
POST /api/tenants/:id/workflows → 创建模板
|
||||
GET /api/tenants/:id/workflows/:wid → 模板详情
|
||||
DELETE /api/tenants/:id/workflows/:wid → 删除模板
|
||||
```
|
||||
|
||||
### 资产生成(ai Helper)
|
||||
```
|
||||
POST /api/tenants/:id/ai/character → gpt-image-2 生成角色四视图
|
||||
POST /api/tenants/:id/ai/scene → 生成场景图
|
||||
POST /api/tenants/:id/ai/tts → TTS 语音
|
||||
POST /api/tenants/:id/ai/prompt-optimize → 优化视频 prompt
|
||||
```
|
||||
|
||||
### 用量与订阅
|
||||
```
|
||||
GET /api/tenants/:id/usage → 当前用量
|
||||
GET /api/tenants/:id/subscription → 订阅信息
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 前端页面/组件结构
|
||||
|
||||
```
|
||||
src/web/pages/
|
||||
├── VideoAssistant.tsx ← 视频助手主页面(prompt→生成→预览)
|
||||
├── VideoJobs.tsx ← 历史任务列表
|
||||
├── WorkflowLibrary.tsx ← 工作流模板库
|
||||
├── TenantSettings.tsx ← 租户设置
|
||||
└── TenantMembers.tsx ← 成员管理
|
||||
|
||||
src/web/components/
|
||||
├── video/
|
||||
│ ├── ScriptEditor.tsx ← 自然语言脚本编辑
|
||||
│ ├── ScriptPreview.tsx ← 脚本解析预览(角色/场景/对话)
|
||||
│ ├── CharacterCard.tsx ← 角色四视图卡片
|
||||
│ ├── SceneCard.tsx ← 场景图卡片
|
||||
│ ├── TTSPlayer.tsx ← TTS 语音播放
|
||||
│ ├── WorkflowExport.tsx ← ComfyUI 工作流导出
|
||||
│ └── VideoPlayer.tsx ← 视频播放/下载
|
||||
├── tenant/
|
||||
│ ├── TenantSwitcher.tsx ← 租户切换
|
||||
│ ├── MemberList.tsx ← 成员列表
|
||||
│ ├── InviteDialog.tsx ← 邀请对话框
|
||||
│ └── UsageQuota.tsx ← 用量/配额显示
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 核心业务流程
|
||||
|
||||
### 注册 → 创作 → 导出
|
||||
|
||||
```
|
||||
1. 注册/登录
|
||||
2. 自动创建个人租户(或个人空间)
|
||||
3. 进入视频助手页面
|
||||
4. 输入自然语言脚本
|
||||
5. 系统解析 → 提取角色/场景/对话
|
||||
6. 自动调用 AI 生成:
|
||||
- 【CHARACTER】→ gpt-image-2 四视图
|
||||
- 【SCENE】 → 场景图
|
||||
- 【TTS】 → 语音
|
||||
- 【WORKFLOW】 → ComfyUI 工作流 JSON
|
||||
7. 预览所有生成内容
|
||||
8. 导出/下载/提交 ComfyUI 执行
|
||||
9. 视频生成 → 预览 → 下载
|
||||
|
||||
如需协作: → 创建组织 → 邀请成员 → 设置角色
|
||||
```
|
||||
|
||||
### 租户管理流程
|
||||
|
||||
```
|
||||
创建组织
|
||||
→ 成为 owner
|
||||
→ 可创建 API Key
|
||||
→ 可邀请成员(邮箱/链接)
|
||||
→ 角色: owner / admin / member
|
||||
→ 每个成员有独立用量跟踪
|
||||
|
||||
套餐限制:
|
||||
free: 50 次/月, 5GB 存储, 基础功能
|
||||
pro: 500 次/月, 50GB, 全功能+更高配额
|
||||
custom: 定制
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 文件变更清单
|
||||
|
||||
### 新增文件
|
||||
|
||||
**后端 Rust:**
|
||||
```
|
||||
src/routes/tenants/mod.rs → 租户 CRUD
|
||||
src/routes/tenants/{handlers,types}.rs
|
||||
src/routes/video_jobs/ → 视频任务管理
|
||||
src/routes/video_jobs/{handlers,sse}.rs
|
||||
src/routes/ai_assist.rs → AI 辅助生成(角色/场景/TTS/prompt)
|
||||
src/routes/subscriptions.rs → 订阅/用量
|
||||
src/services/tenant_service.rs → 租户业务逻辑
|
||||
src/services/video_service.rs → 视频任务调度
|
||||
src/services/usage_service.rs → 用量统计
|
||||
src/services/comfy_client.rs → ComfyUI API 客户端
|
||||
src/workers/video_worker.rs → 后台视频任务 Worker
|
||||
src/middleware/tenant_context.rs → 租户上下文中间件
|
||||
migrations/0010_tenants.sql
|
||||
migrations/0011_tenant_members.sql
|
||||
migrations/0012_subscriptions.sql
|
||||
migrations/0013_usage_counters.sql
|
||||
migrations/0014_comfy_workflows.sql
|
||||
migrations/0015_video_jobs.sql
|
||||
migrations/0016_assets.sql
|
||||
```
|
||||
|
||||
**前端:**
|
||||
```
|
||||
src/web/pages/VideoAssistant.tsx
|
||||
src/web/pages/VideoJobs.tsx
|
||||
src/web/pages/WorkflowLibrary.tsx
|
||||
src/web/pages/TenantSettings.tsx
|
||||
src/web/pages/TenantMembers.tsx
|
||||
src/web/components/video/*.tsx
|
||||
src/web/components/tenant/*.tsx
|
||||
src/web/hooks/useVideoJobs.ts
|
||||
src/web/hooks/useTenant.ts
|
||||
src/web/hooks/useAssets.ts
|
||||
src/web/hooks/useUsage.ts
|
||||
```
|
||||
|
||||
### 修改文件
|
||||
|
||||
```
|
||||
src/routes/mod.rs → 注册新路由
|
||||
src/web/App.tsx → 添加导航项和路由
|
||||
src/routes/video_agent.rs → 增强现有 Agent SSE
|
||||
src/services/mod.rs → 注册新服务
|
||||
src/config.rs → 添加 ComfyUI/套餐配置
|
||||
src/main.rs → 注册 Worker
|
||||
src/db/mod.rs → 新增表类型
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 实施步骤(按优先级)
|
||||
|
||||
### P0 - 基础链路
|
||||
1. migrations: tenants + video_jobs + assets 三张核心表
|
||||
2. 租户上下文中间件
|
||||
3. 视频助手 Agent SSE 增强 → 脚本解析 + AI 生成调用
|
||||
4. 前端 VideoAssistant 页面(脚本输入→解析→预览→导出)
|
||||
5. ComfyUI client → 提交 prompt + 获取结果
|
||||
|
||||
### P1 - 多租户
|
||||
6. 租户 CRUD + 成员管理 + 邀请
|
||||
7. 资源 tenant_id 隔离
|
||||
8. 用量统计 + 套餐限制
|
||||
9. API Key 管理
|
||||
10. 顶栏租户切换 + 用量显示
|
||||
|
||||
### P2 - 生产增强
|
||||
11. SSE 实时进度
|
||||
12. Worker 后台任务队列
|
||||
13. 视频任务历史 + 重试
|
||||
14. ComfyUI 工作流模板库
|
||||
15. AI prompt 优化(调用 gpt-5.5)
|
||||
|
||||
### P3 - 商业化
|
||||
16. 订阅管理(Stripe/内部)
|
||||
17. 多 ComfyUI 节点调度
|
||||
18. 对象存储集成
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user