StoryGen-Atelier
输入一句话,AI 生成故事分镜、逐帧图像和完整短片,零本地 GPU 依赖
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
输入一句话,AI 生成故事分镜、逐帧图像和完整短片,零本地 GPU 依赖
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:深夜,你脑子里突然冒出一个绝妙的故事——也许是赛博朋克都市里的孤独漫步,也许是宫崎骏式森林里小精灵的冒险。你把这些想法写成一句话,交给 StoryGen Atelier,30 分钟后,一段带配乐的完整短片就出现在你面前。这不是科幻,这是 GitHub 上 873 颗星、fork 129 次的真实项目正在做的事。
StoryGen Atelier 是由独立开发者 0xsline 构建的 AI 分镜故事板与视频生成工具。它将 Google Gemini 的图像生成能力、Google Vertex AI Veo 3.1 的视频生成能力,以及开源工具 ffmpeg 的剪辑能力整合在一起,形成了一套从"一句话剧本"到"完整短片"的端到端管线。
分镜(Storyboard)是影视创作中连接剧本与实际拍摄的关键环节。传统流程中,导演或分镜师需要将剧本逐场拆解,用手绘或软件逐帧绘制画面,标注运镜、时长、对话等内容。这个过程既费时又需要专业技能——普通人很难完成一组连贯、视觉风格一致的分镜图。
StoryGen Atelier 的出现,正是为了打破这个门槛。项目作者 0xsline 本身很可能是一位影视或游戏创作者,熟悉从剧本到分镜到视频的完整流程。选择开源这条路,可能是希望建立一个可定制的"AI分镜工作站",让任何人都能在本地部署,而不必依赖 Midjourney + Runway 这类需要反复切换平台的工作流。
从技术选型看,项目明确绑定了 Google 生态(GCP、Vertex AI、Gemini API),而非 OpenAI 或 Stability AI。这背后的逻辑很清晰:Google 的 Gemini 支持原生图文多模态(同一模型既能理解文本也能生成图像),而 Veo 3.1 是 Google 当时最强的文生视频模型,两者配合可以在同一个 API 体系内完成图生视频的完整链路。
StoryGen Atelier 的完整工作流分为四个阶段,每个阶段对应后端的一个核心服务模块:
第一步:剧本理解与分镜规划(llmService.generatePrompts)
用户在前端输入一句话故事(如"一颗种子破土而出,最终长成参天大树"),后端将该文本发送给 Gemini 3 Pro Text 模型。模型的系统提示词(System Prompt)被精心设计,强制注入安全过滤规则,确保输出内容符合 Google AI 使用政策。核心提示词包含以下约束:
模型输出一个 JSON 数组,每个元素包含:shot 编号、英文图像生成 prompt、时长(固定 4/6/8 秒之一)、中文画面描述、镜头叙事(shotStory)。若用户未配置 GEMINI_API_KEY,系统内置了一个名为"The Seed"(种子)的四镜头备用分镜,确保无密钥时也能展示基本功能。
第二步:逐帧图像生成(imageGenService.generateImage)
分镜规划完成后,每个镜头的英文 prompt 发送给 Gemini 3 Pro Image Preview 模型。imageGenService.js 是整个管线中最精细的模块,它实现了三项关键能力:
图像以 Base64 data URI 格式返回给前端,前端直接作为 <img src="data:..."> 渲染,无需额外的图床或存储服务。
第三步:镜头转场分析与视频生成(llmService.analyzeShotTransition + videoService)
这是整个管线最独特的设计——"插值链"(Interpolation Chain)模式,而非直接用文本到视频的模型生成完整片段。具体流程为:
这种方式的优势在于:Veo 模型在"图生视频"任务上通常比"文生视频"质量更高(因为有明确的视觉参考),且通过 LLM 分析转场可以保证镜头间的运动逻辑连贯。
第四步:视频合成与输出(videoService.generateFullVideoFromShots)
ffmpeg 拼接完成后,最终视频通过 Express 的静态文件服务(/videos 路由)暴露给前端,前端提供 Gallery 页面供用户预览和下载。同时,videoLogStore 和 storyboardLogStore 记录了完整的生成历史,用户可以回溯每次生成的参数和中间结果。
项目采用标准的前后端分离架构:
前端(frontend/)
| 技术 | 版本/库 | 作用 |
|---|---|---|
| React | 18.2 | 核心框架 |
| Vite | 4.4 | 构建工具与开发服务器(端口 5180) |
| Mantine UI | 8.3 | UI 组件库(进度条、弹窗、卡片等) |
| Emotion | 11.14 | CSS-in-JS 样式方案 |
主要页面包括:主应用(App.jsx)、视频日志管理(VideoLogs.jsx)、图库(Gallery)。前端通过 api.js 中的 axios/fetch 与后端 REST API 通信。
后端(backend/)
| 技术 | 版本/库 | 作用 |
|---|---|---|
| Node.js / Express | 4.18 | HTTP 服务框架(端口 3005) |
| better-sqlite3 | 12.5 | 轻量 SQLite 数据库(存储日志和图库) |
| @google/generative-ai | 0.24 | Gemini API 客户端 |
| google-auth-library | 9.14 | GCP 认证(Vertex AI OAuth2) |
| fluent-ffmpeg | 2.1 | ffmpeg 封装(视频拼接) |
| ffmpeg-static | 5.3 | 捆绑式 ffmpeg 可执行文件 |
| undici | 7.16 | HTTP 客户端(带代理支持) |
后端支持通过环境变量配置代理(HTTPS_PROXY 等),使用 undici 的 ProxyAgent 实现,让开发者在受限网络环境下也能正常运行。
数据存储
项目使用 SQLite 数据库存储两类日志:
图库数据存储在 GalleryStore 中,支持分镜的增删查。
部署难度:中等(2/5)
项目提供了 start_servers.sh 和 stop_servers.sh 两个脚本,分别启动前后端服务并以 nohup 方式后台运行。对于大多数开发者而言,从 Git 克隆到 npm install && ./start_servers.sh 即可完成基础部署。
关键依赖与门槛:
容器化支持:无
项目未提供 Dockerfile 或 docker-compose.yml,这对于需要快速部署到服务器或 CI/CD 环境的用户是一个缺憾。由于依赖 Google Cloud 服务(Vertex AI),即使有 Docker 镜像也需要在容器内注入 GCP 凭证,部署复杂度不低。
Web UI 支持:有(Mantine React 应用)
前端提供了完整的图形界面,包括故事输入、分镜预览、生成进度条、Gallery 管理等功能。用户无需命令行即可完成完整工作流。
硬件需求:极低
由于所有 AI 推理均发生在 Google 云端(Gemini API + Vertex AI),本地仅需运行 Node.js 服务器。最低 2GB RAM 即可流畅运行,GPU 完全不需要。这与大多数本地运行的 AI 工具形成鲜明对比——StoryGen Atelier 本质上是一个"云端 AI 的前端包装器"。
图1:StoryGen Atelier 支持多种视觉风格生成,包括 Anime、Cyberpunk、Ghibli、写实等主流风格。同一剧本输入可切换不同风格,实现差异化输出。
适合场景:
局限性:
StoryGen Atelier 在开源社区中占据了一个独特的位置:它不是又一个"调用 OpenAI API 的包装器",而是对 Google 整个 AI 媒体生成体系的系统化整合。通过将 Gemini 的图文能力、Veo 的视频能力、GCP 的认证体系串联起来,它展示了一种"多模型协同流水线"的工程范式。
从增长曲线看,项目 fork 数(129)显著高于平均水平,说明有相当数量的开发者将其作为学习 Google AI API 编程的参考案例。对于想了解如何系统化组合多种 AI 能力的开发者,这个项目的代码结构和工程设计值得深入研究。
StoryGen Atelier 是一款目标清晰、工程扎实的 AI 媒体生成工具。它的核心价值不在于"重新发明了 AI",而在于将 Google 最新的多模态 AI 能力通过一个友好的 Web UI 呈现给创作者。零本地 GPU 需求是其最大的易用性优势,而对 Google Cloud 服务的强依赖则是最主要的门槛。如果你已有 GCP 账号和 Gemini API 密钥,StoryGen Atelier 能在 10-15 分钟内为你搭建一个从剧本到短片的完整创作环境。