character-refs
给任何故事里的角色真出参考图(小说改编、自己原创的故事、单独设计一个角色都行,不需要小说原文): 一段话描述角色,拆成分层字段、补全后确认,…
给 AI 短剧出分镜:三层结构——段(一次视频生成,≤15 秒)→ 分镜(段内 2–5 秒的剪切,认领剧本节拍) → 分镜图(每切一张关键帧:主分镜图钉 0.00 秒,子分镜图钉各自切点)。 每段自带一条 MiniMax H3 视频提示词(官方口径默认英文、逐镜换行,promptLang 可切中文):对齐指令和 [Shot k] 切点时刻由分镜结构推导、逐字对账,台词逐字进 <d> 块(写法规范已内化为 references/h3-prompt.md,不依赖外部 skill)。 产出 storyboard.json + Markdown +
$ npx -y skills add eternityspring/shuohao-skills --skill novel-storyboard --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/novel-storyboardContext preview
The summary Claude sees to decide when to auto-load this skill.
给 AI 短剧出分镜:三层结构——段(一次视频生成,≤15 秒)→ 分镜(段内 2–5 秒的剪切,认领剧本节拍) → 分镜图(每切一张关键帧:主分镜图钉 0.00 秒,子分镜图钉各自切点)。 每段自带一条 MiniMax H3 视频提示词(官方口径默认英文、逐镜换行,promptLang 可切中文):对齐指令和 [Shot k] 切点时刻由分镜结构推导、逐字对账,台词逐字进 <d> 块(写法规范已内化为 references/h3-prompt.md,不依赖外部 skill)。 产出 storyboard.json + Markdown +
name: novel-storyboard
version: 2.0.0
description: |
给 AI 短剧出分镜:三层结构——段(一次视频生成,≤15 秒)→ 分镜(段内 2–5 秒的剪切,认领剧本节拍)
→ 分镜图(每切一张关键帧:主分镜图钉 0.00 秒,子分镜图钉各自切点)。
每段自带一条 MiniMax H3 视频提示词(官方口径默认英文、逐镜换行,promptLang 可切中文):对齐指令和
[Shot k] 切点时刻由分镜结构推导、逐字对账,台词逐字进 <d> 块(写法规范已内化为
references/h3-prompt.md,不依赖外部 skill)。
产出 storyboard.json + Markdown + 单页评审报告(分镜节奏带 / 分集分镜表 / 生成批次单 /
配音对齐单,含导出 JSON)。不出图——交付的是每格的画面提示词和它该挂哪些参考图。
18 道质量门全部由脚本确定性检查(第 18 道 shot-recipe 可选:挂上 shot-recipes 卡库才查,不挂就明说跳过);
export 一键导出 H3 投产包(每段提示词 + 按 Picture 序的分镜图清单)。零依赖、零 API key,用当前会话额度。
Use when asked to 分镜、出分镜、镜头表、切镜、storyboard for AI short drama。
allowed-tools:
- Read
- Write
- Bash
- Task
- Glob
triggers:
- novel-storyboard
- 分镜
- 出分镜
- 镜头表
- 切镜
- 首帧
- storyboard
- shot list
metadata:
license: Apache-2.0
requires:
bins:
- node # >= 18,只用标准库,无 npm 依赖
runtimes:
- claude-code
- codex给 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` 直接跑。
**边界(不做的事)**:不写戏不改台词(`novel-script` 的活)、不出场景/角色/道具设定图(`novel-art` / `novel-characters` 的活)、不做视频生成与剪辑合成。口型/唇形同步暂不管——那是生成管线的事。
---
**script.json 是硬前提**——分镜离开剧本没有意义,validate/render 都必须给 `--script`。其余上游按有则用:
**一次切几集**:跟剧本的批次走(剧本写到哪就分到哪),默认一批 ≤ 3 集。
node {baseDir}/scripts/novel-storyboard.mjs seed <script.json> --eps 1-3 > <workdir>/storyboard.json确定性展开:每场的节拍清单(编号、动作/台词、每拍秒数、说话人)进 `seedScenes`,这就是切镜时的工作底稿。**每拍几秒是算出来的,不要让模型重新估。** shots 留空,切镜才是模型的活。
每集一份任务,能并发就并发。每份任务拿到:
流程:**先按剧情单元分段**(每段 9–15 秒、不跨场),**段内切 2–5 秒的分镜**(对话正反打、关键动作插入特写、进场三件套——切镜语法都在 storyboard-pass.md),每切写一条分镜图提示词(中文,直呼角色名)、一段镜头正文 `shot`(中文,通用身份)和六个构图字段;每段写 `blocking`、`soundscape`,有配乐再写 `music`。
**每段的镜头正文照 `{baseDir}/references/shot-writing.md` 写**(协议无关:一切一个运镜、动作要做得完、台词逐字、声音分层、不写画风)。发给哪个视频服务,就再套哪份协议语法:MiniMax H3 见 `{baseDir}/references/h3-prompt.md`,Seedance 见 `{baseDir}/references/seedance-prompt.md`。
**每段写一条 `h3Prompt`**,照 `{baseDir}/references/h3-prompt.md` 写(官方方法论的内化版,**不依赖任何外部 skill**)。官方口径默认英文(`promptLang` 可切中文),**每个镜头独立一行**。要点:首行对齐指令和 `[Shot k]` 切点时刻**由分镜秒数推导,一个字符都不许漂**(validate 逐字对账);认领台词**逐字**进 `<d>[Chinese] …</d>`;每切的运镜词写进自己那一行;声景与配乐分进后两个字段——**声景也是动作指令,画面改了声景一起改**。
**Seedance 提示词不用写**:`render` 报告的提示词面板和 `export --protocol seedance` 都会从上面这些字段现拼。视觉风格由调用方提交时附加,全局约束用 `--constraints <文件>` 给。
切完把 `seedScenes` 删掉。
node {baseDir}/scripts/novel-storyboard.mjs validate <storyboard.json> \
--script <script.json> --outline <outline.json> --cast <cast.json> \
[--shots </path/to/cards>]18 道质量门全是代码:节拍全覆盖(分镜级,恰好一次、按顺序、连续)、段 0 < 总秒 ≤ 15、**每切 2–5 秒**、台词装得进分镜、每集总时长在剧本目标 ±15% 内、同框 ≤ 3 人(超了必须带拆解说明)、段号 E01-01 格式连号、中文景别词在分镜图提示词里、运镜用 H3 词表且在自己的 [Shot k] 段落里、**H3 对齐指令由分镜结构推导逐字对账 + 切点时刻逐个对**、**认领台词逐字进 `<d>` 块**、**提示词语言与 promptLang 一致**(双向查:中文写成英文、英文混进中文都拦)、分镜图提示词中文非空、**视频提示词不含角色名**(H3 正文不分语言、Seedance 镜头正文都查;分镜图提示词直呼其名放行)、**构图量化字段齐全**、**Seedance 镜头正文合规**(中文非空,不写时间、镜头编号、图片引用和协议符号)、场次/人物/道具对账剧本、**镜头配方对账**(可选门,见下)。
**有违规逐条修,改完重跑,直到通过。**
**第 18 道 `shot-recipe`(可选挂载)**:给了 `--shots` 才查,不给就明说跳过。cut 上可以写一个可选的 `recipe`(配方卡 id,**cut 级不是 segment 级**,**多格配方靠连续同 id 的分镜表达**,不是数组),门查三条——id 在卡库里、卡片的每条 `must_phrases` 出现在该切的 `frame` 里(两边小写化后 `includes`)、卡片 `cuts` 下限 ≥ 2 时连续同 id 的分镜数不得低于该下限。卡片的**建议景别与运镜不设门**,只在报告的「配方」列和 `checkup` 末尾提示偏离:配方是语汇不是法条,可选挂载的东西一旦变严就没人挂。
cd <输出目录>
node {baseDir}/scripts/novel-storyboard.mjs render <剧名>-storyboard.json --md \
--script <script.json> --outline <outline.json> --art <art.json> > <剧名>-storyboard.md
node {baseDir}/scripts/novel-storyboard.mjs render <剧名>-storyboard.json --html \
--script <script.json> --outline <outline.json> --art <art.json> > storyboard-report.html报告界面语言用 `--lang zh|en` 指定(优先级 `--lang` > JSON 顶层 `lang` 字段 > 默认中文)——只切界面标签,与 `promptLang`(H3 提示词语言)互相独立。`render` 用 `--frames <目录>` 找分镜图(`<目录>/<段号>/f<切序>.png`,默认当前目录)、用 `--images <目录>` 找批次单的场景设定图(`<目录>/<场景 slug>-sheet.png`,默认 `./images`),两个都可以指到任意路径——**本 skill 不产生这些文件**,下游出完图重跑一次 render 就能嵌进报告。`export --frames <目录>` 会把找得到的分镜图拷进投产包,不用手动往包里放。报告含:KPI 带、分镜节奏带(粗分隔 = 段边界、片宽 = 分镜时长占比、颜色深浅 = 景别远近、点击跳段卡)、分集分镜表(主分镜图 + 子分镜条 + 逐切分镜行 + 分镜图/H3 提示词复制按钮)、生成批次单、配音对齐单、质量门、导出 JSON。Markdown 版每段附完整 H3 提示词,直接复制可用。
汇报一句话说清:几集几镜、总时长 vs 目标、几个生成批次、报告路径;没过的门明说。
**不要说「已出图」**——这一步不存在了,交付的是提示词和挂图清单。
最终落地:
<输出目录>/ ├── <剧名>-storyboard.json ├── <剧名>-storyboard.md ├── storyboard-report.html ← 双击就能开 ├── manifest.json ← export 生成 └── E01-01/ ← 一段一个文件夹 = 一次 H3 生成的全部材料
AI 短剧制作的 skill 集合:从一本小说到直接喂生成管线的制作素材——拆角色、排大纲、出场景与道具设定、写剧本、切分镜。给 AI 编码 agent 用,Claude Code 和 codex 都能跑。 整条管线长这样——改编大纲收敛结构,剧本、场景、角色三者同步迭代,分镜只做输出不做新决定: 五段管线 skill 的报告都支持中英双语界面:默认中文,render --lang en 出全英文报告(数据内容保持原文)。character-refs 的报告同样内置中英日界面,其他语言现场翻译。
Repo: eternityspring/shuohao-skills
给任何故事里的角色真出参考图(小说改编、自己原创的故事、单独设计一个角色都行,不需要小说原文): 一段话描述角色,拆成分层字段、补全后确认,…
给 AI 短剧出美术设定集(场景 + 叙事道具):场景的设计意图、一致性锚点、光照时段变体、 空景提示词;道具的戏剧功能、状态变体、尺度参照、白底无手提示词。 产出 art.json +…
从小说或短故事里拆出角色表、人物画像、形象提示词、音色提示词, 其中形象提示词含一张角色设定图的完整版面指令(左半身像 + 右全身三视图 + 细节条), 产出 JSON +…
把一本小说改编成短剧大纲五件套:改编说明、人物表、爽点表、分集梗概、资产清单, 产出 outline.json + Markdown + 单页评审报告(KPI…
给 AI 短剧写剧本:把 novel-outline 的分集梗概落成结构化的场次 + 节拍流(动作节拍与台词行交替), 台词逐句带说话人与语气,时长逐集按语速确定性折算。产出…