Skip to content

feat(plugins): RunningHub 插件 - 工作流和 AI 应用就是模型,删掉内置实现 - #420

Open
enderzcx wants to merge 1 commit into
feat/plugin-comfyuifrom
feat/plugin-runninghub
Open

enderzcx wants to merge 1 commit into
feat/plugin-comfyuifrom
feat/plugin-runninghub

Conversation

@enderzcx

@enderzcx enderzcx commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator

这个 PR 做什么

RunningHub 从内置功能变成一个普通插件 beeftv-plugin-runninghub。你的工作流和 AI 应用就是 BeefTV 里的模型:在「模型配置 → 添加模型服务」选 RunningHub,填 API Key,手动加上工作流编号,画布上就能用。

同一个 PR 删掉内置实现:Go 里的 RunningHub 代码、内置的 RunningHub 插件声明、坏的 runninghub-workflow 协议包、画布和设置页里写死的 RunningHub 字段。净删约 1.1 万行。

依赖 #413(基于 feat/plugin-comfyui)。

用户能看到的变化

  • 模型服务窗口多了 RunningHub(标着「插件提供」),需要先安装插件。
  • 点「读取模型」时直接告诉用户要手动添加、该填什么。RunningHub 没有用 API Key 列工作流的接口。
  • 模型服务列表里,插件接入的服务显示「插件提供」,不再写「OpenAI 兼容」和一个用不上的模型目录地址。这一条同样修正了 ComfyUI。
  • 模型服务窗口的说明文字不再保证「读取模型」一定有结果。
  • 生成配置节点去掉了「生成来源」和工作流参数区。

不做迁移

按已确认的方案,不搬旧配置,也不留内置兜底。之前配过的人要去市场装插件、重新填 Key,旧 RunningHub 节点要重新选模型。

实际影响比预想小:改动前内置 RunningHub 在桌面版里已经用不了。

  • 启动时 localWorkspaceConfig 每次都把 runningHub 配置清回默认值。
  • 设置页没有挂载 RunningHub 面板,runninghub-settings-pane.tsx 没有任何引用。
  • 插件中心在本地运行时把内置 RunningHub 过滤掉了。
  • 本地模式下,后端拒绝把参考素材传给 RunningHub。

需要审阅的决定

字段映射编辑器、图形编辑器、测试台没有搬进插件,随内置实现一起删掉了。 已确认的方案没有提到它们,这里沿用 ComfyUI 插件的做法:自动判断提示词、素材和种子该填到哪。如果要保留手动映射,需要单独做一个插件设置界面。

其他取舍:

  • 只用一个 Key。 素材走 v2 上传接口,不再区分积分 Key 和企业级 Key。
  • 模型 ID 手动填,类型在添加时选。 工作流填编号,AI 应用写 app:编号,也可以贴网页链接。
  • AI 应用的字段用 GET 读。 旧代码用 POST,用假 Key 探测时 POST 返回 PARAMS_INVALID、GET 能走到鉴权,所以旧的 POST 很可能一直是坏的。
  • lib/targets.mjs 是 ComfyUI 插件分类表的精简副本。 两个插件各自独立发布,为此再发一个共用包现在不值得。
  • workflowProvider 字段保留,只剩 "model" 一个值。 重试靠它判断是否以节点自身设置为来源,删掉会改变普通生成的重试行为。
  • /plugins/status 只返回 states,不再返回 statuses。 statuses 只服务内置工作流插件。

验证

项目 结果
go test ./... 67 个包全部通过
bun run test 3367 通过,1 跳过,2 失败(都是 public release boundary,测试环境缺 rsync,与本 PR 无关)
tsc、bun run lint、bun run build、node scripts/structure-budget.mjs 通过,结构基线已收紧
真实后端 + 假 RunningHub 从本地目录装插件,插件目录能看到 RunningHub;工作流、AI 应用、网页链接、视频都生成成功;上游失败原因、Key 错误、编号读不到、模型名写错都显示可读文字
浏览器 添加服务、手动加模型、保存,在画布图片节点生成并显示结果

没有验证的部分

没有用真实 RunningHub 账号跑过。 上游行为的依据只有三类:旧 Go 客户端、一个第三方 SDK、用假 Key 探测到的接口响应。官方文档多数页面读不到。真实账号的付费冒烟要等项目负责人给预算。

生成配置节点的新面板只做了渲染测试,浏览器里当前没有直接新建这个节点的入口,没有点过。

已知问题(不在本 PR 修)

  • 图片任务失败后,通用的恢复逻辑会向服务地址发一次 GET /v1/images/jobs/{id}。这是 BeefAPI 专用的查询,对插件服务没有意义。请求只发给同一服务,密钥不外泄,404 后不影响结果,ComfyUI 插件同样如此。
  • 协议任务失败时,用户看到的文字前面带着「声明式协议任务失败(任务 N):」。所有协议插件都是这样,读起来像内部术语。
  • 画布添加节点菜单里,workflow 分组在浮动菜单中不显示。

合并顺序

和 #409 只有一处冲突:web/src/pages/plugins/index.tsx 顶部的一行图标 import,两边各删了几个图标。后合并的一方取两边都用到的图标即可。和 #414 没有冲突。

界面有改动,合并前需要交叉 review。

发布前提

beeftv-plugin-runninghub 还没有发布到 npm,也没有进插件市场清单。发布和清单 PR 需要单独确认。

🤖 Generated with Claude Code

新增 beeftv-plugin-runninghub:用户手动添加工作流编号或 app:编号 作为模型,
插件自己上传素材、填节点、查进度。同一个提交删掉内置实现:Go 的 RunningHub
代码、内置插件声明、坏的 runninghub-workflow 协议包、画布和设置页里的
RunningHub 字段和工作流编辑器。按确认的方案不做迁移。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant