苏格拉没有底 · 视频工坊(综合 skill)
1. Stil auswählen
| Comic-Erklärvideo | Pixel-Beat-Story | |
|---|---|---|
| Verzeichnis | styles/comic-explainer/ | styles/pixel-beat-story/ |
| Geeignet für | Erklärung eines Sachverhalts (Gesellschaft, Zeitgeschehen, Geschichte): Nachfragen zu Nachrichten, Systeme, Begriffsklärungen | Erzählung einer persönlichen Geschichte (soziale Brennpunkte): Autismus, Alzheimer, zurückgelassene Menschen, Alleinleben… |
| Antrieb | Benutzeraufgenommenes Voice-Over mit Wort-für-Wort-Zeitachse (faster-whisper + difflib) | Musik mit Takt-/Phrasenraster (beats.py) |
| Seitenverhältnis | Hochformat 1080×1920 / 30fps | Querformat 4:3 1440×1080 / 30fps (änderbar) |
| Dauer | Abhängig vom Voice-Over (Beispiel: 10 Minuten, 7 Kapitel) | 3–4,5 Minuten |
| Bildsprache | Warm-beiger Papierhintergrund, Q-Version bunte Comic-Figuren (Green-Screen-Erzeugung, Freistellung), Kapitelkarten, Stempel, programmatische Icons | Pixel-Nacht-Szene mit Häuschen, Elfen-Figuren, sprechende kleine Objekte, HUD-Zähler, Text-Dialoge |
| Ton | Originalstimme ungeschnitten + programmatische Klaviermusik + Soundeffekte + Ducking | Musik (verlängern/unterbrechen/zurückkommen) + programmatische Regen-/Donner-Umgebungsgeräusche, Stille an der schmerzhaftesten Stelle |
| Engine | node 22 + @napi-rs/canvas (render_example.js DSL) | Remotion (weilanx-claude-videos Projekt, Ep54-example.tsx) |
| Beispiel | „Bei so vielen Daten, warum noch ein Staatsunternehmen gründen?“ | „Er spricht nicht“ / „Er kommt nicht von den Sternen“ |
Bei Unsicherheit den Nutzer fragen: „Soll dieses Video ein Comic-Erklärvideo oder eine Pixel-Beat-Story werden?“
Nach der Auswahl den vollständigen Inhalt der entsprechenden STYLE.md lesen (read_file) und nach deren Ablauf vorgehen.
2. Gemeinsame Kanal-Richtlinien (obligatorisch)
- Cover als erster Frame: Jedes Video erhält ein selbst erstelltes Cover, das direkt am Anfang des fertigen Videos eingefügt wird (Comic-Erklärvideo: erste 0,4s; Pixel-Beat-Story: Frame 0). Eine separate Cover-Datei wird ausgeliefert.
- Wasserzeichen in die Szene integrieren, kein Ecklogo: „苏格拉没有底“ in Schilder, Namensschilder, App-Leisten, Fenstertitel, Abspann-Angaben usw. schreiben; der Nutzer lehnt explizit ein Wasserzeichen in der unteren rechten Ecke ab.
- Erst Muster, dann Vollvideo: Comic-Erklärvideo: Erstelle Anfang bis erstes Kapitel (ca. 80s); Pixel-Beat-Story: Erstelle erste Szene (60–70s). Erst nach Bestätigung des Looks durch den Nutzer das gesamte Video erstellen.
- Drehbuch vorab prüfen: Der Nutzer schreibt das Skript / nimmt die Audiodatei selbst auf. Ich bin für Faktencheck zuständig (web_fetch der Originalberichte/Forschung), weise auf mehrdeutige Zeichen, logische Sprünge und heikle Formulierungen hin, bevor ich mit der Arbeit beginne.
- Audio-Grundlinie: Die Originalstimme des Nutzers wird nicht geschnitten oder neu angeordnet; kein TTS als Ersatz; Musik und Soundeffekte müssen originell/programmatisch oder lizenziert sein; Platzhalter-Tracks werden bei jeder Auslieferung als solche gekennzeichnet und zum Austausch aufgefordert. Zusammengesetzte Audios werden mit numpy equal-power Crossfade verbunden (ffmpeg acrossfade schneidet bei gleicher Eingabe ab).
- Lautstärke: Gesamtes Video -15 LUFS, zweimal loudnorm (
shared/loudnorm.sh), Fade-Out am Ende. - Figuren ansehnlich: Sauber, freundlich, ausdrucksstark; der Nutzer akzeptiert keine hässlichen Figuren, auch Nebenfiguren müssen ansprechend sein; gleiche Figuren erhalten ein festes Prompt-Skelett; Erzeugung mit Green-Screen/reinem Hintergrund und anschließendem Freistellen (Comic-Erklärvideo
key.py, Pixel-Beat-Storycutout.py). - Kontaktabzug vor dem Rendern prüfen: Mit
read_fileden Kontaktabzug ansehen – Text erscheint nicht außerhalb des Bildes, überdeckt keine Gesichter, erster Frame ist das Cover, Wasserzeichen ist vorhanden, Schlüsseldialoge/-wörter passen zum Ton. - Rendering: Mit 2 Kernen in der Sandbox segmentiert parallelisieren (jedes Segment concurrency=1), zuerst nach /tmp schreiben, dann in das Arbeitsverzeichnis kopieren (faststart in Netzwerklaufwerke verursacht IO-Fehler); bei Audio-Änderungen nur die Audiodatei neu rendern, bei kleinen Änderungen nur die betroffenen Frame-Segmente neu rendern und überschreiben.
- Inhaltsethik (besonders bei Pixel-Beat-Story): Nicht behaupten, dass KI irgendeine Krankheit heilen kann; keine vulnerablen Gruppen romantisieren oder als „die Anderen“ darstellen; Geschichten als fiktional kennzeichnen, keine echten Kinderdaten verwenden; im Abspann Quellen und Jahreszahlen angeben.
3. Verzeichnisstruktur
SKILL.md ← Diese Datei (Stilauswahl + gemeinsame Regeln)
shared/loudnorm.sh Zweimal loudnorm
styles/comic-explainer/ 【Comic-Erklärvideo】
STYLE.md Stil-Spezifikationen, Layout-Koordinaten, Animations-DSL, Audio-Ausrichtung und Mischungsprozess
templates/ lib.js render_example.js audio.py wh.py align2.py key.py mux.sh
examples/ Cover-/Kontaktabzug-Beispiele, Figuren-Muster, Textformat (mit # oder #Kapitel markiert)
styles/pixel-beat-story/ 【Pixel-Beat-Story】
STYLE.md Stil, Drehbuch-Formel, Beat-Regeln, Musikbearbeitung, Layout, QA
references/ story.md layout.md
scripts/ beats.py music_tools.py sfx.sh cutout.py contact.sh stills.mjs render.sh mux.sh
template/ Ep54-example.tsx ep54-music-ops.json ep54-script-example.md assets/
4. Umgebung
- Allgemein: ffmpeg ≥6, python3 + numpy scipy pillow; chinesische Schriftarten.
- Comic-Erklärvideo: node 22 +
@napi-rs/canvas; faster-whisper (numpy-Array übergeben, keinen Dateipfad); Schriftart LXGW WenKai →fonts/wk.ttf.lib.jsbenötigtassets/,map/,heads.json(Porträt-Zuschneidetabelle{name:[cx,cy,size]}) im Projektverzeichnis; bei neuen Projekten selbst anlegen. - Pixel-Beat-Story: Remotion-Projekt (weilanx-claude-videos, MIT; Remotion privat / für Unternehmen mit ≤3 Mitarbeitern kostenlos); Noto Sans/Serif SC. Vor jedem node-Befehl in der Sandbox
export NODE_OPTIONS=--max-old-space-size=4096setzen,./node_modules/.bin/remotionstatt npx verwenden.
5. Auslieferungs-Textbaustein
In einer Nachricht zusammenfassen: Videolänge, zwei oder drei Highlights (Comic-Erklärvideo: Kapitel und Schlüsselszenen; Pixel-Beat-Story: Beat-Design), ob die Musik nur ein Platzhalter ist, und fragen, was angepasst werden soll. Anhängen: fertiges mp4 + Cover.