漫剧(小说 / 网文 / 漫画改编)· 五站式流水线(novel-video-pipeline)
Übersicht
Wandelt eine Textgeschichte (Webroman, Comic, Originaldrehbuch, Märchen, etc.) stabil in ein Storyboard-Prompt-Paket + visuelle Referenzbilder + CC0-Vertonung um, das an Text-zu-Video-Modelle verfüttert werden kann. Dabei wird durchgängig die Grenze „keine Kopie realer Drittanbieter-Urheberrechtsfiguren“ eingehalten. Standardmäßig ausgerichtet auf Manga-Dramen (horizontales 16:9 / mehrteilige Serien), kann aber auch auf kindgerechte Manga-Dramen, einzelne Kurzvideos etc. umgestellt werden. Die Pipeline orientiert sich am Rhythmus aktueller Hits („starker Hook + emotionale Spannung + Twist + Befriedigung + Cliffhanger“), extrahiert jedoch nur das methodische Grundgerüst – Figuren, Handlung und Stil sind stets original.
Die Pipeline besteht aus fünf aufeinander folgenden Stationen, jede produziert ein vereinbartes JSON / Ressourcenverzeichnis, die nächste Station konsumiert die Ausgabe der vorherigen. Kernproduktionsreihenfolge: Zuerst die Asset-Bibliothek aufbauen (S2), dann die Storyboard-Prompts schreiben (S3) – das Storyboard ordnet lediglich die Assets nach filmischen Gesichtspunkten an, um Figurenkonsistenz und räumliche Kontinuität der Szenen zu gewährleisten.
S1 Adaptiertes Drehbuch ──script.json──▶ S2 Asset-Bibliothek ──character_manifest + scene_manifest (+ visual_manifest)──▶ S3 Storyboard-Prompts ──storyboard.json (Referenzen auf Assets + ref_images-Verankerung)──▶ S4 Audio ──audio_manifest──▶ S5 Compositing ──→ Fertigvideo
- S1 Adaptiertes Drehbuch: Komprimiert den Langtext/das Original auf ein „Gerüst aus Lehr-/Erzählwert + Beat-Tabelle“, gibt
script.jsonaus (titel / logline / characters / scenes / beats). - S2 Asset-Bibliothek (zuerst aufbauen): Liest das gesamte Drehbuch, erstellt Charakter-Drei-Ansichten-Assets (
character_manifest.json: visual_lock + front/side/back Ansichten + Verankerungsbildpaket + fixed_prompt) und Szenen-Über-die-Schulter-Mehransichten-Assets (scene_manifest.json: axis_of_action + establishing/OTS A→B/reverse/insert), und zieht passende Public Domain/CC0-Visual-Referenzbilder (visual_manifest.json) herunter. Wendet die IP-Firewall-Negativbegriffe an. Diese Station produziert die „Asset-Bibliothek“, die von S3 direkt referenziert wird. - S3 Storyboard-Prompts (basierend auf der Asset-Bibliothek): Jeder Beat wird in Einstellungen (shots) aufgeteilt. Jeder Shot referenziert
character_ref(Figur+Ansicht) undscene_ref(Szene+Ansicht), sperrt die Beschreibung aus der Asset-Bibliothek + Kamerabewegungsbibliothek (camera-movements.json) + Plattformvorgaben zusammen, fügtnegative_promptein und gibtstoryboard.jsonaus. - S4 Audio: Weist jeder Einstellung CC0 BGM/Soundeffekte zu, gibt
audio_manifest.jsonaus. - S5 Compositing (Schließt den Kreislauf zum fertigen Video): Kombiniert S3
storyboard.json(mitref_images-Verankerungsbildern) und S4audio_manifest.jsonzum fertigen Video – Bild-erzeugen/Bild-zu-Video pro Einstellung (mitref_imageszur Gesichtsstabilisierung) → Audio-Synchronisation → Schnitt/Montage (gemäßduration_sundaspect_ratio) → Plattform-Export → Konsistenz-Endkontrolle. Details inreferences/s5-composite.mdundscripts/build_ffmpeg_concat.py.
Wann verwenden (Trigger)
- Der Benutzer hat eine Geschichte/einen Roman/Webcomic/ein Drehbuch und möchte daraus „ein Manga-Drama / Kurzvideo / Storyboard / eine Animation machen“.
- Der Benutzer möchte „ein Drehbuch adaptieren, Storyboard-Prompts schreiben, ein Video-Skript generieren, einen Zeichenstil definieren, Musik untermalen“.
- Der Benutzer benötigt die Ausgabe einer einzelnen Station (z.B. nur Storyboard-Prompts oder nur Public-Domain-Referenzbilder).
- Der Benutzer hat strenge Anforderungen an „saubere Rechte / kommerziell nutzbar / kein IP-Risiko“ für das Material.
Arbeitsablauf (Workflow)
Der gesamte Ablauf orientiert sich an der Architektur-Idee populärer Open-Source-Lösungen, aber der Code ist eigenentwickelt und die Assets sind eigenständig:
- ViMax (MIT, ~392 Commits S1→S4 Orchestrierungspipeline) → Übernahme der „Geschichte→Storyboard→Video“-Phaseneinteilung und der Artefaktverträge.
- seedance-prompt-skill / ai-shortfilm-prompts (MIT) → Übernahme der SKILL-Format-Prompt-Vorlagenorganisation, als Basis für S3.
- ArcReel (AGPL) → Nur die Architektur lernen, keinen Code kopieren (AGPL ansteckend, daher nicht in diesen MIT-Style-Skill integrierbar). Details in
references/architecture-licenses.md.
Schritt 0 · Anforderungsaufnahme
Vier Punkte klären: ① Quellgeschichte (Webroman / Comic / Originaldrehbuch / Post oder Pfad); ② Zielplattform (horizontales Manga-Drama standardmäßig Bilibili/YouTube, siehe assets/s3/platform-presets.json für bilibili; hochkant Douyin/Video-Konto dann douyin); ③ Zeichenstil (chinesischer Comic / Aquarell / realistisch / Ukiyo-e / Kinderbuchillustration…); ④ Subtyp und Zielgruppe (Standard horizontales 16:9 Manga-Drama, ausgerichtet auf Hit-Rhythmus aber original; bei Kinderinhalt zusätzlich IP-Firewall + mature-Inhalte ausschließen).
Station 1 · S1 Adaptiertes Drehbuch
assets/s1/story-structure.md(Drei-Akt-/Beat-Strukturvorlage) +assets/s1/adaptation-method.md(Kompressionsmethodik: Wertegerüst erhalten, Redundanzen entfernen, Emotionkurve) laden.assets/s1/beat-sheet.mdnach Bedarf ausfüllen (ausfüllbare Beat-Tabelle).- An den beiden Adaptionsbeispielen
assets/s1/example-romeo-juliet.md,example-journey-to-west.mdorientieren. script.jsonausgeben, Felder siehereferences/workflow.md§S1 Vertrag.
Station 2 · S2 Asset-Bibliothek (zuerst aufbauen, dann Storyboard schreiben)
- Alle S1 Beats/Characters/Scenes durchlesen, Figuren-Assets erstellen:
assets/s2/character-design.mdladen, für jede Hauptfigurcharacter_manifest.jsonausgeben (visual_lock + fixed_prompt + drei Ansichten front/side/back + Verankerungsbildpaket ref_pack + Konsistenzregeln). - Szenen-Assets erstellen:
assets/s2/scene-multiview.mdladen, für jede Hauptszenescene_manifest.jsonausgeben (geography + axis_of_action + views{establishing, ots_a, ots_b, reverse, insert}). - Passende Public Domain/CC0 Visual-Referenzbilder
visual_manifest.jsonherunterziehen/generieren (mehrere Stile: chinesischer Comic / Aquarell / realistisch / Kinderbuchillustration / Met Public Domain Art…), IP-Firewall anwenden. - IP-Firewall anwenden:
assets/s2/negative-ip.json+assets/s2/negative-ip-firewall.md. - Lizenz-Gate: Nur
Public Domain/CC0erlaubt. Figuren-/Szenen-Assets stets original, kein identisches Kopieren von Hits (gleicher Name, gleiches Setting) (siehe IP-Firewall §6).
Station 3 · S3 Storyboard-Prompts (Basierend auf der Asset-Bibliothek schreiben)
-
assets/s3/template-library.json(Storyboard-Vorlagenbibliothek: Einstellungstyp / Bildausschnitt / Emotion) +assets/s3/camera-movements.json(Kamerabewegungsbibliothek: 40+ Bewegungen + Beat→Bewegungs-Mapping + Plattform-Syntax) +assets/s3/platform-presets.json(Prompt-Syntax, Seitenverhältnis, Zeitlimits pro Plattform) +assets/s3/tag-stats.json(Tag-Häufigkeitsstatistiken) +assets/s3/negative-quality.md(Qualitäts-Negativbegriffe) +assets/s2/negative-ip.json(IP-Firewall) laden. -
Jeder Beat → mindestens ein Shot; jeder Shot muss
character_refundscene_refenthalten (Referenz auf S2 Asset-Bibliothek), die gesperrte Figurenbeschreibung aus dem Assetfixed_promptholen; 1 primäre Kamerabewegung auscamera-movements.json(subject_aware_map empfiehlt pro Beat-Typ); mussnegative_promptenthalten (IP-Firewall + Qualitäts-Negativbegriffe zusammengeführt). -
storyboard.jsonausgeben:shots[{shot_id, beat_ref, character_ref[], scene_ref, ref_images[] (optional·direkte Verankerungsbilder, siehe unten „Referenzbild-Verankerung“), camera_movement, shot_size, speed (optional·Geschwindigkeitsmodifikator slow_motion etc., siehe camera-movements.json speed_modifiers), prompt, prompt_readable, negative_prompt, platform, aspect_ratio, duration_s, attribution}]. Machtverhältnis-Einstellungen mitcamera_movement: low_angle/high_angle+speed: "slow_motion"(Schreibweise sieheassets/s2/scene-multiview.md§3 (Ergänzung) Machtachse).Referenzbild-Verankerung (ref_images, Schlüssel zur Konsistenz zwischen Einstellungen):
ref_imagesist eine Liste von direkten Verankerungsbildern pro Einstellung, stabiler als reiner Textfixed_prompt(entspricht @Referenz von Jimeng / Runway Gen-4 Einzelbild-Gesichtsstabilisierung). Jeder Eintrag ist ein String, zwei Schreibweisen: ① Asset-Referenz-Tokenchar:<char_id>:<ref_pack_key oder three_view_key>/scene:<scene_id>:<view>(wird vom Skript automatisch auscharacter_manifest.ref_packextrahiert, der Generator löst ihn in den echten Bildpfad auf); ② Direkter Bildpfad/URL (z.B./assets/char_shen_zhao_face.png). Empfehlung 2–3 Bilder pro Figur (Nahaufnahme frontal/Profil/Ganzkörper), Jimeng max. 9 Bilder, Runway einzelnes Bild reicht zur Stabilisierung.build_storyboard.pyextrahiert standardmäßig automatisch dasref_packder Figur inref_images; kann in S5 direkt beim Compositing als Referenz für Gesichts-/Kleidungsstabilisierung an das Bild-zu-Video-Modell verfüttert werden. -
CC BY 4.0 Daten müssen attribution enthalten (dieses Repos Assets sind PD/CC0, standardmäßig keine Namensnennung nötig; bei Verwendung externer CC BY Daten muss attribution ausgefüllt sein).
-
Gerüst-Beschleunigung (optional): Zuerst S1
script.json+ S2character_manifest.json/scene_manifest.jsonerstellen, dannpython scripts/build_storyboard.py --project <DIR> --platform bilibililaufen lassen, um automatisch einenstoryboard.json-Entwurf zu generieren (fügt automatischcharacter_ref/scene_refpro Beat ein, wählt 1 primäre Kamerabewegung aussubject_aware_map, wählt Bildausschnitt pro Beat-Typ, setztnegative_promptmit vollständiger IP-Token-Abdeckung zusammen), dann manuelle Optimierung von Kamerawinkeln / Emotion / Dialog / Rhythmus. Dieses Skript ist die automatisierte Umsetzung der „Asset-first“-Reihenfolge, seine Ausgabe kann direkt vonvalidate_pipeline.pyvalidiert werden.
Station 4 · S4 Audio
assets/s4/audio-manifest.json(bereits heruntergeladene CC0-Audio-Liste, inkl. BGM / Soundeffekte / Emotionskategorien: ambient / cinematic / playful / tense / romantic / lullaby etc.) laden.- Nach Einstellungs-Emotion matchen: spannungsvolle Bässe → Twist-Abschnitt, sanftes Klavier → emotionale Szene, Whoosh → Übergang, Lullaby → Schlafszene, Cartoon Bounce → lebhafte Szene.
audio_manifest.jsonausgeben:items[{file, license, source, duration_ms}], nur CC0.
Station 5 · S5 Compositing (Schließt den Kreislauf zum fertigen Video)
references/s5-composite.md(S5 Compositing SOP: Fünf-Schritte-Kreislauf + Tool-Matrix + Konsistenz-Endkontrollliste) laden. 1.5 Verankerungsbilder auflösen:python scripts/resolve_ref_images.py --project <DIR>laufen lassen, um dieref_images-Tokens (char:: / scene::) jedes Shots in echte Bildpfade aufzulösen, gibtstoryboard.resolved.jsonaus (nicht aufgelöste Tokens bleiben erhalten mit Warnung).- Bild-erzeugen / Bild-zu-Video pro Einstellung: Mit
storyboard.resolved.jsonref_images(aufgelöste echte Bilder) als Gesichts-/Kleidungs-Stabilisierungsreferenz, zusammen mitfixed_prompt+camera_movement+camera-movements.jsonlens/stagesan Jimeng @Referenz / Runway Gen-4 / Kling / Seedance verfüttern, um jeden Clip zu generieren. - Audio-Synchronisation: BGM aus
audio_manifest.json(CC0) nach Beat-Emotion auswählen, Soundeffekte nachduration_szuschneiden. - Schnitt/Montage:
python scripts/build_ffmpeg_concat.py --project <DIR> --clips-dir <DIR>/clipslaufen lassen, um Concat-Liste und Befehl zu generieren, nachaspect_ratio(horizontal 16:9) als 1080p exportieren. - Konsistenz-Endkontrolle: §4-Checkliste (Figur/Szene/Achse/Machtachse/Dauer/IP-Firewall/Audio/Seitenverhältnis) abhaken, bevor veröffentlicht wird.
Schritt 6 · Zutrittskontrolle (Pflicht)
scripts/validate_pipeline.py --project <DIR> --platform bilibili [--strict] [--content-rating {normal,child}] ausführen, um die Verträge der vier Stationen + die fünf Qualitäts-Gates zu prüfen: Der negative_prompt jedes Shots in S3 muss alle gesperrten IP-Tokens aus assets/s2/negative-ip.json abdecken (harte Anforderung, echte Drittanbieter-Urheberrechtsfiguren zu schützen; Fehlen führt unter --strict zum Fehlschlag); die Dauer muss innerhalb der gültigen Menge der platform-presets.json liegen, das Seitenverhältnis muss passen (horizontales Manga-Drama standardmäßig 16:9); Audio-Dauer 0.3–180s (sehr kurze Soundeffekte erlaubt). Unter --strict werden auch Warnungen als Fehlschlag gewertet. Erst nach Bestehen darf die Video-Compositing-Phase beginnen.
Inhaltsbewertung (wichtig · Standard keine Einschränkung des Themas): Die Zutrittskontrolle standardmäßig --content-rating normal – keinerlei Inhaltsbewertungseinschränkungen, Kampf / Gewalt / Spannung / düstere etc. Erwachsenenthemen können normal produziert werden, nur die IP-Firewall und Asset-Verträge werden eingehalten. Erst für kindgerechte Pipeline wird --content-rating child (oder der alte Alias --child) hinzugefügt: Erzwingt in S1 einen „Value-Resolution“-Beat-Typ, in S3 die Abdeckung von Kindersicherheits-Negativ-Tokens (violence/gore/horror/blood/mature/nudity/weapon…), scannt die Beats auf erwachsene Inhalte (unter strict Fehlschlag). D.h.: --child ist ein rein optionaler „Kindersicherheits-Schalter“, wird er nicht übergeben, ist der Manga-Drama-Inhalt völlig frei und wird nicht kindgerecht gemacht.
Herunterlade-Skripte (Null IP-Risiko)
Beide Skripte verwenden nur die Standardbibliothek + systemeigenes curl, kein pip install nötig:
# S2 Visuelle Assets: OBI Public Domain mehrstilige Illustrationen (inkl. Kinderbuch/chin. Comic-Stil) + Openverse CC0 Bilder + Met Public Domain Art
python scripts/fetch_visual_assets.py --out <DIR> --sources obi,openverse,met
# S4 Audio: Openverse CC0 (schlüsselfrei); PIXABAY/FREESOUND-Key eintragen, um erweiterten Kanal zu aktivieren
python scripts/fetch_audio.py --out <DIR>
- Qualitäts-Gates eingebaut: Lizenz (PD/CC0), Bildqualität (lange Seite≥1000 und kurze Seite≥600, Datei≥50KB), Deduplizierung (SHA256 überläuft), Quellen-Gate (nur institutionelle Quellen), Sensitivitäts-Gate (Openverse
mature=truegenerell ausschließen, harte Anforderung für alle Quellen). - OBI-Übertragung verwendet
curl-Engine (--retry 5 --retry-all-errors -k), um gelegentliche SSL-Abbrüche der Pythonurllibzu umgehen.
Fünf Qualitäts-Gates (Für alle Stationen gültig)
- Lizenz-Gate: S2/S4 akzeptieren nur
Public Domain/CC0; Einführung von CC BY 4.0 muss attribution enthalten. - Bildqualitäts-Gate: Bild längste Seite ≥1000 und kürzeste Seite ≥600; Audio-Dauer 0.3–180s, Datei≥100KB.
- Deduplizierungs-Gate: SHA256 persistent über Läufe, doppelte Bilder/Audios automatisch überspringen.
- Quellen-Gate: Nur institutionelle/Public-Domain-Quellen (OBI, Openverse, Met, Freesound CC0…); unbekannte Quellen ablehnen.
- Sensitivitäts-Gate: Gesamter Inhalt schließt
matureaus (bei Kinderinhalt zusätzlich verstärkt); S2/S3 erzwingt Injektion von IP-Firewall-Negativbegriffen, blockiert bekannte Urheberrechtsfiguren; bei beliebten Manga-Drama-/Webroman-IPs dürfen deren Thema / Emotionsstruktur / Befriedigungsstruktur (Methodenebene) übernommen werden, aber keine vollständige Kopie einzelner Figuren, Szenen oder ikonischer Momente (vollständiges Plagiat).
IP-Firewall (Übernehmen, nicht kopieren)
- Konstante Negativbegriffe siehe
assets/s2/negative-ip.json, deckt Peppa Pig, Disney, Marvel, Sanrio, Numberblocks, My Little Pony etc. bereits registrierte echte Drittanbieter-Urheberrechtsfiguren ab – dies sind harte Grenzen, unabhängig davon, ob übernommen oder nicht, dürfen nicht reproduziert werden (Zutrittskontrolle erzwingt Token-Abdeckung). - Manga-Drama-spezifische Disziplin (Übernehmen, nicht kopieren): „Thementyp, Emotionsstruktur, Befriedigungsparadigma, Kamerasprache, Rhythmus“ beliebter Manga-Drama-/Webroman-IPs gehören zur Methodenebene, sind nicht urheberrechtlich geschützt und können als kreative Nahrung dienen, Übernahme ist erwünscht; aber vollständiges Plagiat ist verboten – d.h. keine einzelne Figur vollständig kopieren (gleicher Name, gleiches Setting), keine ikonischen Momente Szene für Szene reproduzieren, keine Markenzeichen-Stilkombinationen direkt nachahmen, keine Originaldialoge übernehmen. Selbst wenn der Benutzer eine bestimmte Hit-IP nennt, wird nur deren „wiederverwendbares Methodengerüst“ extrahiert, nicht der „Ausdruck“, in eine originale Beschreibung umgewandelt („Schicksalhafter schwarzgekleideter männlicher Protagonist + rotgekleidete weibliche Protagonistin im Konflikt“), dann an Bild/Video-Modelle verfüttert, und als doppelte Absicherung negative prompts hinzugefügt, um echte Drittanbieter-Urheberrechtsfiguren zu schützen.
- Dieser Skill enthält keine urheberrechtlich geschützten Texte, erfasst nur strukturelle/Methoden-Ebene-Paradigmen; alle Beispiele sind Public Domain oder benutzereigenes Material.
Ressourcen
assets/s1/: Geschichtenstrukturvorlagen, Adaptionskompressionsmethodik, ausfüllbare Beat-Tabelle, Drehbuchformat-Standard, zwei Adaptionsbeispiele.assets/s2/: Negativbegriffslistenegative-ip.json+ IP-Firewall-Erklärungnegative-ip-firewall.md+ Charakter-Asset-Methodikcharacter-design.md+ Szenen-Asset-Methodikscene-multiview.md.assets/s3/: Storyboard-Vorlagenbibliothektemplate-library.json, Kamerabewegungsbibliothekcamera-movements.json, Plattform-Vorgabenplatform-presets.json, Tag-Statistikentag-stats.json, Qualitäts-Negativbegriffenegative-quality.md.assets/s4/: Bereits heruntergeladene CC0-Audio-Listeaudio-manifest.json.scripts/:fetch_visual_assets.py(S2 Bilder herunterladen),fetch_audio.py(S4 Audio herunterladen),build_storyboard.py(S1+S2 → S3 Storyboard-Gerüst automatisch generieren, unterstütztref_images-Verankerungsautoextraktion /power_dynamicautomatische Winkelauswahl /--target-duration-Einstellungsbudget /--no-growthSelbstverbesserungsvorschläge abschalten),resolve_ref_images.py(S5 löstref_images-Tokens in echte Bildpfade auf, gibtstoryboard.resolved.jsonaus),build_ffmpeg_concat.py(S5 generiert aus storyboard.json FFmpeg-Concat-Liste + Befehl),validate_pipeline.py(Stationen-Zutrittskontrolle, standardmäßig--content-rating normalnull Inhaltseinschränkung;--content-rating child/--childaktiviert harte Kindersicherheits-Zutrittskontrolle),collect.py(Selbstverbesserungs-Sammelendpunkt: sammelt Ausgabe einer Ausführung + menschliche Bewertung + Fehlerprotokolle zurück zum Gedächtnisserver),load_learnings.py(Selbstverbesserungs-Einspeisungsendpunkt: ziehtlearnings.jsonvom Gedächtnisserver und cached lokal, damitbuild_storyboard.pyhäufig auftretende Fehlermuster-Vorschläge lesen kann).memory_server/:server.py(Null-Abhängigkeits-Gedächtnisdienst, 4 Tabellen SQLite + Bearer-Authentifizierung + Ratenbegrenzung),growth.py(Aggregation →snapshot/learnings.json+ Einspeisung von Priors),.env.example,README.md(Caddy HTTPS / systemd / cron Deployment).references/:architecture-licenses.md(Open-Source-Lösungsübernahme und Lizenzgrenzen),workflow.md(Detaillierte Verträge und Verwendung der vier Stationen),case-studies.md(Übernahme von Kamerabewegungs-/Storyboard-Syntax von Hit-Manga-Dramen/Kurzfilmen, Methoden-Literatur, keine Kopie von IPs),benchmark.md(Vergleichstest: NVP vs ViMax/seedance/ai-shortfilm/ArcReel etc. Bewertungsmatrix + empirische Selbsttests),s5-composite.md(S5 Compositing SOP: Fünf-Schritte-Kreislauf + Tool-Matrix + Konsistenz-Endkontrollliste).
Hinweise
- Große Bild-/Audio-Bibliotheken nicht in den Skill einbetten (portabel halten); zur Laufzeit mit Skripten herunterladen oder auf eigenes CC0-Materialverzeichnis verweisen (z.B.
./assets/characters,S4-Audio-Bibliothek/samples/etc. lokale saubere Charge). - Dieser Skill ist eine Orchestrierungsmethodik + eigenständige Assets, benötigt keine externen Code-Abhängigkeiten wie ViMax/ArcReel.
- Nach Erhalt von BHL-Key / NYPL-Token kann in
fetch_visual_assets.pyselbst einfetch_bhl()/fetch_nypl()-Kanal hinzugefügt werden (OBI hat bereits bestätigt, dass kein Key nötig ist).
Selbstverbesserung (Optional · Datenkreislauf schließen)
Lässt den Skill mit der Nutzung selbst verbessern: Nach jeder Pipeline-Ausführung werden objektive Metriken / menschliche Bewertungen / Fehlerprotokolle in die Gedächtnisdatenbank zurückgespeist, nach Aggregation werden „häufig auftretende Fehlermuster-Vorschläge / Bewertungen / Stilsignale“ in den Skill zurückgespeist, um bei der nächsten Generierung vorzeitig zu vermeiden. Reine Standardbibliothek, null Abhängigkeiten, kann unabhängig auf einem kleinen Server deployt werden, vom Skill-Kern entkoppelt. Vollständiges Deployment siehe memory_server/README.md.
Einzelrechner? Kein Deployment nötig. Wenn
NVP_MEMORY_URLnicht gesetzt ist, verbinden sichcollect.py/load_learnings.pyautomatisch direkt mit der lokalen SQLite im Skill (memory_server/data/nvp_memory.db) und aggregieren nach der Sammlung automatisch – null Konfiguration für einen vollständigen Kreislauf. Nur für „Multi-Maschinen-Zusammenführung / Teamarbeit / Remote-Einspeisung“ ist ein Start vonserver.pynötig (siehe unten „Server starten“ und README §2).
Drei Schritte des Kreislaufs:
- Sammlung (nach Pipeline-Lauf):
python scripts/collect.py --project <DIR> --platform bilibililiest automatisch ausscript.json/storyboard.json/storyboard.resolved.jsonBeats / Shots / Auflösungsrate / Dauer etc. Metriken, speichert in der Gedächtnisdatenbank (standardmäßig lokale SQLite; fallsNVP_MEMORY_URLgesetzt, POST an den Dienst). Kann menschliche Bewertung--feedback 5 overall "Rhythmus war gut"oder Fehlerprotokoll--failures fails.jsonanhängen. Offline-Maschine mit--mirror ./mirror.json --dry-runSpiegel erzeugen, spätercollect.py --sync ./mirror.jsonmit Server synchronisieren.--localerzwingt lokal,--remoteerzwingt Dienst. - Aggregation (lokal automatisch / Server zeitgesteuert): Im lokalen Modus nach Sammlung automatisch aggregiert; im HTTP-Modus cron stündlich
python memory_server/growth.pylaufen lassen, um die vier SQLite-Tabellen zusnapshot/learnings.jsonzu aggregieren und stabiles Wissen in diepriors-Tabelle zu upserten. - Einspeisung (vor nächster Generierung):
python scripts/load_learnings.pylädtlearnings.jsonund cached in.cache/learnings.json(standardmäßig lokales Snapshot lesen; bei gesetzter URL Remote-Abruf;--localerzwingt lokal,--no-fetchliest nur Cache);build_storyboard.pyliest automatisch und gibt während der Generierung „Selbstverbesserungsvorschläge“ aus (häufige Fehlermuster → vorzeitig vermeiden, z.B. unaufgelöste Referenzbilder, fehlende Machtachsen-Einstellungen), kann auch mit--no-growthdeaktiviert werden.
Server starten: python memory_server/server.py --no-auth (lokaler Test) oder python memory_server/server.py (öffentliches Netz, benötigt NVP_API_TOKEN Umgebungsvariable / --token; Caddy Reverse Proxy für TLS). Endpunkte: GET /health, POST /ingest, GET /query, GET /snapshot, GET /export.