Toonflow源码解析:Node.js+Express+SQLite+AI SDK如何构建一站式AI短剧平台
Toonflow源码解析Node.jsExpressSQLiteAI SDK如何构建一站式AI短剧平台【免费下载链接】Toonflow-appToonflow 是开源一站式 AI 短剧创作工具将小说、剧本快速转化为动画短剧。集成 AI 编剧、智能分镜、角色与视频生成跨平台桌面端轻量部署助力创作者低成本批量产出视觉内容。Toonflow is an open-source AI tool that turns stories and scripts into animated short dramas. Features AI scriptwriting, storyboarding, character and video generation. A cross-platform desktop app for efficient content creation.项目地址: https://gitcode.com/gh_mirrors/to/Toonflow-appToonflow 是一款开源的一站式 AI 短剧创作工具核心能力是把小说、剧本快速转化为动画短剧内置 AI 编剧 Agent、智能分镜、角色与视频生成流水线。本文带你从源码层面拆解它的技术选型——Node.js Express 5 SQLite Vercel AI SDK Electron——看看一个桌面端轻量部署、全流程 AI 化的短剧工厂是如何搭起来的帮助你想学习 AI Agent 应用架构的开发者快速建立认知。一、先看效果AI 短剧创作平台能做什么Toonflow 的产品流程是一条完整链路小说导入 → AI 改编剧本 → 角色/场景资产生成 → 分镜绘制 → 视频生成 → 时间轴合成。AI 编剧基于小说自动生成故事骨架、改编策略和分集剧本并输出关键决策记录核心改编原则、删改方案资产工坊批量生成角色卡、场景卡、道具卡支持衍生变体分镜工作台分镜图自动生成 提示词可视化一键批量生成分镜视频多供应商模型支持自由接入各家大模型与生图/生视频 API二、整体架构Electron 里跑着一个本地 Express 服务Toonflow 采用**Electron 壳 本地 Node 服务**的经典桌面架构这也是它源码最值得学习的设计。入口在 scripts/main.tsElectron 主进程启动时把assets / models / serve / skills / vendor等数据目录同步到用户目录带版本比对升级时自动覆盖动态加载 src/app.ts 并在随机端口上启动本地 Express 服务通过自定义协议toonflow://让前端获取服务地址并桥接窗口最小化、最大化等系统能力BrowserWindow前端页面 │ HTTP /api/* Socket.IO ▼ Express 服务src/app.ts本地 127.0.0.1:随机端口 │ ├─ 路由层 src/routes/**自动扫描注册 ├─ Socket 层 src/socket/**Agent 流式对话 ├─ 数据层 SQLitebetter-sqlite3 knex └─ AI 层 Vercel AI SDK 动态供应商代码这种桌面应用内嵌 Web 服务的模式让前后端可以完全用 Web 技术栈开发同时享受 Electron 的跨平台分发能力。三、Express 层三个巧妙设计1. 路由零配置文件名即 API 路径core.ts 在开发期用fast-glob扫描src/routes/**/*.ts自动生成src/router.ts把每个文件挂载为/api/{相对路径}。也就是说新增一个src/routes/novel/delNovel.ts文件就自动获得了POST /api/novel/delNovel路由——没有任何手写路由注册表这对新手来说是很实用的工程技巧。2. JWT 鉴权 白名单所有/api请求默认需要 Bearer Token密钥存于 SQLite 的o_setting表见 app.ts仅/api/login/login放行。本地服务也做鉴权保证了桌面端 私有服务的安全性。3. 缩略图即取即用/oss静态资源路由内置了按需缩略图能力请求?size200x300或?size30%时用sharp现场压缩并缓存app.ts前端列表页因此可以秒开大图。四、数据层SQLite 单机库 自动类型推导Toonflow 选择了better-sqlite3同步高性能驱动 knex查询构造器的组合配置在 utils/db.ts数据库文件db2.sqlite直接落在用户目录零配置、单文件、随应用迁移非常适合桌面场景表结构由 lib/initDB.ts 声明式建表o_project项目、o_novel章节、o_script剧本、o_vendorConfig供应商、memoriesAgent 记忆等十余张表建库时自动插入默认数据默认管理员账号、Agent 模型槽位进阶彩蛋开发模式下用rmp135/sql-ts自动从数据库 schema 生成 TypeScript 类型types/database.d.ts表字段变更不用手动改类型对新手而言这套knex better-sqlite3是 SQLite 在 Node.js 生态里最省心的组合之一。五、AI 层Vercel AI SDK 与插件化供应商设计这是 Toonflow 最核心的亮点代码在 utils/ai.ts。1. 四类 AI 能力的统一封装AiText / AiImage / AiVideo / AiAudio四个工厂类统一了文本生成、生图、生视频、TTS 配音的调用方式底层全部走 Vercel AI SDK 的generateText / streamText。业务侧只需u.Ai.Text(scriptAgent:scriptAgent).stream({ messages, tools }) u.Ai.Image(供应商:模型).run({ prompt, referenceList, aspectRatio }).save(path)2. 供应商即代码动态加载模型接入层不同厂商的 API 协议千差万别Toonflow 的答案是把每个供应商写成一个 TypeScript 插件文件存于用户目录vendor/{id}.ts默认模板见 src/lib/vendor.json。运行时用sucrase转译 vm2沙箱执行utils/vendor.ts取出其中的textRequest / imageRequest / videoRequest / ttsRequest四个函数。这意味着新增一家模型厂商不需要改核心代码在前端供应商配置页粘贴代码即可生效——一套非常聪明的应用内插件系统。3. 任务记录与可观测性每次 AI 调用都通过withTaskRecord写入任务表utils/taskRecord.ts记录模型、耗时、成功/失败前端任务中心因此能展示哪些 AI 任务在跑、失败原因是什么。六、Agent 层多智能体 本地向量记忆1. 双 Agent 流水线编剧与制片src/agents/下是两个编排型 Agent剧本 AgentscriptAgent/index.ts决策层读取小说与项目信息通过tool call 调度子 Agent——storySkeleton故事骨架、adaptationStrategy改编策略、script剧本生成、supervision编辑审核形成决策 → 执行 → 监督的三级结构生产 AgentproductionAgent/index.ts负责资产衍生、导演规划、分镜生成等生产环节的子 Agent 调度Agent 的人设与流程全部外置为 Markdown 技能文件data/skills/如 script_agent_decision.md改 Prompt 不改代码还支持用户在界面里在线编辑技能见 routes/setting/skillManagement/。2. 记忆系统本地 Embedding 摘要压缩 向量检索utils/agent/memory.ts 实现了一套轻量长期记忆每条对话写入memories表同时用ONNX 本地模型all-MiniLM-L6-v2见 data/models/推理代码在 utils/agent/embedding.ts生成向量——隐私数据不出本机每 3 条消息触发一次 LLM 摘要压缩generateSummary检索时综合近期对话 历史摘要 向量相似召回三路注入上下文这套短期对话 摘要 RAG的记忆三层结构是目前 Agent 应用里性价比最高的方案值得收藏学习。3. Socket.IO 流式推送Agent 的推理过程通过 Socket.IO 命名空间/api/socket/scriptAgent实时推给前端reasoning-start/delta思考过程、text-delta正文流式、工具调用事件等前端因此能展示编剧正在思考中…耗时 3.2 秒这样的过程化 UI。七、关键源码地图新手阅读路线模块路径看点服务入口src/app.tsExpress 装配、JWT、缩略图路由生成器src/core.ts文件名即路由数据库src/utils/db.ts / src/lib/initDB.ts建表与类型推导AI 封装src/utils/ai.ts文本/图/视频/音频统一入口供应商插件src/utils/vendor.tsvm2 沙箱动态执行Agent 编排src/agents/scriptAgent/子 Agent 工具调用记忆系统src/utils/agent/memory.ts本地向量 摘要技能 Promptdata/skills/剧本/生产全流程提示词视频提示词模板data/modelPrompt/不同视频模型的模式模板八、如何快速跑起来git clone https://gitcode.com/gh_mirrors/to/Toonflow-app cd Toonflow-app yarn install yarn dev # 纯后端服务默认端口 10588 yarn dev:gui # Electron 桌面端开发 yarn dist:win # 打包 Windows 安装包依赖清单见 package.jsonexpress5、better-sqlite3、knex、aiVercel AI SDK、socket.io、electron以及huggingface/transformers用于本地 Embedding。写在最后Toonflow 展示了中小团队构建 AI 应用的几条务实路线用 SQLite 而非 MySQL 换掉部署成本、用 Markdown 技能文件管理 Prompt、用供应商即代码解决多模型接入、用本地 ONNX 模型守住隐私边界。如果你正计划从零搭建一个 AI 短剧或 AI 内容生产工具这套 Node.js Express SQLite AI SDK 的架构几乎可以直接照搬。【免费下载链接】Toonflow-appToonflow 是开源一站式 AI 短剧创作工具将小说、剧本快速转化为动画短剧。集成 AI 编剧、智能分镜、角色与视频生成跨平台桌面端轻量部署助力创作者低成本批量产出视觉内容。Toonflow is an open-source AI tool that turns stories and scripts into animated short dramas. Features AI scriptwriting, storyboarding, character and video generation. A cross-platform desktop app for efficient content creation.项目地址: https://gitcode.com/gh_mirrors/to/Toonflow-app创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考