character-refs
给任何故事里的角色真出参考图(小说改编、自己原创的故事、单独设计一个角色都行,不需要小说原文): 一段话描述角色,拆成分层字段、补全后确认,…
给 AI 短剧出美术设定集(场景 + 叙事道具):场景的设计意图、一致性锚点、光照时段变体、 空景提示词;道具的戏剧功能、状态变体、尺度参照、白底无手提示词。 产出 art.json + Markdown + 单页评审报告(含导出 JSON)。 为 AI 生成而设计,不是实拍——环境和道具都是生成资产,交付的是让它们跨集长一样的一致性方案; 10 道质量门全部由脚本确定性检查(锚点 3–5、无人无手、白底可抠、尺度短语、提示词英文……)。 有 novel-outline 的 outline.json 就用 seed 预填场景清单与出现集。 零依赖、零
$ npx -y skills add eternityspring/shuohao-skills --skill novel-art --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/novel-artContext preview
The summary Claude sees to decide when to auto-load this skill.
给 AI 短剧出美术设定集(场景 + 叙事道具):场景的设计意图、一致性锚点、光照时段变体、 空景提示词;道具的戏剧功能、状态变体、尺度参照、白底无手提示词。 产出 art.json + Markdown + 单页评审报告(含导出 JSON)。 为 AI 生成而设计,不是实拍——环境和道具都是生成资产,交付的是让它们跨集长一样的一致性方案; 10 道质量门全部由脚本确定性检查(锚点 3–5、无人无手、白底可抠、尺度短语、提示词英文……)。 有 novel-outline 的 outline.json 就用 seed 预填场景清单与出现集。 零依赖、零
name: novel-art
version: 2.0.0
description: |
给 AI 短剧出美术设定集(场景 + 叙事道具):场景的设计意图、一致性锚点、光照时段变体、
空景提示词;道具的戏剧功能、状态变体、尺度参照、白底无手提示词。
产出 art.json + Markdown + 单页评审报告(含导出 JSON)。
为 AI 生成而设计,不是实拍——环境和道具都是生成资产,交付的是让它们跨集长一样的一致性方案;
10 道质量门全部由脚本确定性检查(锚点 3–5、无人无手、白底可抠、尺度短语、提示词英文……)。
有 novel-outline 的 outline.json 就用 seed 预填场景清单与出现集。
零依赖、零 API key、不出图——交付的是提示词,出图在下游。
Use when asked to 场景设定、出场景、环境设定集、场景一致性、scene bibles for AI short drama。
allowed-tools:
- Read
- Write
- Bash
- Task
- Glob
triggers:
- novel-art
- 美术设定
- 场景设定
- 场景道具
- 出场景
- 道具设定
- 环境设定
- scene bible
- prop sheet
metadata:
license: Apache-2.0
requires:
bins:
- node # >= 18,只用标准库,无 npm 依赖
runtimes:
- claude-code
- codex给 AI 短剧出**美术设定集**:场景 + 叙事道具。**前提刻在骨子里:这是 AI 生成,不是实拍**——没有堪景搭景置景采买,环境和道具都是要被生成几十次还得长一样的资产,所以交付物全部围绕一致性:
| 交付 | 解决什么 | | --- | --- | | 一致性锚点(每景 3–5 个) | 观众靠它认场景,QC 靠它核对生成镜头有没有漂 | | 光照时段变体 | AI 换时段是重新生成不是重新打灯,每个状态落成完整提示词 | | 空景出图提示词 | 环境和角色是两层资产,参考图里混进人,一致性全毁 | | 变体机制(variantOf) | 生成新景便宜,但变体复用母场景资产更一致 | | 道具状态变体 | 皮箱的合上与打开是两张参考图——道具有状态弧,场景没有 | | 道具尺度参照 | AI 经常把手持道具画成家具尺寸,提示词必须带尺度短语 | | 道具白底无手 | 道具图要被贴进各种镜头,必须可抠;拿着道具的手是最常见污染 |
`{baseDir}` = 本文件所在目录。脚本 `{baseDir}/scripts/novel-art.mjs`,零依赖,`node` 直接跑。
**边界(不做的事)**:不做分镜、不写剧本、不管角色(`novel-characters` 的活)、不排大纲(`novel-outline` 的活)。**道具只收叙事道具**(有特写、跨集、承载剧情的,通常 3–8 件)——场景陈设归场景锚点,一次性手部道具镜头级提示词解决,都不单独建资产。
---
三种输入,优先级从高到低:
1. **outline.json**(novel-outline 的产出)——最优,场景清单、出现集、承载爽点、复用方案都是现成的 2. 小说原文——自己归纳场景清单(主舞台优先,参考 novel-outline 的主场景上限思路:别贪多) 3. 用户手写的场景清单
有 cast.json(novel-characters 的产出)也带上——校验「提示词不含角色名」要用。
node {baseDir}/scripts/novel-art.mjs seed <outline.json> > <workdir>/art.json确定性搬运:场景 id/名称/主场景标记/出现集/承载爽点,带复用方案的场景会有 `seedNote` 提示做成变体。**这些事实不要让模型重新想一遍。**
没有 outline.json 就自己按 `references/schema.md` 建清单。
每个场景一份,能并发就并发。每份任务拿到:
核心要求都在 scene-pass.md 里,最重的三条:锚点要**可画可认可核对**(「补丁船篷」是锚点,「陈旧的氛围」是形容词);光照状态**从分集反推**,不写用不上的全家桶;**能做变体就别开新景**。
**叙事道具优先吃大纲**:`outline.json` 从 1.1.0 起带 `props`,`seed` 会把道具表连同「承载什么」「托起哪几个爽点」「哪几集出现」一起搬过来,这一层只填设计字段(尺度、锚点、状态变体、白底提示词)。**大纲没有 props 就从原文提取**,那时这步是模型的活:只收**有特写、跨集出现、承载剧情**的,通常 3–8 件,跟主角数量一个量级。每件按 `references/prop-pass.md` 填:戏剧功能、锚点、状态变体、尺度、白底无手提示词。皮箱这种「跟人走的道具」就该在这——塞进场景锚点和角色画像都不对。
node {baseDir}/scripts/novel-art.mjs validate <art.json> --cast <cast.json>10 道质量门全是代码。场景 + 共用 6 道:锚点 3–5、光照状态 ≥1、**无人**、提示词全英文、不含角色名(给了 --cast 才查)、变体引用完整。道具专属 4 道:**状态 ≥1**、**尺度短语写进提示词**、**反向词禁手**、**设定图纯白背景**。
**有违规逐条修,改完重跑,直到通过。**
cd <输出目录>
node {baseDir}/scripts/novel-art.mjs render <剧名>-art.json --md > <剧名>-art.md
node {baseDir}/scripts/novel-art.mjs render <剧名>-art.json --html > art-report.html报告界面默认中文;用户要英文界面就加 `--lang en`(或在 art.json 顶层写 `"lang": "en"`,`--lang` 优先)。`render` 默认去 art.json 同级的 `images/<slug>-sheet.png` 找图(场景和道具都找),图在别处就用 `--images <目录>` 指过去——**本 skill 不产生这些文件**,下游出完图重跑一次 render 就能嵌进报告。报告含:KPI 带、场景清单、场景设定卡、道具清单、道具设定卡(锚点核对表 / 状态变体 / 提示词包全带复制按钮)、质量门面板、导出 JSON(下载的就是 art.json 原样)。
汇报一句话说清:几个场景(主场景/变体各几)、几件道具、锚点总数、报告路径;没过的门明说。
**不要说「已出图」**——这一步不存在了,交付的是提示词。
最终落地:
<输出目录>/
├── <剧名>-art.json
├── <剧名>-art.md
├── art-report.html ← 双击就能开
└── images/ ← 本 skill 不写这个目录
└── <slug>-sheet.png ← 下游出完图放这儿,render 会捡起来---
novel-outline → outline.json (什么:结构与分集) novel-characters → cast.json (谁:角色资产) novel-art → art.json (哪里 + 手里拿的:美术资产)
seed 吃 outline.json 的场景与道具两块(大纲没有 `props` 时道具留空,模型从原文提取),`--cast` 吃 cast.json。三份 JSON 各自的报告都带导出按钮,改完都能喂回各自的 render/validate。
node {baseDir}/scripts/selftest.mjs151 项断言,不调模型、不花额度。10 道质量门每一道都有击穿用例。改完脚本先跑这个。
`{baseDir}/examples/渡口-art.json`:《渡口》三场景 + 两件叙事道具(旧皮箱、县衙旧砚)的完整设定,全部质量门通过(含对着 novel-characters 样例 cast 的角色名检查)。当质量基准,也是自测夹具。
AI 短剧制作的 skill 集合:从一本小说到直接喂生成管线的制作素材——拆角色、排大纲、出场景与道具设定、写剧本、切分镜。给 AI 编码 agent 用,Claude Code 和 codex 都能跑。 整条管线长这样——改编大纲收敛结构,剧本、场景、角色三者同步迭代,分镜只做输出不做新决定: 五段管线 skill 的报告都支持中英双语界面:默认中文,render --lang en 出全英文报告(数据内容保持原文)。character-refs 的报告同样内置中英日界面,其他语言现场翻译。
Repo: eternityspring/shuohao-skills
给任何故事里的角色真出参考图(小说改编、自己原创的故事、单独设计一个角色都行,不需要小说原文): 一段话描述角色,拆成分层字段、补全后确认,…
从小说或短故事里拆出角色表、人物画像、形象提示词、音色提示词, 其中形象提示词含一张角色设定图的完整版面指令(左半身像 + 右全身三视图 + 细节条), 产出 JSON +…
把一本小说改编成短剧大纲五件套:改编说明、人物表、爽点表、分集梗概、资产清单, 产出 outline.json + Markdown + 单页评审报告(KPI…
给 AI 短剧写剧本:把 novel-outline 的分集梗概落成结构化的场次 + 节拍流(动作节拍与台词行交替), 台词逐句带说话人与语气,时长逐集按语速确定性折算。产出…
给 AI 短剧出分镜:三层结构——段(一次视频生成,≤15 秒)→ 分镜(段内 2–5 秒的剪切,认领剧本节拍) → 分镜图(每切一张关键帧:主分镜图钉 0.00…