SuperAPI AI Directory

novel-art

Design & creation

View repository

Updated 10-15 21:39

About this skill

novel-art

Create for AI short dramas anart setting collection: scenes + narrative props.The premise is etched into your bones: this is AI generation, not live action—there is no location scouting, set building, set dressing, or purchasing; environments and props are assets that must be generated dozens of times and still look the same, so all deliverables revolve around consistency:

Deliverable What it solves
Consistency anchors (3–5 per scene) The audience relies on them to recognize the scene, and QC relies on them to check whether generated shots have drifted
Lighting time-of-day variants For AI, changing the time of day is regeneration, not relighting; each state becomes a complete prompt
Empty-scene image generation prompts Environments and characters are two layers of assets; if people are mixed into a reference image, consistency is completely ruined
Variant mechanism (variantOf) Generating a new scene is cheap, but variants reusing the parent scene's assets are more consistent
Prop state variants A suitcase closed and opened are two reference images—props have state arcs, scenes do not
Prop scale reference AI often draws handheld props at furniture size, so prompts must include a scale phrase
Props on white background without hands Prop images need to be pasted into various shots, so they must be cuttable; hands holding props are the most common contamination

{baseDir} = the directory containing this file. Script {baseDir}/scripts/novel-art.mjs, zero dependencies,node run directly.

Boundaries (things not done): no storyboarding, no script writing, no character work (novel-characters 's job), no outline arrangement (novel-outline 's job).Props only include narrative props(those with close-ups, spanning episodes, and carrying the plot, usually 3–8 items)—scene furnishings belong to scene anchors, one-off hand-prop shots are handled by shot-level prompts, and none of these become separate assets.


Step 0 — Determine inputs

Three kinds of input, in descending priority:

  1. outline.json(output of novel-outline)—best, since the scene list, appearing episodes, carried excitement points, and reuse plan are all ready-made
  2. Novel original text—summarize the scene list yourself (main stages first; refer to novel-outline's idea of a main-scene cap: don't be greedy)
  3. A user-written scene list

If there is a cast.json (output of novel-characters), bring it too—it is needed to verify that "prompts contain no character names."

Step 1 — seed skeleton (only if outline.json exists)

node {baseDir}/scripts/novel-art.mjs seed <outline.json> > <workdir>/art.json

Deterministic transfer: scene id/name/main-scene marker/appearing episodes/carried excitement points; scenes with a reuse plan will have seedNote prompts to make variants.Do not make the model rethink these facts.

If there is no outline.json, build the list yourself according to references/schema.md .

Step 2 — Fill in settings scene by scene + extract narrative props

One per scene; parallelize if possible. Each task gets:

  • {baseDir}/references/scene-pass.md and {baseDir}/references/schema.md(read them and follow them)
  • That scene's skeleton + all information about this space in the original text/outline
  • Names of the other scenes in the same batch(the spatial character must be differentiated; don't write them all as the same kind of shabbiness)

The core requirements are all in scene-pass.md; the three most important: anchors must bedrawable, recognizable, verifiable(「patched boat canopy」 is an anchor, 「shabby atmosphere」 is an adjective); lighting stateinferred back from the episode breakdown, don't write an unused whole-family bucket;if a variant works, don't open a new scene。

Narrative props take priority from the outline:outline.json since 1.1.0 it carries props,seed which brings over the props table along with 「what it carries」「which payoffs it supports」「which episodes it appears in」; this layer only fills in the design fields (scale, anchor, state variants, white-background prompt).If the outline has no props, extract from the source text; then this step is the model's job: only takeones with close-ups, cross-episode appearances, plot-bearing, usually 3–8 items, on the same order of magnitude as the number of protagonists. Each item follows references/prop-pass.md to fill in: dramatic function, anchor, state variants, scale, white-background no-hands prompt. Something like a suitcase, a 「prop that follows the person」, belongs here—cramming it into scene anchors or character portraits is wrong.

Step 3 — Validation ⛔ cannot be skipped

node {baseDir}/scripts/novel-art.mjs validate <art.json> --cast <cast.json>

All 10 quality gates are code. Scenes + shared 6 gates: anchors 3–5, lighting states ≥1,no people, all prompts in English, no character names (only checked when --cast is given), variant references complete. Prop-specific 4 gates:states ≥1、scale phrase written into the prompt、negative words: no hands、design sheet pure white background。

Fix violations one by one, rerun after fixing, until it passes.

Step 4 — Output and reporting

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

The report UI is Chinese by default; if the user wants an English UI, add --lang en(or write at the top level of art.json "lang": "en",--lang takes priority).render By default it looks for images in the images/<slug>-sheet.png at the same level as art.json (looking for both scenes and props); if the images are elsewhere, use --images <目录> to point there——this skill does not produce these files, after the downstream finishes generating images, rerun render once and they can be embedded in the report. The report includes: KPI band, scene list, scene design cards, prop list, prop design cards (anchor checklist / state variants / prompt pack all with copy buttons), quality gate panel, export JSON (what is downloaded is art.json exactly as-is).

In one sentence, make the report clear: how many scenes (main scenes/variants each), how many props, total anchors, report path; explicitly state any gates that did not pass.

Don't say 「images generated」——this step no longer exists; what is delivered is prompts.

Final delivery:

<输出目录>/
├── <剧名>-art.json
├── <剧名>-art.md
├── art-report.html                ← 双击就能开
└── images/                        ← 本 skill 不写这个目录
    └── <slug>-sheet.png           ← 下游出完图放这儿,render 会捡起来

The relay of three skills

novel-outline    → outline.json (什么:结构与分集)
novel-characters → cast.json    (谁:角色资产)
novel-art        → art.json     (哪里 + 手里拿的:美术资产)

seed takes the scene and prop sections of outline.json (when the outline has no props , props are left empty and the model extracts them from the source text),--cast takes cast.json. The reports for the three JSON files each have an export button, and after editing they can all be fed back into their respective render/validate.

Boundaries

  • The report UI has built-in Chinese and English (--lang, Chinese by default, or follows art.json's lang field); image-generation prompts are always English
  • This skill does not generate images.image.sheet is a layout instruction for downstream; for layout specs see references/sheet.md
  • There is no hard upper limit on the number of scenes—the upper limit is managed at novel-outline's main-scene gate; what is managed here is the quality of each asset
  • Props should only include narrative props, ideally 3–8 items—each additional item adds one more layer of cross-episode consistency maintenance.

Self-test

node {baseDir}/scripts/selftest.mjs

151 assertions, no model calls, no quota usage. Each of the 10 quality gates has a breaking test case. Run this first after modifying the script.

Built-in sample

{baseDir}/examples/渡口-art.json: The complete settings for the three scenes of "Ferry Crossing" + two narrative props (an old leather suitcase and an old inkstone from the county office), all passing every quality gate (including the character name check against the novel-characters sample cast). It serves as the quality baseline and also as a self-test fixture.