CommunityCodierung & Entwicklunggithub.com

eternityspring/shuohao-skills

Erstellt für KI-Kurzfilme das Art Bible (Szenen + narrative Props): Designabsicht der Szene, Konsistenzanker, Lichtstimmungsvarianten, leere Szenen-Prompts; dramatische Funktion der Props, Zustandsvarianten, Maßstabsreferenz, weiße Hintergrund-Prompts ohne Hände.

Was ist shuohao-skills?

Dieses Skill erstellt professionelle Art Bibles für KI-generierte Kurzfilme mit dem Fokus auf Szenen- und Requisitenkonsistenz über mehrere Folgen hinweg. Es ist speziell für KI-Generierung konzipiert und nicht für Realfilmproduktionen. Das Skill generiert keine Bilder selbst, sondern liefert die Prompt-Blaupausen für die Bildgenerierung im nächsten Schritt. Es unterstützt die Plattformen Claude Code, Cursor, Codex und andere KI-Entwicklungswerkzeuge. Die Hauptfunktionen umfassen das Extrahieren von Szenenlisten aus Outline-JSONs, das Definieren von Konsistenzankern (3–5 pro Szene), das Erstellen von Lichtstimmungsvarianten, das Identifizieren narrativer Requisiten (3–8 Stück) und das Generieren von weißen Hintergrund-Prompts ohne Hände für nahtloses Compositing. Ein integrierter Validator prüft 10 Qualitätstore (ohne API-Calls), und ein Renderer erstellt eine HTML-Inspektion mit exportierbarem JSON. Das Skill arbeitet zero-dependency, benötigt keinen API-Key und kann aus einem Outline-JSON eine initiale Szenenliste seeden.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/eternityspring/shuohao-skills/tree/HEAD/skills/novel-art

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

novel-art

Erstellt für KI-Kurzfilme das Art Bible: Szenen + narrative Props. Die Prämisse ist tief verankert: Das ist KI-Generierung, kein Realfilm – kein Location Scouting, kein Setbau, keine Requisitenbeschaffung. Die Umgebungen und Props müssen dutzende Male generiert werden und trotzdem gleich aussehen – daher dreht sich alles um Konsistenz:

LiefergegenstandWas es löst
Konsistenzanker (3–5 pro Szene)Der Zuschauer erkennt die Szene daran, QC prüft damit, ob die generierten Einstellungen abdriften
LichtstimmungsvariantenKI wechselt die Tageszeit durch Neugenerierung, nicht durch Umbelichten – jeder Zustand wird als vollständiger Prompt festgehalten
Leere-Szenen-GenerierungspromptsUmgebung und Figuren sind zwei getrennte Assets – wenn Referenzbilder Menschen enthalten, ist die Konsistenz dahin
Variationsmechanismus (variantOf)Neue Szenen zu generieren ist billig, aber eine Variante, die das Asset der Mutterszene wiederverwendet, ist konsistenter
Requisiten-ZustandsvariantenEin Koffer geschlossen vs. offen sind zwei Referenzbilder – Requisiten haben Zustandsbögen, Szenen nicht
Requisiten-MaßstabsreferenzKI malt Handrequisiten oft in Möbelgröße – der Prompt muss Maßstabsphrasen enthalten
Requisiten weißer Hintergrund ohne HändeDas Requisitenbild muss in verschiedene Einstellungen eingefügt werden können – es muss ausgeschnitten werden können; die Hand, die es hält, ist die häufigste Verunreinigung

{baseDir} = Verzeichnis dieser Datei. Skript {baseDir}/scripts/novel-art.mjs, zero dependency, direkt mit node ausführbar.

Begrenzung (was NICHT getan wird): Keine Storyboards, kein Drehbuch, keine Figuren (Aufgabe von novel-characters), keine Gliederung (Aufgabe von novel-outline). Es werden nur narrative Requisiten erfasst (die Nahaufnahmen haben, in mehreren Folgen vorkommen, die Handlung tragen – in der Regel 3–8 Stück) – Szenendekoration gehört zu den Szenenankern, einmalige Handrequisiten werden mit Einstellungsprompts gelöst, keines davon wird als separates Asset angelegt.


