源码系统概览
文章正文
OpenStory 是一个把脚本转化为带风格视频的开源 AI 视频制作平台。
它让团队在共享的角色、场景与视觉风格库上协作,逐场景生成图片、动态视频与音频,并保持整片风格一致。
源码简介
OpenStory 基于 TanStack Start 与 React、TypeScript 构建,后端运行在 Cloudflare Workers 与 D1 数据库之上,使用 Bun 作为运行时。
仓库包含 src 前端路由、e2e 测试、drizzle 数据库迁移与 containers 视频导出服务,整体约一千七百个源文件。
它把一段脚本拆解为分镜序列,为每个分镜调用图像与视频模型生成画面,再用 mediabunny 与 FFmpeg 在服务端容器里合成为 MP4。
项目采用 MIT 许可,提供一键部署到 Cloudflare 的按钮,数据库表覆盖账号、角色、场景、序列、风格、配音、账单与团队等完整结构。
docs/compliance 目录专门说明内容溯源与深伪防护能力,每条生成都会写入 content_provenance 便于追溯。
适用场景
短剧与广告分镜预演,先用低成本生成整片再决定实拍投入。
营销视频批量生产,同一脚本换风格库即可产出多版成片。
教育与培训动画,把讲义脚本转成带角色的一致视频。
团队视频资产库,沉淀可复用的角色、场景与视觉风格。
功能亮点
脚本转分镜,自动把文本拆成带时序的场景序列。
风格一致,共享角色、位置与风格库保证跨场景统一。
服务端视频导出,Cloudflare Container 用 mediabunny 与 FFmpeg 合成 MP4。
团队权限与账单,内置 teams、team_members 与 team_billing_settings 管理协作与计费。
内容溯源,每次生成写 content_provenance 行,支持深伪防护与下架追溯。
一键部署,提供 Deploy to Cloudflare 按钮快速上线。
技术架构与部署指南
技术栈与运行环境
前端框架:React 与 TanStack Start,使用 TypeScript 与 Vite 构建。
运行时与边缘:Bun 1.3 以上,主服务部署在 Cloudflare Workers,数据落在 D1。
视频合成:containers/video-export 用 mediabunny 与 @mediabunny/server 做服务端导出。
数据库:Drizzle ORM 管理 D1,迁移脚本在 drizzle/migrations 下按版本组织。
许可协议:MIT,仓库含完整的 e2e 与 Playwright 测试。
安装与部署提示
安装 Bun 后执行 bun install,再用 bun scripts/setup.ts 初始化本地或 Cloudflare 环境。
配置 .env.example 中的各项密钥,包括存储、数据库客户端与模型网关地址。
数据库结构通过 drizzle 迁移建立,生产环境用 wrangler d1 execute 应用 migrations。
视频导出容器单独部署,由 VideoExportContainer Durable Object 在前端导出之外提供服务端合成。
截图与演示说明
前端可演示页面包括 src/routes/_app/sequences 的分镜序列列表,以及 gallery、styles、talent、locations 等资产管理页。
src/routes/_app/admin 提供审核与用量后台,对应 src/lib/auth/system-admin.ts 的权限逻辑。
containers/video-export 是服务端导出服务,POST /export 接收场景视频与音乐地址合成最终 MP4。
docs/compliance 说明溯源与深伪防护在代码中的落点,是可演示的合规能力页。
常见问题
问:必须部署到 Cloudflare 才能用吗?
答:主服务设计为 Cloudflare Workers 原生,但导入别名提供了 default 与 storybook 分支,可对接本地 Node 与桩实现做开发。
问:视频导出为什么放在容器而不是 Worker?
答:浏览器导出依赖 WebCodecs 与 Web Audio,Cloudflare Workers 不提供,因此服务端合成改用 NodeAV 原生 FFmpeg 绑定,跑在 Cloudflare Container 里。
安全风险提示
每次生成都会写 content_provenance 到 R2,包含团队、用户、模型与提示哈希,便于溯源与下架,部署时务必保留该链路。
team_api_keys 管理第三方模型密钥,生产环境应启用校验,避免失效密钥继续调用。
项目调用外部图像与视频模型,对外提供服务前需完成模型提供方的合规问卷与深伪防护要求。
下载说明
本仓库仅供学习与研究使用,部署到公网前请完成自身的内容安全与合规审查。
视频生成依赖外部图像与视频模型网关,密钥与费用需自行申请与管理。
使用本站提供的源码产生的任何视频内容,均由部署者承担合规与版权责任。
GitHub项目开源地址:https://github.com/openstory-so/openstory