1. 立项原因 / 解决的产品问题
项目叫 StoryFlow Studio,定位是「面向 MiniMax H3 的本地 AI 短片工作流」——解决的核心问题是:AI 视频创作链路碎片化。单个 AI 工具只能生成一段视频,但"做一支成片"需要 选题→脚本→分镜→画面→逐镜视频→提示词包 一整条链路,过去散落在多个工具和大量手动操作里,且跨镜风格极易漂移、拼起来不像一支片。这个 App 把整条链路串成一键式流水线(README.md)。
2. 行业场景 / 业务背景
从实际数据(ideas.json 目标 100 期、draft-export.js 导出剪映/抖音草稿)可看出,业务背景是知识科普类短视频的系列化运营:
系列化批量生产:选题库以「100 期」为目标,AI 批量选题按「搜索需求/情绪钩子/视觉表现/时效性」四维评分,杜绝重复做。
固定视觉风格:走「手工材质定格动画」路线(纸艺拼贴 Vox、毛毡、粘土、折纸、白板、积木 6 套模板),辨识度高、适合科普画面。
核心痛点:AI 视频模型默认是"物理/流体先验"(输出融化、抖动、软塌),而纸艺定格是"平面设计先验"(刚体图层位移/缩放 + 相机推进),两者天然冲突——这正是本项目在提示词工程上大量投入要解决的问题
功能模块(前端 public/js/views,后端 server.js 41 个 API)
模块 说明
工作流 核心流水线,6 步:项目设置 → 脚本 → 分镜 → 风格静帧 → 逐镜视频 → 提示词包导出
选题库 系列进度条、AI 批量选题四维评分、状态流转(未做→进行中→已发布/放弃)、一键开做
模板库 6 套手工材质定格风格 + JSON 编辑器自定义
模型连接 LLM/生图/生视频 provider 切换 + ComfyUI 本地联动
画布编辑器 分镜画面布局的可视化画布(canvas)
扩展能力 项目多版本管理、回收站、抖音/剪映草稿导出、脚本源适配(SRT/JSON)
2. 主要功能描述
分镜系统:脚本按句分配到各镜知识点 → LLM 精细重写或本地切分 → 「画面拆解 + 骨架面板」做视觉细化,含「元素×时间×动作」时间轴 + 运镜;遵循一骨架一镜原则(storyboard-decompose.js)。
风格静帧双图帧推:全局风格帧锁定整片风格,每镜首帧 = 风格帧做 ref_image 图生图(同风格不同构图),尾帧 = 首帧推近 15-20% 完成动作态,双图锚定逐镜运动轨迹。
逐镜视频生成:H3 提示词 + 自动带本镜首尾双图 + 异步轮询;支持多版本对比(上限 6 版)、高清放大、单镜重跑、停止/清理(video.js)。
提示词包导出:H3 三字段格式([Shot N] At 绝对起点 + integrated_multimodal_description / overall_soundscape / non_diegetic_music)+ 导演台格式(官方整段连写,JSON 可直接导入 ComfyUI 的 H3 漫剧导演台节点)(server.js)。
运镜体系:11 种 H3 标准运镜镜头库、导演运镜搭配表、运镜块化编辑(🎥 整块插入/
技术栈 / 架构
后端:Node.js + Express(server.js 1551 行)+ ws WebSocket,运行时依赖仅 2 个(package.json)。
前端:原生 ES Modules,零构建、零框架;SPA 路由 + mixin 组合(workflow.js)。
外部依赖:OpenAI 兼容 API(LLM/生图/生视频)+ 本地 ComfyUI;预置 Agnes 网关,密钥存本地 config.json。
数据层:data/projects/*.json 多项目持久化 + 前端 800ms 防抖自动保存;data/ideas.json 选题库。
架构模式:后端 = 静态托管 + API 代理 + ComfyUI 联动 + 配置持久化;前端 = core(状态/路由)+ store(项目持久化)+ 按领域拆分的 views。
实现亮点
提示词工程深耕:H3 规范 + 导演台双格式、运镜块化编辑、风格蒸馏、动作节奏词表、图片提示词动作静态化兜底——这是纯产品级的 AI 视频质量控制,不是简单封装。
ComfyUI 深度联动:自动扫描 workflow 识别 LoadImage/CLIPTextEncode/SaveImage 节点并按编号注入、自动上传静帧、异步轮询 /history、高清放大读回 latent/conditioning(链路 B)。
双通道生成:云 API 与本地 ComfyUI 可并行,支持并发 + 轮询 + 取消 + 清理(video.js)。
稳定性工程:safeWriteFile 原子写 + 退避重试,根治 Windows 下 node --watch 子进程的 EPERM 保存失败问题(server.js);热重载哨兵 + 页面重载按钮。
工程化拆分:storyboard.js 从 1923 行拆成 197 行主文件
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论