Communitygithub.com

Jenesyx/reel-split

Verwende den Befehl, wenn der Nutzer /reel-split eingibt oder nach dem Split-Screen-Erklärer-Reel fragt – ein animiertes Widget-Panel im oberen ~45 % des Bildes, der Sprecher darunter durchgehend sichtbar, ohne Untertitel oder Soundeffekte – typisch für ‚Ich habe dieses Tool gefunden / hier sind 5 Tipps‘-Videos mit einer sprechenden Person im Rohmaterial.

Was ist reel-split?

Dieses Skill ermöglicht die Erstellung eines Split-Screen-Reels, bei dem ein animiertes Widget-Panel den oberen Teil des Bildes einnimmt (standardmäßig 45 %, konfigurierbar), während der Sprecher unverändert im unteren Bereich bleibt. Es ist speziell für Erklärvideos konzipiert, wie ‚Ich habe dieses Tool gefunden‘ oder ‚Hier sind 5 Tipps‘, bei denen der Fokus auf visuellen Illustrationen des Gesagten liegt – Karten, Messgeräte, Umschalter, Terminals und Chips. Der Workflow umfasst die Analyse des Rohmaterials, Transkription unter Berücksichtigung von Fachbegriffen, Gesichtsverfolgung, Erstellung eines Szenenplans mit Widgets, die auf bestimmte gesprochene Wörter abgestimmt sind, und schließlich das Rendern. Das Skill unterstützt Apple Silicon, Windows und Linux und verwendet Tools wie ffprobe, eigene Python-Skripte und Hyperframes für die Animation. Es vermeidet Untertitel, Soundeffekte und Musik – das Audio stammt ausschließlich vom Originalmaterial. Wichtige Annahmen sind, dass das Material bereits geschnitten, farblich korrigiert und mit Musik versehen ist; falls nicht, wird der Nutzer gefragt. Am Ende wird ein Kommentar-Keyword und eine Folgekarte eingeblendet.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Jenesyx/arta-edit-studio/tree/main/.claude/skills/reel-split

In Ihrer bevorzugten KI fragen

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

Dokumentation

Reel – Split-Edit (45 % Panel über Sprecher)

Ein permanent cremefarbenes Panel füllt den oberen Teil des Bildes (1080 × split.panel_height, Standard 864 = 45 %) mit UI-artigen Widgets – Karten, Messgeräte, Umschalter, Terminals, Chips – die genau das veranschaulichen, was gerade gesagt wird. Der Sprecher befindet sich darunter im Maßstab 1 und bewegt sich nie. Ende: Das Kommentar-Keyword groß auf dem Bildschirm, dann eine Folgekarte. Arbeitsbeispiel: examples/split/ (Plan + Szenenmodul eines echten 100-Sekunden-Videos über fünf Claude-Skills).

Argumente: $ARGUMENTS

Standardwerte (nur ändern, wenn der Nutzer es sagt)

Zuerst reel.config.json lesen (fällt zurück auf reel.config.example.json).

SacheStandardwert
Split"split": split.panel_height (864 → Panel 45 %, Sprecher 55 %; 960 = 50/50)
SprecherMaßstab 1, kein Zoom, keine Bewegung; Gesicht zentriert im Sprecherbereich (speaker_y)
Sicherheitsbox"safe": split.safe = [64, 160, 64, 32] → Szeneninhalt befindet sich in 952 × 672, beginnend 160 px von oben (Instagram-Header / Telefon-Statusleiste verdecken den oberen Rand)
Untertitel / SFX / MusikKeine hinzugefügt. Audio = eigener Mix des Takes, von finish.py in denselben Container gemuxt
TakeWir gehen davon aus, dass er bereits geschnitten, farblich korrigiert und mit Musik versehen ist – also unverändert verwenden. Rohmaterial/unbearbeitet → vorher fragen
CTAKommentar-Keyword (Wort oder Zahl) riesig in einer Sprechblasenkarte; Folgekarte "handle": creator.handle, nur Text, niemals ein Gesichtsausschnitt
Palettesplit_palette: cremefarbenes Panel, tintenfarbener Text, Akzentfüllungen; Text auf Creme verwendet accent_deep (Kontrast)

Eingaben

