Yo guy, 每个故事都值得被拍出来 !
From novel
to final cut
AI 故事工坊把「一部小说 → 一部动画成片」的全过程装进一个原生 macOS 桌面应用。 不是把若干个 AI 接口串起来的脚本集合,而是一条有导演、有契约、有闸门、有签认的生产线。
Workspaces
6
导演工作流固定六站,每站有自己的就绪判据
Director Skills
28
随产品打包的 CDS 导演知识资产
Regression Tests
219
经审核的离线单元与回归测试
DB Schema
v47
onCreate 与迁移链由 schema_parity_test 守护
Promises
三条可验证的承诺
不是功能卖点,是可被检查的条款。每条都对应代码里的一道闸门—— 做不到就失败回流,而不是静默兜底。
Directed, not generated
导演先立案,执行照章办事
CDS 导演引擎产出讲戏本与生产契约,契约冻结 provider、模型与镜头选择。 改全局设置不影响已批准的项目;改项目设置即契约失效,必须重编重审。 执行层没有自由裁量权——它只负责兑现契约。
Verified, not trusted
核验,而非信任
音画对齐、时代锚点、参考素材预算、媒体完整性都有硬性闸门。
时间轴改动后必须 ffprobe 实测,|Δ|>0.6s 即抛错——
禁止用 -shortest 把错位藏起来。
Cost is a feature
额度是一等公民
免费额度台账、模型接力梯队、欠费即停。AI 生产的真实成本被当作 产品功能来管——任何会产生付费扣费的调用,先停下来问你。
Pipeline
六个工作台,一条生产线
左侧导航轨固定六站。每一站的产物都落进本地 SQLite,带回执、带审计、带互斥租约—— 重复点击即拒,重启后只取回、绝不重新提交。
01
全局设定
画幅、帧率、风格、叙事模式、供应商与模型。RenderSpec 是画幅与 fps 的单一来源,禁止下游硬编码。
projects.settings
02
故事剧本
原著导入 → CDS 拆解 → 讲戏本 → 剧情点 → 分集。原著逐字保留,改编产物标注段落来源。
scripts.breakdown_md
03
导演资产
角色设定、视觉档案、场景主图、道具,以及作为跨资产美术一致性单一真相源的全片视觉风格基准。
character_visual_profiles
04
分镜图片
逐分镜编译提示词——时代锚点 + 出场角色完整设定 + 本镜镜头语法。参考素材先裁决后提交。
shot_attempts · image_receipts
05
动态分镜
逐镜运镜设计驱动 img2video。禁 Ken Burns 伪运镜,禁全项目固定机位——每镜必须有真实的画面内动态。
remote_task_receipts
06
渲染预览
配音、配乐、音效、字幕、调色、拼接、终检、签认。成片签认绑定 MP4 内容指纹——任一变化即过期。
film_approvals
「成片签认 ≠ 渲染完成。completed 只是执行状态。」
签认绑定 MP4 内容指纹 + 导演版本
创作层面的通过,
仍然需要有人真的把片子看完。
Human at the helm
Trust
能力越大,责任越大
四条准则适用于产品的一切生成环节。违反任何一条的产物不得交付。
Traceable
可溯源
原著 original_text 永久保留;每个改编产物都标注它对应的原著段落。
改编幅度可审计、可回溯。
Explainable
可解释
每个分镜的提示词落库可查——时代背景、出场角色、镜头语法逐项在案, 而不是一个不可复现的黑箱调用。
Human at the helm
有人掌舵
AI 是大副,只提供航线建议。导演仲裁转人工、失败回流待裁决—— 最终决策权永远属于你。
Local by default
数据主权
项目库、素材、成片全部存在你自己的硬盘上。SQLite 本地持久化, 只有生成调用才走网络。
Production Rules
差异不在能调哪些模型
差异在这些写进代码、由回归测试守护的硬规约。它们是大量返工换来的—— 每一条背后都有一次事故。
| 规约 | 一句话 | 实现锚点 |
|---|---|---|
| 剧本改编 | 尊重原著的电影化改编,不是逐字转写。故事内核、人物关系、主题立意、时代设定忠于原著;台词创作、场景增删、结构重排是被授权的自由。 | cds_director_service.dart |
| 运镜 | 禁 Ken Burns 静帧伪运镜,禁「运镜全固定」。每镜按内容与情绪赋予有意义且多样的运动,并据此驱动生成。 | motion_prompt_service.dart |
| 生图提示词 | 逐分镜构造,同场景各镜画面必须不同。每镜必含【时代背景】锚点——纯景别镜也不例外。 | image_generation_service.dart |
| 音视频时长 | 单镜音频 ≤ 视频时长。视频更长是允许且更好的,给剪辑留余地;音频更长只能循环补画面,绝不允许。 | video_generation_service.dart |
| 音画一致 | 任何改动时间轴的处理之后必须实测核验,不能只信任。mux 之前比对两轨时长,|Δ|>0.6s 即抛错。 | stitch_service.dart |
| 执行真实性 | 参考素材先裁决后提交,必需项超限即失败;远端任务受理即落回执,重启后只取回、绝不重新提交。 | reference_manifest.dart |
| 计费 | 优先免费额度;任何会产生付费扣费的调用先停下询问。台账合并不裸覆盖,视频域换档留 20% 地板。 | ark_quota_sync_service.dart |
← 横向滑动查看每条规约的实现锚点
Interface
进了产品,语言立刻收敛
官网是传播场景,用得起星空、缎带与珊瑚橙。数据界面是品牌的克制面—— 净白底、发丝线、薄荷一色到底,数字永远是版面最大的元素。 下面这块是产品界面的配色示意。
Workflow
Shots Rendered
1 253
+184 较上一轮
Free Quota Left
62%
Seedream 5.0 Pro · 今日已补充
Gate Failures
3
待裁决 · 已回流导演
First Mate · AI 洞察
置信度:高
第 3 集有 7 个分镜的提示词缺少【时代背景】锚点,与「沧海红盐」事故同型。 建议在生图前补锚点,否则人物服饰会漂移到错误年代。
来源:shot_prompts 落库文本 · 更新:今天 09:00
界面示意图,用于展示产品版色板与卡片结构;数字为示例值。
Providers
你选模型,契约冻结它
每一环都可换供应商,选择在项目契约里被冻结。生图 provider 的优先级是 「你在界面上选的」>「环境变量」>「默认」——环境变量只在你没选时才生效。
Script & Director
DeepSeek · Kimi · 本机 Claude Code(无头修复引擎)
Image
豆包 Seedream(国内 / 国际站)· Codex CLI · OpenAI · Qwen · Grok · Gamma
Video
Seedance(火山方舟)· MiniMax 海螺 · Vidu · Grok
Voice & Audio
本地 OmniVoice(默认,保护克隆音色资产)· Speko 云 TTS · ffmpeg 剪辑与混音
Download
拿去用。
原生 macOS 应用,Apple Silicon 与 Intel 通用。安装包 ad-hoc 签名、 未经 Apple 公证——首次打开需要右键放行,只需做一次。
Magic Story Cup · macOS
1.0.0
下载 .DMG- Magic Story Cup.app(ad-hoc 签名)
- env-配置模板.txt — 照它填 API Key
- 安装说明 — 右键放行与文稿授权
下载即表示你已知悉:本应用不转售模型额度,生成调用走你自己的供应商账号。 完整安装指南 →
Requirements
- SystemmacOS 12 Monterey 或更新
- ChipApple Silicon / Intel
- Needsffmpeg(含 ffprobe)在 PATH 上
- Keys自备 LLM / 生图 / 生视频供应商的 API Key
- Disk建议 20 GB 以上可用空间存放素材与成片
SHA-256
3fac74f08187a52e92dd59443595bfab2bfa46d81c6900b644f07703d40c96a9
装好之后的三件事
-
右键打开,允许访问文稿
把 App 拖进「应用程序」,首次必须右键 → 打开 → 打开。 启动时 macOS 会询问文稿文件夹权限——必须允许,否则数据无处可存且没有明显报错。
-
装 ffmpeg
渲染、拼接、字幕、导出全依赖它。没装的话,发起渲染会直接提示。
brew install ffmpeg -
配 .env
先启动一次让它创建数据目录,退出,把 DMG 里的
env-配置模板.txt复制到数据目录改名为.env,填入你实际使用的供应商 Key,重启生效。