ESC
开源 2 分钟阅读

Storycast 开源项目:输入一个主题,自动生成一部动画故事片

开源项目 Storycast 让用户输入主题、选择角色,即可端到端生成一部配有旁白的动画短片,包含剧本、关键帧、动画镜头、配音、配乐与逐字字幕。项目支持50位叙述者、26种画风、74种语言,全流程基于 fal.ai 模型编排(Claude、GPT-Image、MiniMax、ElevenLabs 等),浏览器内即可运行,并提供智能体提示词一键复现整条流水线。

来源:GitHub

Storycast

Storycast

输入一个主题,得到一部故事。
选择一个角色,给它一个主题,就能得到一部配有旁白的动画电影,全程在 fal 上端到端制作完成。

打开 Storycast · 观看发布视频

Storycast 首页

它能制作什么

一个角色担任叙述者,为你讲述一部解释某个主题的短片:包含剧本、关键帧、动画镜头、出镜台词、旁白、配乐、手写片尾字卡和逐字字幕。提供 50 位现成叙述者、26 种插画风格、74 种语言,时长 1 到 10 分钟。你也可以自创角色、上传自己的角色,或使用自己的插画风格。

Nib and the stick inside the pencil
Nib 与铅笔里的铅芯 · 黏土动画
Kiko and the secret life of lightning
Kiko 与闪电的秘密生活 · 水彩动漫风
Stella and the very first newspapers
Stella 与最早的报纸 · 清线漫画风
Rex and the bone that turned to stone
Rex 与变成石头的骨头 · 儿童蜡笔画
Rio y el tango del puerto
Rio 与港口的探戈 · 马克笔素描 · 西班牙语
Wren ve yerin altındaki gizli şehirler
Wren 与地下秘密城市 · 水粉故事书风 · 土耳其语

观看发布视频
▶ 发布视频

工作原理

所有内容都在你的浏览器中运行,使用你自己的 fal 密钥。

制作一部影片观看一部影片
选择主题、叙述者、画风、声音和时长观看、分享或下载完成的影片
  1. 剧本。 导演以分块方式撰写故事,每块要么是画外音,要么是叙述者出镜讲话,剧本编辑会平滑场景之间的每个衔接。
  2. 叙述者与关键帧。 叙述者会获得一张角色设定图和一张主视觉肖像,每个分块都会按所选风格生成关键帧。
  3. 配音。 每个分块都会被配上旁白,出镜台词会被调整到合适的时长。
  4. 镜头。 画外音分块变成动画镜头,出镜分块变成对口型的镜头。
  5. 配乐与剪辑。 创作一段配乐,将镜头剪辑对齐旁白,混音,书写片尾字卡并添加字幕。

模型

步骤fal 端点
导演、剧本编辑openrouter/router,使用 Claude Opus 5.5
图像理解、镜头检查openrouter/router/vision,使用 Claude Opus 5.5 和 Gemini 3.8 Flash
角色设定图、关键帧、片尾字卡openai/gpt-image-2.5/flare/text-to-image、openai/gpt-image-2.5/flare/edit
镜头minimax/h3-max/reference-to-video
出镜台词minimax/h3-max/lip-sync/image-to-video
旁白fal-ai/elevenlabs/tts/eleven-v3
配乐elevenlabs/music/v2.5
剪辑fal-ai/workflow-utilities/trim-video 和 fal-ai/ffmpeg-api(extract-frame、merge-videos、images-to-video、compose、loudnorm、merge-audio-video)
字幕fal-ai/workflow-utilities/auto-subtitle

用你的智能体制作一部

每个页面都有一个复制智能体提示词按钮。它会复制这份流水线的分步简报,并自动填入页面的主题、画风、叙述者和声音,这样拥有 fal 密钥的编程智能体就能在你的终端里制作这部影片。

Explore

本地运行

cd web && npm install && npm run dev

在应用中连接你的 fal 密钥即可开始创作故事。

部署

web/ 是一个静态 Vite 站点,可部署到任何静态托管服务(在 Vercel 上:根目录设为 web/)。

分享(可选)

share/ 是一个使用 D1 和 R2 的 Cloudflare Worker。没有它,分享功能将被隐藏。

cd share && npm install && npx wrangler login
npx wrangler d1 create storycast
npx wrangler r2 bucket create storycast-media
npx wrangler d1 execute storycast --remote --file schema.sql
npx wrangler turnstile widget create storycast-share --domain <your site host> --mode managed

将数据库 ID 和你的站点地址(ALLOWED_ORIGINS)填入 share/wrangler.jsonc,然后:

npx wrangler secret put IP_SALT
npx wrangler secret put TURNSTILE_SECRET
npx wrangler secret put FAL_KEY
npx wrangler deploy

为站点构建设置 VITE_SHARE_API 和 VITE_TURNSTILE_SITE_KEY(参见 web/.env.example),然后重新部署。

要发布一个提交到 Explore 的故事:

npx wrangler d1 execute storycast --remote --command "UPDATE films SET status = 'public' WHERE id = '<story id>'"