Name des Takes und Thema kommen aus den Argumenten. Einmal, in einer Nachricht, nur das fragen, was fehlt: Ist der Take bereits geschnitten/farbkorrigiert/mit Musik versehen? Das Kommentar-Keyword? Namen oder Fachbegriffe, die Whisper falsch verstehen könnte (Tool- und Produktnamen).

Pipeline

PY = .venv/Scripts/python.exe -X utf8 (Windows) oder .venv/bin/python -X utf8 (macOS/Linux). Lange Schritte im Hintergrund.

#SchrittBefehl / AktionPrüfung
1Ansehenffprobe; Kontaktabzug ffmpeg -i raw/<take> -vf fps=1/5,scale=216:384,tile=9x2 -frames:v 1 work/<take>/sheet.jpg ansehenLeere Wand über dem Kopf? Bereits bearbeitet?
2Transkribieren$PY tools/transcribe.py <take> --prompt "<Namen, Fachbegriffe>"Toolnamen Korrektur lesen; Lücken > 3 s → Fenster neu transkribieren
3Gesicht$PY tools/face_track.py <take> --split <panel_height>gibt speaker_y aus
4Beat-Planeine Szene pro Idee, typisch 3–7 s, jedes Widget an ein gesprochenes Wort geheftet (Cue = Wortanfang). Szenen ändern den Inhalt, nie das Layout
5Plan-Dateiwork/<take>/showcase.json basierend auf examples/split/showcase.json: video ("../../raw/<file>"), split, speaker_y, safe, scenes_module, scenes[] {kind, start, end, cue{...}}, handle in der Folge-Szene; _note speichert die Gesichtsnummern
6Szenentools/scenes_<slug>.py basierend auf examples/split/scenes_5skills.py: eine sc_<kind>(i, s) -> (html, js) pro Kind, RENDER-Dict, optional CSS/JS. Koordinaten innerhalb der Sicherheitsbox (952 breit); IDs s{i}-*; Cue-Zeiten absolut. sc_comment, sc_follow sind der CTA
7Bauen$PY tools/showcase_build.py <take>; in work/<take>/sc: npx hyperframes lint public → 0 Fehler; npx hyperframes snapshot public -o ../snaps --no-end --describe false --at <Mitte jeder Szene>; Blätter lesen, korrigierenText innerhalb des Panels, nichts unter dem Header
8Schnell rendern$PY tools/finish.py <take> --seconds 12; work/<take>/sc/quick_sheet.jpg lesen
9Voll rendern$PY tools/finish.py <take> (Hintergrund) → final/<take>/, verifizieren, qa/sheet.jpgdas Blatt lesen
10BerichtPfad, Länge, Szenen, Überprüfungsergebnis. Falls etwas Neues gelernt wurde, zu diesem Skill hinzufügen

Panel-Regeln

  • Widgets veranschaulichen den Satz, der gerade jetzt gesprochen wird: eine Repo-Karte, wenn das Repo genannt wird; ein Messgerät, wenn verglichen wird; eine Durchstreichung, wenn „nicht dies“ gesagt wird.
  • Jede Szene blendet 0,25 s vor der nächsten aus (der Builder tut dies); innerhalb einer Szene erscheinen Elemente zu ihren Cue-Wörtern.
  • Zahlen auf dem Bildschirm müssen echte Zählwerte aus dem Take sein.
  • Die in showcase_build.py eingebauten Szenenarten (hook, repo, cta, …) stammen aus der Zeit vor der 45 %-Sicherheitsbox und können überlaufen; schreibe stattdessen Arten in tools/scenes_<slug>.py basierend auf examples/split/scenes_5skills.py.
  • Persischer / arabischer Text: .fa-Klasse (RTL auf dem Element, niemals dir="rtl" auf <html>), letter-spacing: 0, Ziffern mittels fa(), eine große Null als lateinisches 0.
  • Keine überlappenden Tweens auf einer Eigenschaft, kein Math.random / from:"random", Einschübe tragen autoAlpha:0 im Ausgangszustand.
  • Falls ein Quellclip HDR (HLG) ist, zuerst tonemappen (TONEMAP in tools/story_assets.py) – finish.py stoppt bei „HDR auto-promotion“.
  • hyperframes snapshot ist kein Beleg für das Rendering – Schritt 8 ist es.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Verwandte Skills