WoW

类型
AI 影视创作台
个人职责
独立开发
年份
2026

项目介绍

一个跑在浏览器里的 AI 影视创作台:左边跟 Agent 对话,右边是文件工作区。剧本、分镜表、视频生成提示词、人物小传都是可以直接改的 Markdown 文稿,参考图和片段在媒体库里,最后在浏览器里合成成片,再一键进达芬奇。

它解决什么问题

现在用 AI 做视频,难的不是生成单张图或单段视频,而是让几十次生成保持同一个世界:同一个人物在第 3 段和第 7 段还是同一张脸,同一个场景的光还从同一个方向打进来,两段分别生成的视频在剪辑点上接得住戏,广告里说好的卖点真的落在了某一段画面里。

这些事靠「记得提醒模型」是守不住的,WoW 把它们变成流程里的硬规则:每条创作都有一本台账,记着走到第几阶段、哪些信息已经确认、有哪些实体与片段;人物外形写成一句冻结描述,之后每一段提示词逐字照抄;两段视频的交接写成同一句画面状态,校验器逐字比对,不一致就拦下来;广告的卖点进账本,每个卖点必须写明落在哪一段,只靠字幕说出来不算数。

八个阶段,一条线走到底

选一个类型(广告 / 故事片 / 短片·短视频 / MV),之后的路线是固定的:需求澄清 → 对象建模 → 脚本 → 素材检查 → 分镜 → 片段方案 → 生成成片 → 交付。每一步该干什么由程序决定,模型只负责把内容填进去;打开「一键模式」它会自己往下走,只在脚本、参考图、片段方案、成片四个检查点停下来等你点头。

先问清楚再动手:需求澄清和建模阶段是本地题库出的问卷,一次一题,不想一道道选就点「全部用推荐值」,回答过的问题不会换个说法再问。动手之前先给计划:Agent 先列出要写哪份文稿、生成哪张图,你点「确认执行」才真的动手;删除类操作单独标出,删掉的东西进回收站留 7 天。

文稿、自审与参考图

所有产物都是文稿:剧本按场写,对白独占一行;分镜表是十列的固定表格;片段提示词一段一份。写入时右侧工作区逐行显示变化,写完可以直接改,改完的内容就是下一步的输入。

剧本类文稿写完会用写作模型按自查清单审读,给出问题和具体改法;改还是不改由你点,它不会自己改稿。

参考图有模板,不靠模型自觉:人物套「七视图设定图」,场景套「空场建立镜头」,道具套「单体棚拍」;生成完再让视觉模型按对应类型的门禁逐条验收。

在浏览器里出成片

片段按顺序拼接,字幕烧进画面,配乐与旁白离线混音,输出 MP4。装上本地助手就能一键把时间线导进达芬奇,视频轨、音频轨、SRT 字幕都铺好;没装就导出一个文件夹,里面有片段、FCPXML 和 EDL。

合成用 WebCodecs + mp4-muxer,退路是 MediaRecorder。宣传片片尾那一段是用它生成的真实片段(BytePlus Seedance 2.5)。

没有后端

前端是 Vite + React 19 + TypeScript,状态用 zustand。文稿和对话存 localStorage,图片视频的 blob 存 IndexedDB,按创作隔离,素材不经过我的服务器。唯一的服务端是一个 Cloudflare Worker 网关,只做一件事:拿着真正的 API key 去调模型,页面上只有访问口令。

代价也写在这儿:换浏览器或清缓存数据就没了,多端同步还没做。

模型按用途分

文本侧按用途分四条链路,温度也不一样:规划(低温度、要稳)、写作(高温度、要有想法)、编译(分镜与片段提示词这类结构化活儿,强模型低温度)、看图。每条链路都是候选链,只有在模型不可用时才换下一家,生成本身失败不会偷偷换模型。文本用 DeepSeek 与 Kimi,看图用 Kimi K3。

图像与视频走 fal 与方舟 / BytePlus 两家:图片 Seedream 5.0 起,视频 Seedance 2.5 起,可灵兜底;声音用 fal 上的 MiniMax 设计音色样本再合成旁白。用户只选用哪个模型,单段多长、长镜头优先还是分镜接续,由程序按这个模型的能力自动决定。

几个设计取舍

导演是纯函数:下一步做什么不问模型,由 nextStep() 根据台账、纲领和工作区里有没有那份文稿算出来,流程不会跳步,也不会卡在某一步来回打转。

模型写坏 JSON 也不让这一轮白跑:严格解析失败后先本地宽松修复,再按括号配平扫出每个完整的操作,最后才重问模型。

画风不是建议,是改写:写实真人时直接改写提示词开头,并把 character sheet、3D render 这类会把人物拉成卡通的词换成 photograph。

剪映不接受外部写入的草稿,所以成片改走达芬奇:FCPXML 里的媒体引用用绝对 file:// URL,音轨用脚本接口单独铺;本地助手只用 Python 标准库。

试用说明

页面打开就能看界面,但要让 Agent 真的干活,需要在设置里填一个模型网关口令(自己的 API key 或自建网关都行)。所有数据只留在你当前这台机器的浏览器里。