Schritt 0 – Eingabe festlegen

Drei Arten von Eingaben, Priorität von hoch nach niedrig:

  1. outline.json (Ergebnis von novel-outline) – optimal, Szenenliste, Vorkommensfolgen, tragende Spannungspunkte und Wiederverwendungsschemata sind vorhanden
  2. Roman-Original – Szenenliste selbst erstellen (Hauptschauplätze priorisieren, siehe Hauptszenen-Obergrenze von novel-outline: nicht zu viele)
  3. Vom Benutzer handschriftliche Szenenliste

Wenn cast.json (Ergebnis von novel-characters) vorhanden ist, auch verwenden – um zu prüfen, dass die Prompts keine Figurennamen enthalten.

Schritt 1 – Gerüst seeden (nur mit outline.json)

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

Deterministische Übertragung: Szenen-ID/Name/Hauptszenen-Markierung/Vorkommensfolgen/tragende Spannungspunkte, Szenen mit Wiederverwendungsschema erhalten einen seedNote-Hinweis, Varianten zu bilden. Diese Fakten soll das Modell nicht noch einmal durchdenken müssen.

Ohne outline.json die Liste selbst gemäß references/schema.md erstellen.

Schritt 2 – Szene für Szene Einstellungen ausfüllen + narrative Requisiten extrahieren

Jede Szene einzeln, parallelisierbar. Jede Aufgabe erhält:

  • {baseDir}/references/scene-pass.md und {baseDir}/references/schema.md (lesen und befolgen)
  • Gerüst dieser Szene + alle Informationen über diesen Raum aus dem Original/Gliederung
  • Namen der anderen Szenen im selben Batch (die Raumstimmungen müssen unterscheidbar sein, nicht alle in derselben Art heruntergekommen)

Die Kernanforderungen stehen in scene-pass.md, die drei wichtigsten: Anker müssen zeichnbar, erkennbar und überprüfbar sein („geflickte Bootsplane“ ist ein Anker, „heruntergekommene Atmosphäre“ ist ein Adjektiv); Lichtstimmungen von den Folgen ableiten, nicht eine nutzlose Sammlung aller Zustände schreiben; wenn möglich eine Variante anlegen, keine neue Szene eröffnen.

Narrative Requisiten bevorzugt aus der Gliederung übernehmen: outline.json ab Version 1.1.0 führt props mit; seed übernimmt die Requisitentabelle mitsamt „was tragen sie“, „welche Spannungspunkte stützen sie“, „in welchen Folgen treten sie auf“. In dieser Schicht werden nur die Designfelder ausgefüllt (Maßstab, Anker, Zustandsvarianten, weißer Hintergrund-Prompt). Wenn die Gliederung kein props hat, aus dem Originaltext extrahieren – dann ist das die Aufgabe des Modells: Es werden nur Requisiten mit Nahaufnahme, folgenübergreifendem Vorkommen, handlungstragend erfasst, in der Regel 3–8 Stück, in der gleichen Größenordnung wie die Anzahl der Hauptfiguren. Jede Requisite wird gemäß references/prop-pass.md ausgefüllt: Dramatische Funktion, Anker, Zustandsvarianten, Maßstab, weißer Hintergrund-Prompt ohne Hände. Ein Koffer, der „mit der Figur reist“, gehört hier hin – ihn in den Szenenanker oder in die Figurenbeschreibung zu stecken, ist falsch.

Schritt 3 – Validierung ⛔ darf nicht übersprungen werden

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

10 Qualitätstore, alle als Code. Szenen + gemeinsam 6 Tore: Anker 3–5, Lichtstimmungen ≥1, keine Menschen, Prompts nur Englisch, keine Figurennamen (nur mit --cast), Variantenreferenzen vollständig. Requisiten-spezifisch 4 Tore: Zustände ≥1, Maßstabsphrase im Prompt, Negativ-Prompt verbietet Hände, Hintergrund rein weiß.

Jeden Verstoß einzeln korrigieren, erneut ausführen, bis bestanden.

