novel-art
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesenovel-art
novel-art
给 AI 短剧出美术设定集:场景 + 叙事道具。前提刻在骨子里:这是 AI 生成,不是实拍——没有堪景搭景置景采买,环境和道具都是要被生成几十次还得长一样的资产,所以交付物全部围绕一致性:
| 交付 | 解决什么 |
|---|---|
| 一致性锚点(每景 3–5 个) | 观众靠它认场景,QC 靠它核对生成镜头有没有漂 |
| 光照时段变体 | AI 换时段是重新生成不是重新打灯,每个状态落成完整提示词 |
| 空景出图提示词 | 环境和角色是两层资产,参考图里混进人,一致性全毁 |
| 变体机制(variantOf) | 生成新景便宜,但变体复用母场景资产更一致 |
| 道具状态变体 | 皮箱的合上与打开是两张参考图——道具有状态弧,场景没有 |
| 道具尺度参照 | AI 经常把手持道具画成家具尺寸,提示词必须带尺度短语 |
| 道具白底无手 | 道具图要被贴进各种镜头,必须可抠;拿着道具的手是最常见污染 |
{baseDir}{baseDir}/scripts/novel-art.mjsnode边界(不做的事):不做分镜、不写剧本、不管角色( 的活)、不排大纲( 的活)。道具只收叙事道具(有特写、跨集、承载剧情的,通常 3–8 件)——场景陈设归场景锚点,一次性手部道具镜头级提示词解决,都不单独建资产。
novel-charactersnovel-outlineCreate art bibles for AI short dramas: scenarios + narrative props. Core premise carved in stone: this is for AI generation, not live-action shooting — no location scouting, set building, set dressing, or prop purchasing. Both environments and props are assets that need to look identical even after being generated dozens of times, so all deliverables revolve around consistency:
| Deliverable | What it solves |
|---|---|
| Consistency anchors (3–5 per scenario) | Viewers use them to recognize scenarios; QC uses them to check if generated shots have drifted |
| Lighting time period variants | For AI, changing time periods means re-generating rather than re-lighting; each state is documented as a complete prompt |
| Empty scene generation prompts | Environments and characters are two separate asset layers; if people appear in reference images, consistency is completely ruined |
| Variant mechanism (variantOf) | Generating new scenarios is cheap, but variants that reuse parent scenario assets are more consistent |
| Prop state variants | A suitcase closed and open are two reference images — props have state arcs, scenarios do not |
| Prop scale references | AI often draws handheld props as furniture-sized; prompts must include scale phrases |
| White-background hand-free props | Prop images need to be composited into various shots, so they must be mattable; hands holding props are the most common contamination |
{baseDir}{baseDir}/scripts/novel-art.mjsnodeBoundaries (what this does not do): No storyboarding, no scriptwriting, no character management (that's ' job), no outline arrangement (that's ' job). Only narrative props are included (props with close-ups, appearing across episodes, carrying plot weight, usually 3–8 pieces) — scenario set dressing falls under scenario anchors, and one-time hand props are solved with shot-level prompts, no separate assets are created for them.
novel-charactersnovel-outlineStep 0 — 定输入
Step 0 — Define Inputs
三种输入,优先级从高到低:
- outline.json(novel-outline 的产出)——最优,场景清单、出现集、承载爽点、复用方案都是现成的
- 小说原文——自己归纳场景清单(主舞台优先,参考 novel-outline 的主场景上限思路:别贪多)
- 用户手写的场景清单
有 cast.json(novel-characters 的产出)也带上——校验「提示词不含角色名」要用。
Three types of inputs, in descending priority order:
- outline.json (output of novel-outline) — the best option, with ready-made scenario list, appearing episodes, carried payoff moments, and reuse plans
- Original novel text — you need to summarize the scenario list yourself (prioritize main stages, refer to novel-outline's main scenario limit logic: don't try to include too many)
- User-written scenario list
If you have cast.json (output of novel-characters), include it too — it's used to verify that "prompts do not contain character names".
Step 1 — seed 骨架(有 outline.json 才有这步)
Step 1 — Seed Skeleton (this step only applies if you have outline.json)
bash
node {baseDir}/scripts/novel-art.mjs seed <outline.json> > <workdir>/art.json确定性搬运:场景 id/名称/主场景标记/出现集/承载爽点,带复用方案的场景会有 提示做成变体。这些事实不要让模型重新想一遍。
seedNote没有 outline.json 就自己按 建清单。
references/schema.mdbash
node {baseDir}/scripts/novel-art.mjs seed <outline.json> > <workdir>/art.jsonDeterministic migration: scenario ID/name/main scenario flag/appearing episodes/carried payoff moments. Scenarios with reuse plans will have a prompting to make them variants. Don't make the model re-derive these facts.
seedNoteIf there is no outline.json, create the list yourself according to .
references/schema.mdStep 2 — 逐场景填设定 + 提取叙事道具
Step 2 — Fill in settings per scenario + extract narrative props
每个场景一份,能并发就并发。每份任务拿到:
- 和
{baseDir}/references/scene-pass.md(读它们,照着做){baseDir}/references/schema.md - 该场景的骨架 + 原文/大纲里关于这个空间的全部信息
- 同批其他场景的名字(空间气质要区分开,别都写成同一种破旧)
核心要求都在 scene-pass.md 里,最重的三条:锚点要可画可认可核对(「补丁船篷」是锚点,「陈旧的氛围」是形容词);光照状态从分集反推,不写用不上的全家桶;能做变体就别开新景。
叙事道具优先吃大纲: 从 1.1.0 起带 , 会把道具表连同「承载什么」「托起哪几个爽点」「哪几集出现」一起搬过来,这一层只填设计字段(尺度、锚点、状态变体、白底提示词)。大纲没有 props 就从原文提取,那时这步是模型的活:只收有特写、跨集出现、承载剧情的,通常 3–8 件,跟主角数量一个量级。每件按 填:戏剧功能、锚点、状态变体、尺度、白底无手提示词。皮箱这种「跟人走的道具」就该在这——塞进场景锚点和角色画像都不对。
outline.jsonpropsseedreferences/prop-pass.mdOne task per scenario, run concurrently if possible. Each task receives:
- and
{baseDir}/references/scene-pass.md(read them and follow the instructions){baseDir}/references/schema.md - The skeleton of the scenario + all information about this space from the original text/outline
- Names of other scenarios in the same batch (the spatial vibe should be distinct, don't make them all the same kind of shabby)
Core requirements are all in scene-pass.md, the three most important ones: anchors must be drawable, recognizable, and verifiable ("patched boat awning" is an anchor, "old atmosphere" is an adjective); lighting states are derived backward from episode divisions, don't write a full set of unused states; make variants instead of creating new scenarios whenever possible.
Narrative props are prioritized from the outline: has included since version 1.1.0, and will migrate the prop list along with "what it carries", "which payoff moments it supports", and "which episodes it appears in". At this stage, only design fields need to be filled (scale, anchors, state variants, white-background prompts). If the outline has no props, extract them from the original text — in that case, this step is the model's job: only include props that have close-ups, appear across episodes, and carry plot weight, usually 3–8 pieces, on the same order as the number of main characters. Fill in each prop according to : dramatic function, anchors, state variants, scale, white-background hand-free prompts. "Portable props" like suitcases belong here — it's wrong to put them in scenario anchors or character profiles.
outline.jsonpropsseedreferences/prop-pass.mdStep 3 — 校验 ⛔ 不能跳
Step 3 — Validation ⛔ Cannot be skipped
bash
node {baseDir}/scripts/novel-art.mjs validate <art.json> --cast <cast.json>10 道质量门全是代码。场景 + 共用 6 道:锚点 3–5、光照状态 ≥1、无人、提示词全英文、不含角色名(给了 --cast 才查)、变体引用完整。道具专属 4 道:状态 ≥1、尺度短语写进提示词、反向词禁手、设定图纯白背景。
有违规逐条修,改完重跑,直到通过。
bash
node {baseDir}/scripts/novel-art.mjs validate <art.json> --cast <cast.json>All 10 quality gates are implemented in code. 6 shared gates for scenarios + general: 3–5 anchors, ≥1 lighting state, no people, prompts entirely in English, no character names (only checked if --cast is provided), complete variant references. 4 prop-specific gates: ≥1 state, scale phrases included in prompts, hands banned in negative prompts, pure white background for reference images.
Fix violations one by one, re-run after modifications, until all pass.
Step 4 — 输出与汇报
Step 4 — Output and Reporting
bash
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报告界面默认中文;用户要英文界面就加 (或在 art.json 顶层写 , 优先)。 默认去 art.json 同级的 找图(场景和道具都找),图在别处就用 指过去——本 skill 不产生这些文件,下游出完图重跑一次 render 就能嵌进报告。报告含:KPI 带、场景清单、场景设定卡、道具清单、道具设定卡(锚点核对表 / 状态变体 / 提示词包全带复制按钮)、质量门面板、导出 JSON(下载的就是 art.json 原样)。
--lang en"lang": "en"--langrenderimages/<slug>-sheet.png--images <目录>汇报一句话说清:几个场景(主场景/变体各几)、几件道具、锚点总数、报告路径;没过的门明说。
不要说「已出图」——这一步不存在了,交付的是提示词。
最终落地:
<输出目录>/
├── <剧名>-art.json
├── <剧名>-art.md
├── art-report.html ← 双击就能开
└── images/ ← 本 skill 不写这个目录
└── <slug>-sheet.png ← 下游出完图放这儿,render 会捡起来bash
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.htmlThe report interface defaults to Chinese; if the user wants an English interface, add (or write at the top level of art.json, takes precedence). looks for images (both scenarios and props) in in the same directory as art.json by default; if images are elsewhere, use to specify the path — this skill does not generate these files. After downstream image generation is complete, re-run render to embed them into the report. The report includes: KPI bar, scenario list, scenario setting cards, prop list, prop setting cards (with copy buttons for anchor checklists / state variants / prompt packages), quality gate panel, and exportable JSON (the downloaded file is exactly art.json).
--lang en"lang": "en"--langrenderimages/<slug>-sheet.png--images <directory>Summarize the report in one sentence: number of scenarios (how many main / how many variants), number of props, total number of anchors, report path; clearly state any gates that failed.
Don't say "images have been generated" — that doesn't happen at this step; the deliverable is prompts.
Final deliverables:
<输出目录>/
├── <剧名>-art.json
├── <剧名>-art.md
├── art-report.html ← 双击就能开
└── images/ ← 本 skill 不写这个目录
└── <slug>-sheet.png ← 下游出完图放这儿,render 会捡起来三个 skill 的接力
Three-skill Workflow
novel-outline → outline.json (什么:结构与分集)
novel-characters → cast.json (谁:角色资产)
novel-art → art.json (哪里 + 手里拿的:美术资产)seed 吃 outline.json 的场景与道具两块(大纲没有 时道具留空,模型从原文提取), 吃 cast.json。三份 JSON 各自的报告都带导出按钮,改完都能喂回各自的 render/validate。
props--castnovel-outline → outline.json (什么:结构与分集)
novel-characters → cast.json (谁:角色资产)
novel-art → art.json (哪里 + 手里拿的:美术资产)seed consumes both the scenario and prop sections of outline.json (if the outline has no , the prop list is left empty and the model extracts them from the original text), and consumes cast.json. The reports for all three JSON files each have an export button, and after modifications, they can be fed back to their respective render/validate commands.
props--cast边界
Boundaries
- 报告界面内置中英(,默认中文、或跟 art.json 的
--lang字段);出图提示词永远英文lang - 本 skill 不出图。是给下游的版面指令,版面规格见
image.sheetreferences/sheet.md - 场景数量不设硬上限——上限在 novel-outline 的主场景门那里管;这里管的是每个资产的质量
- 道具只收叙事道具,3–8 件为宜——每多一件就多一份跨集一致性维护
- The report interface has built-in Chinese and English support (, defaults to Chinese, or follows the
--langfield of art.json); image generation prompts are always in Englishlang - This skill does not generate images. is a layout instruction for downstream use; layout specifications can be found in
image.sheetreferences/sheet.md - There is no hard limit on the number of scenarios — the limit is managed by novel-outline's main scenario gate; what is managed here is the quality of each asset
- Only narrative props are included, 3–8 pieces is recommended — each additional piece adds more cross-episode consistency maintenance work
自测
Self-test
bash
node {baseDir}/scripts/selftest.mjs151 项断言,不调模型、不花额度。10 道质量门每一道都有击穿用例。改完脚本先跑这个。
bash
node {baseDir}/scripts/selftest.mjs151 assertions, no model calls, no quota consumption. Each of the 10 quality gates has failure test cases. Run this first after modifying the script.
自带样例
Built-in Example
{baseDir}/examples/渡口-art.json{baseDir}/examples/渡口-art.json