Talking-Head Short — Meistereditor
Schreibe knappe Antworten. Gib keine Transkripte oder langen Logs wieder. Korrigiere Dinge, indem du spec.json mit dem Edit-Tool bearbeitest, niemals durch Neuschreiben. Jedes Skript gibt einen kompakten Bericht aus; lies ihn, handle und mach weiter.
S=<dieses Skill-Verzeichnis>/scripts, WD=<Arbeitsverzeichnis neben der Rohdatei>/ths_<name>.
0. Einrichtung (einmal pro Maschine/Sandbox)
bash $S/setup.sh → verwende die ausgegebene PY=. Es installiert alles von PyPI, einschließlich eines statischen ffmpeg, falls keines existiert.
Jeder Download hat einen automatischen Fallback. Sandboxen (claude.ai Code Execution, kostenlos oder kostenpflichtig) blockieren normalerweise HuggingFace, Mixkit und die Google Fonts API, erlauben aber GitHub:
- Transkriptionsmodell: HuggingFace → GitHub-Mirror (whisper-base, dann whisper-tiny)
- Musik/SFX: Mixkit → GitHub-Mirror CC0-Paket (IDs sehen aus wie
pack:lofi_chill) - Schriftarten: Google Fonts Repo → jsDelivr → GitHub-Mirror OFL-Paket (32 Familien) → Systemschriftart
- B-Roll: Mixkit → keins (Karten verwenden oder den Benutzer bitten, Clips hochzuladen)
Wenn das Setup „no network“ ausgibt / pip fehlschlägt: Die Sandbox hat den Netzwerkausgang AUS. Sage dem Benutzer genau (eine Nachricht):
„claude.ai → Einstellungen → Funktionen → Codeausführung → Netzwerkzugriff: Alle Domains (oder hinzufügen: pypi.org, files.pythonhosted.org, github.com, objects.githubusercontent.com, release-assets.githubusercontent.com, api.github.com, raw.githubusercontent.com, cdn.jsdelivr.net, huggingface.co, mixkit.co, assets.mixkit.co), dann starte einen neuen Chat und führe /talking-head-short erneut aus.“ Versuche die Bearbeitung nicht ohne numpy/ffmpeg.
Nur wenn alle Quellen fehlschlagen: Bitte um ein eingefügtes Transkript →
$PY $S/align_text.py $WD transcript.txt. Assets werden in~/.ths_assetszwischengespeichert.
1. Analysieren
$PY $S/analyze.py RAW $WD
Es gibt die Auflösung, den Augenpunkt, die saubere Länge, automatisch entfernte Füllwörter/Stotterer/Neustarts, CHECK (weiche Füllwörter, Wörter mit geringer Konfidenz, lange Pausen) und TEXT mit Zeitstempeln alle 8 Wörter aus.
- Bewerte schlechte Takes selbst. Entferne Fehlstarts, unvollendete Sätze, „weißt du, so ja“, „irgendwie“. Behalte rhetorische Wiederholungen. Führe erneut aus mit
--remove '[[s,e],...]'(Quellsekunden). Das Transkript wird zwischengespeichert. - Sieh dir
$WD/frames.jpgnur an, wenn der Augenpunkt oder die Bildeinstellung zweifelhaft ist.
2. Briefing (im Kopf, dann 4 Zeilen an den Benutzer)
Schreibe: Thema · Kernbotschaft · Emotionsbogen (Hook → … → Payoff) · Nischenzeile (aus NICHES) · Ton (ruhig/ausgeglichen/energetisch) · Rohformat (Weit oder Nah).
Führe dann $PY $S/style.py RAW "<Nische>" --out $WD/style.json aus. Es gibt die angepasste Palette mit Begründung, Schriftarten, MG/B-Roll/Musik/SFX-Richtung und wichtige Hinweise aus.
Lies references/craft.md einmal (die Regeln) und references/spec.md (das Spezifikationsformat).
3. Vor dem Bauen fragen (niemals zuerst rendern)
Verwende AskUserQuestion falls verfügbar; andernfalls eine kompakte nummerierte Nachricht. Empfehle jedes Mal Option 1.
- Stil: Erkannte Nische + Ton (z. B. „Selbsthilfe · ruhig-reflektierend“) vs. 1–2 Alternativen.
- Schriftarten: Das Paar der Zeile vs. 2 Alternativen mit klarem Stilkontrast (serifenlose Führung + serifenbetonte/kursive Haupt- oder fette serifenlose Haupt- + kursive serifenbetonte Akzente).
- Palette: An das Filmmaterial angepasste Zeilen-Palette vs. vom Filmmaterial abgeleitete vs. eine Markenfarbe, die der Benutzer angibt.
- Visuelle Dichte: Minimal (Untertitel + 2–3 Karten) · Ausgewogen (Untertitel + 4–6 Karten / B-Roll) · Reichhaltig (mehr MG + B-Roll).
- Musik: 3 lizenzierte Kandidaten von
$PY $S/assets.py music "<Stimmung>"(ID · Titel · Tags), oder keine. - B-Roll: Ja (lizenziertes Stockmaterial, das wörtliche Zeilen abbildet) / Nein. Überspringe jede Frage, die der Benutzer bereits beantwortet hat. Warte auf die Antworten.
4. Assets sammeln
- Schriftarten:
$PY $S/assets.py font "Familienname" ... - Musik, SFX, Video: Führe
assets.py music|sfx|video "<Suchbegriff>"aus, um eine Liste zu erhalten, dannassets.py get <Art> <ID> $WD.- SFX nach Ton: ruhig → „air woosh“, „chime“; ausgeglichen → „whoosh“, „pop“; energetisch → „swoosh“, „impact“ (einmal verwendet).
- Blockierte Quellen fallen automatisch zurück (Paket-IDs).
assets.py packlistet das gesamte Offline-CC0-Paket auf.
5. spec.json schreiben, planen, Styleframes
- Schreibe
$WD/spec.json(siehe references/spec.md): Untertitel in gesprochener Reihenfolge, Karten zu den richtigen Abschnitten, Audio. $PY $S/engine.py $WD --plan→ behebe jedes ISSUE durch Bearbeiten der Spezifikation (Beats kürzen oder zusammenführen, Untertitel unter Karten verschieben oder entfernen), dann erneut planen, bis keine oder nur akzeptable ISSUEs gemeldet werden.$PY $S/engine.py $WD --frames t1,...mit 10–15 Zeitpunkten: jede Kartenmitte und Ende−0,3 s, und jeder Untertitel bei seinem Ende−0,1 s. Sieh dir$WD/styleframes.jpgan und korrigiere alles Abgeschnittene, Überfüllte, Fehlausgerichtete oder Nicht-Palettenkonforme.- Zeige dem Benutzer die Styleframes mit einer Zeile („ok zu rendern?“). Wiederhole nur das, was er beanstandet.
6. Rendern, Mischen, QA
bash $S/render.sh $PY $WDrendert Teile parallel und verkettet sie (≈5 min pro Minute Video auf einem Laptop). In einer Sandbox mit Zeitbegrenzung pro Befehl führe$PY $S/engine.py $WD --render --part i/Neinmal pro Teil aus, dann--concat N.$PY $S/mix.py $WD→final.mp4(Sprachbereinigung, geduckte Musik mit Payoff-Ausrichtung, SFX, -14 LUFS).$PY $S/qa.py $WD→ sieh dirqa_endframes.jpgan. Jedes Beat- und Kartenende muss fertigen Text und Animation zeigen. Blitzframes müssen keine sein.- Gib den Dateipfad sowie 3 Zeilen darüber aus, was du gewählt hast und warum. Erwähne Assets, die du nicht herunterladen konntest.
Nicht verhandelbar (warum: jedes wurde als amateurhaft kritisiert)
- Untertitel werden nie abgeschnitten. Die Führung ist ≤ Hauptbreite und liegt nah dran. Zwei kontrastierende Schriftstile im Goldenen Schnitt. Niemals einzelne Füllwörter untertiteln.
- Bewegungsgrafiken zeigen die Bedeutung, enden vor dem Szenenwechsel und bleiben in einem visuellen System. Keine Strichmännchen oder Cliparts.
- Glatt: ein erleichterter, augengebundener Zoom über Schnitte hinweg; keine Blitzframes; abwechslungsreiche Übergänge.
- Nur Farbkorrektur. Nur lizenzierte Assets (Mixkit / Google Fonts OFL), mit LICENSES.txt im Ordner $WD.