Schritt 4 – Ausgabe und Bericht

cd <Ausgabeverzeichnis>
node {baseDir}/scripts/novel-art.mjs render <Titel>-art.json --md   > <Titel>-art.md
node {baseDir}/scripts/novel-art.mjs render <Titel>-art.json --html > art-report.html

Berichtsoberfläche standardmäßig Chinesisch; für englische Oberfläche --lang en hinzufügen (oder im art.json oberster Ebene "lang": "en" setzen, --lang hat Vorrang). render sucht standardmäßig im selben Verzeichnis wie art.json nach Bildern unter images/<slug>-sheet.png (sowohl für Szenen als auch Requisiten); sind die Bilder woanders, mit --images <Verzeichnis> darauf verweisen – dieses Skill erzeugt diese Dateien nicht, der downstream-Prozess kann nach der Bildgenerierung render erneut laufen lassen, um sie in den Bericht einzubetten. Der Bericht enthält: KPI-Leiste, Szenenliste, Szenen-Steckkarte, Requisitenliste, Requisiten-Steckkarte (Anker-Checkliste / Zustandsvarianten / Prompt-Paket alles mit Kopier-Button), Qualitätstor-Panel, Export-JSON (heruntergeladen wird das art.json im Original).

Die Zusammenfassung sagt in einem Satz: Anzahl Szenen (davon Hauptszenen/Varianten), Anzahl Requisiten, Gesamtzahl Anker, Berichtspfad; nicht bestandene Tore werden benannt.

Nicht sagen „Bild bereits generiert“ – dieser Schritt existiert nicht mehr, geliefert werden Prompts.

Endgültige Ablage:

<Ausgabeverzeichnis>/
├── <Titel>-art.json
├── <Titel>-art.md
├── art-report.html                ← Doppelklick öffnet es
└── images/                        ← Dieses Skill schreibt nicht in dieses Verzeichnis
    └── <slug>-sheet.png           ← downstream nach der Bildgenerierung hier ablegen, render nimmt es auf

Staffelstab der drei Skills

novel-outline    → outline.json (Was: Struktur & Folgen)
novel-characters → cast.json    (Wer: Figuren-Assets)
novel-art        → art.json     (Wo + Was in der Hand: Art-Assets)

seed frisst Szenen- und Requisitenabschnitte von outline.json (wenn die Gliederung kein props hat, bleiben Requisiten leer, das Modell extrahiert aus dem Originaltext), --cast frisst cast.json. Die Berichte aller drei JSONs haben einen Export-Button, Änderungen können jeweils an den eigenen render/validate zurückgegeben werden.

Begrenzung

  • Berichtsoberfläche eingebaut mit Chinesisch/Englisch (--lang, standardmäßig Chinesisch, oder folgt dem lang-Feld von art.json); Bildgenerierungs-Prompts immer Englisch
  • Dieses Skill generiert keine Bilder. image.sheet ist ein Layout-Befehl für downstream, das Layout-Format siehe references/sheet.md
  • Keine harte Obergrenze für die Szenenanzahl – die Obergrenze regelt das Hauptszenen-Tor von novel-outline; hier geht es um die Qualität jedes Assets
  • Es werden nur narrative Requisiten erfasst, 3–8 Stück empfohlen – jedes weitere Stück bedeutet mehr Aufwand für die folgenübergreifende Konsistenz

Selbsttest

node {baseDir}/scripts/selftest.mjs

151 Assertions, kein Modellaufruf, kein Limitverbrauch. Jedes der 10 Qualitätstore hat Durchbruch-Testfälle. Nach Änderungen am Skript zuerst dies ausführen.

Mitgeliefertes Beispiel

{baseDir}/examples/渡口-art.json: Vollständiges Setting für drei Szenen + zwei narrative Requisiten (alter Koffer, altes Tintenfass aus dem Kreisamt) von „渡口“ (Die Fähre), alle Qualitätstore bestanden (einschließlich Figurennamen-Prüfung anhand des Beispiel-Cast von novel-characters). Dient als Qualitätsbenchmark und als Test-Fixture.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills