
今天拆的是 Toonflow:一个把剧本、角色三视图、3D 镜头预演和视频节点摊在同一张无限画布上的开源 AI 短剧工作台,内置 Agent 与外部 Agent 通过 MCP 改的是同一张画布;文章给全它在链条上的层级、四条上手入口、九处已知阻塞,以及那笔不随软件免费而消失的模型账。

http://127.0.0.1:10588/mcp,走 Streamable HTTP,带一个 Bearer 凭证;也提供一个 stdio 入口,只连接正在运行的 Toonflow,另起一个进程的事它不做。9
packages/mcp/README.md),2026-10-01 采集:开关键路径、HTTP 与 stdio 两种接法、凭证位置都写在这一页里。9*.umd.js 的形式装进数据目录的 nodes/。5*.tool.js 装进 tools/。data/skills 与当前工作区的 skill/ 两层,同名时工作区版本优先。10team.json 声明成员、委派关系和各自能读的资料。11
docs/screenshots/assetCanvas.png:一张画布上排着九个角色资产,每个角色一张面部特写加正面、侧面、背面三视图,右侧是 Agent 的对话面板。所谓「角色一致性」,落到界面上就是这个样子。3
docs/screenshots/directorStudio.png:低多边形人偶围着圆桌,底部是关键帧与运镜控制;画面右侧的对话面板里,Agent 在生成前把「会产生费用(报价未知),需要你单独授权」单独列了出来。3| 你提供 | 它交回 |
|---|---|
| 一台能跑桌面版(Windows x64、macOS arm64 / x64)或 Bun 1.3.14 加 FFmpeg 的机器2 | 一个只监听本机的服务:页面与 API 在 3000 端口,MCP 在 10588 端口9 |
| 文本、图像、视频、音频四类模型的 API Key,分开填、分开管6 | 剧本、分镜、资产图、视频片段、配音五类节点拿到真实产出,产物落回工作区 |
一个工作区目录,默认叫 myProject;Docker 里是命名卷 toonflowData3 | 画布 JSON 与素材留在自己的硬盘或卷里,可以整目录备份、迁移、换机器 |
| 明确授权:画布的第一动作必须先是剧本节点,生成前它还会单独要一次授权 | 它只问影响结果、又判断不出来的缺项,其余按本次剧本和已有素材往下走13 |
| 一次性交代清楚时长、风格、画幅和语言 | 沿用你给的口径,产出可继续编辑的工程而不是一条成片 |
toonflow-2.0.2-Setup.exe、M 芯片 Mac 的 macos-arm64-toonflow.dmg、Intel Mac 的 stable-macos-x64-toonflow.dmg),装好打开,首次启动的快速配置里填模型,然后选一个工作区目录。2 Windows 安装器会自动装 WebView2,装完打不开就到微软那页手动装一次运行时。3git clone https://github.com/HBAI-Ltd/Toonflow-app.git
cd Toonflow-app
docker compose up -d --buildsudo apt-get install -y git curl unzip ffmpeg
curl -fsSL https://bun.com/install | bash -s "bun-v1.3.14"
git clone https://github.com/HBAI-Ltd/Toonflow-app.git && cd Toonflow-app
bun install --frozen-lockfile && bun run build:server
mkdir -p data/workspaces/myProject && bun run start:serverhttp://127.0.0.1:10588/mcp,请求头加 Authorization: Bearer <凭证>,重连后先调 getAppState。9 随包还有一个给外部 Agent 用的技能文件,可以从设置里导出、放进你那个工具的技能目录;不装它也能用,工具自己的说明足够调用。16getAppState 返回连接 ID、工作区目录和面板状态,能拿到这三样就算接通了。画布类工具需要有打开的窗口或网页,服务端的文件、技能和媒体能力在没有前端时也能用,只是目录必须落在 data/workspaces 里。bun run start:server。README 的「访问与数据说明」原话是「业务页面与 API 没有独立登录鉴权……服务器安装时,请通过防火墙或安全组限制 3000 端口的访问来源;公网访问需配置带认证的反向代理」,MCP 文档同时写明「MCP 凭证只保护 MCP 入口……不属于全站认证方案」,而当前主分支的 apps/server/src/app.ts 里 app.use(cors()) 对任意来源放行。三处都采集于 2026-10-01。359 你能做的:只在回环地址或 SSH 隧道后面用;要暴露就先加一层带认证的反向代理。admin/admin123、CORS 允许任意来源、有一个能导出整库的接口,攻击者页面可以自动发现服务、登录并把密码、JWT 签名密钥和供应商 API Key 读走;Windows 上「打开文件夹」那个接口还能被拼出任意系统命令。触发条件是攻击者在同一台电脑的浏览器里打开一个恶意页面。报告 #279(本地命令执行,2026-09-15 提交)与 #281(敏感信息泄露,2026-09-16 提交)都在 2026-09-19 关闭,维护方回帖承认问题并称已修复,报告方随后请求开安全公告和 CVE 编号;帖子里没有写明修复落在哪个版本号上。1718 你能做的:桌面版升到 2.x 再跑,改掉默认口令,别在客户端跑着的时候随便开陌生页面。expected number, received string。触发条件是对话模型把工具参数写成了带引号的字符串。这条值得单独说,因为它的归属跟第一眼的印象相反。#289 在 2026-09-27 提交,维护方先在自己代码上复现不出来,逐条要日志;拿到原始调用记录后确认三次失败调用传的分别是 "8"、"4"、"4",用户换成 DeepSeek V4.1 Flash 第一次仍报错、第二次改成数字后成功,MiniMax M3 一直失败,2026-09-29 关闭。结论是工具调用的参数类型不对,Toonflow 没有把数字转成字符串。20 你能做的:先翻原始调用日志看参数带不带引号,再换个对话模型做对照——这是这条问题上最省事的排查动作,也是它的适用范围:故障出在哪一层,取决于你接的是哪个模型。AGENTS.md 把这条写成了硬规则,文件、文件夹、组件名一律小驼峰,短横线、蛇形、帕斯卡和全大写都不许用。22 你能做的:文件名严格照规则改;报错信息没有告诉你它比的是文件名还是里面的 ID。comfyuiMiniMaxH3 接上了本地的 ComfyUI v0.37.2,这条路走得通,只是要自己写 provider 定义。2023 你能做的:照 packages/providers 的定义自己写一个;注意模型配置里漏掉 audio: true 会让界面上的声音开关跟实际能力对不上,这一点是维护方在 #289 里顺手指出的。exclusive,不覆盖已有文件。9 你能做的:素材先进工作区再引用,音频按它认的格式转一道。package.json 里写的也是 MIT。25 MIT 对商用和自部署都不设门槛,这一条让它在同类里显得干净——hypit 那份改过的 Apache-2.0 会把多租户托管挡在门外。
api.toonflow.net,平台源码也开源了,可以自己部署审计。27 软件不收钱,它的位置就在模型转售这一环上。| 方案 | 你给它什么 | 它给你什么 | 它在这一层 | 许可与公开体量 |
|---|---|---|---|---|
| Toonflow | 一台机器、四类模型 Key、逐段的授权 | 一张可继续编辑的无限画布工程 | 编排与工作台 | MIT,16,292 star1 |
| HyperFrames(第 14 期) | 一份 HTML / CSS 工程 | 逐帧拍出来的 mp4 | 渲染底座 | Apache-2.0,54,696 star28 |
| hypit(第 15 期) | 一条参考视频 | 可重跑的 SVML 作品源码 | 工作流描述语言 | 改过的 Apache-2.0,17,998 star29 |
| OpenChatCut(第 16 期) | 素材与一句自然语言 | 可撤销的真时间线工程 | 编辑器加 MCP | AGPL-3.0,2,064 star30 |
| Diffusion Studio(第 13 期) | 一份 JSX 时间线 | 同一份文件上的协同编辑 | 编辑器 | MPL-2.0,3,166 star31 |
| OpenStoryline(第 6 期) | 素材与一份 config.toml | 一条 18 节点的成片产线 | 自带 Agent 的产线 | Apache-2.0,3,456 star32 |
| Nomi(第 8 期) | 本机工作台加上你自己的模型 | 23 个 MCP 工具驱动的产物 | 工作台加 MCP | AGPL-3.0,534 star33 |
| video-shotcraft(第 1 期) | Claude Code 或 Codex | 157 张镜头卡排出的产品片 | 技能包与镜头资产库 | Apache-2.0,10,039 star34 |
| Remotion | 一份 React 工程 | 程序化生成的视频 | 渲染底座 | 自订许可(GitHub 识别为 NOASSERTION),61,288 star35 |
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
toonflow.net
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.