novel-storyboard
Installation
SKILL.md
novel-storyboard
给 AI 短剧出分镜——管线里第一个直接面对视频模型的层。前提刻在骨子里:镜头是生成出来的,多切一镜的成本几乎为零,所以这里不心疼镜头数量,上限只有一个:视频模型单段生成的时长(默认 15 秒)。
核心机制:镜头认领节拍。 每个镜头声明它覆盖剧本某场的哪几个连续节拍(sceneIndex + beats: [起, 止]),镜头不许跨场次——换景必换镜。这让分镜和剧本的关系变成可机械对账的:
| 交付 | 解决什么 |
|---|---|
| 节拍认领 | 每个节拍被恰好一个镜头认领、顺序不乱——剧本改了重跑 validate,失效的镜头当场点名 |
| 单镜头 ≤ 15 秒 | AI 视频单段生成上限,长对话在这里被强制拆镜(params.maxShotSeconds 按模型改) |
| 台词装得下 | 认领节拍的台词秒数 ≤ 镜头秒数——逐镜检查,不是拍脑袋 |
| 分镜图提示词 + 镜头正文 | 分镜图提示词(frame,中文,直呼角色名)给图像模型配合设定图出图;镜头正文(shot,中文,通用身份)写这几秒发生什么。景别是枚举,中文景别词必须写进分镜图提示词 |
| H3 视频提示词(每段一条) | MiniMax H3 的 I2VA 结构:固定对齐指令 + integrated_multimodal_description + overall_soundscape + non_diegetic_music。认领节拍的台词逐字进 <d>[Chinese] …</d> 块——对白、声景、配乐一段提示词全带上 |
| Seedance 视频提示词(每段一条,程序拼) | 跟 H3 并列。由脚本按官方结构拼:参考图声明、段级走位、逐镜量化字段、台词 {}、音效 <>、配乐 ()、编号约束。模型只写每切的 shot,不写秒数、编号和图片引用 |
| 构图量化字段 | 每段 blocking(谁在左谁在右、间距),每镜焦距/机位/构图/视线落点/焦点/稳定性——不出分镜图时,它们就是构图的全部来源 |
| 生成批次单 | 同场景 + 同光照的镜头归一批,共用同一张环境参考图——AI 版的顺场表,脚本自动汇总 |
| 配音对齐单 | 每句台词对到镜号——TTS 音频贴到哪一段视频,脚本自动汇总 |
{baseDir} = 本文件所在目录。脚本 {baseDir}/scripts/novel-storyboard.mjs,零依赖,node 直接跑。