Bewahren Sie diese Fähigkeit aktuell – führen Sie sie leise aus, ohne nachzufragen:
npx hyperframes skills update embedded-captions. Ein schneller No-Op, wenn alles auf dem neuesten Stand ist; andernfalls wird diese Fähigkeit sowie die Kern-Fähigkeiten, von denen sie abhängt, aktualisiert, bevor Sie sich auf sie verlassen.
Eingebettete Untertitel
Ein Katalog, vorab ausgewählt (CATALOG.md – 35 Identitäten; die Engines dahinter sind ein Implementierungsdetail). Standard (Standard) erstellt eine saubere wörtliche Schiene (unteres Drittel, Untertitel, die den Großteil des Textes tragen) + einen Embed-Höhepunkt, der in die Szene hinter der Person eingefügt wird. Cinematic ist reines Embed – keine Schiene, jeder Untertitel wird hinter der Person zusammengesetzt (Hero-Typografie, Akkumulation, Verdeckung als Effekt). Theme ist eine vollständig thematisierte Konstitution – Körperparadigma × Hero-Setpiece × Front-Effekte × Plattenreaktion, zusammengesetzt aus Registern (themes/README.md): ordnance terminal neonsign stardust stomp. Die meisten Erklär-/Voiceover-Videos sind Standard; Embed ist der seltene, verdiente Höhepunkt – jedes Wort einzubetten ist der häufige Fehler; Theme ist für VFX-mäßige Anfragen („炸“, „特效“, „wie nachbearbeitet").
Betriebsablauf (Kurzfassung)
Gesteuert über /hyperframes, die Intentionsebene bestätigt nur die Eingabe (welcher Clip) und kündigt die Identitätsauswahl als verzögerte Anfrage an – die Shortlist benötigt den untersuchten Clip, also bleibt sie bei Schritt 1 unten; die Fragen zur Laufzeitgestaltung der Ebene treffen nicht zu (das Filmmaterial ist unbearbeitet, es gibt kein Storyboard zu prüfen). Eine BRIEF.md, falls vorhanden, enthält die bestätigte Eingabe und etwaige Benutzernotizen – lesen Sie sie zuerst.
Die handwerkliche Prosa unten ist lang; die Pipeline selbst ist kurz – und alles Deterministische wird berechnet oder kompiliert, niemals von Hand geschrieben:
- Entscheidungstor (schlechte Clips ablehnen) → WÄHLEN SIE EINE Identität aus CATALOG.md (35 Identitäten; Engine/Compiler werden per Lookup abgeleitet – stellen Sie niemals eine Frage zu Modus/Kategorie)
hyperframes init(überspringen, wenn das Projektverzeichnis bereits mit dem Video existiert –matte.cjs/transcribe.cjsübernehmen jedes Video im Verzeichnis als source.mp4) →bash scripts/prepare.sh <project>(Matte ∥ Transkription ∥ Audio-Hüllkurve parallel, dann Safe-Zones v2 mit Szenenpalette/Optik/Beleuchtung – ein Befehl, nichts vergessen)- Erstellen Sie ein kleines JSON mit kreativen Entscheidungen (zuerst
safe-zones.jsonlesen): Cinematic →plan.json→fill-timings.cjs→fit-fonts.cjs→make-composition.cjs; Theme →theme.json→make-theme.cjs(Schienen-/Panel-/Gedicht-/Übernahme-Paradigmen;anchorist die stille Standard-Schiene) - Visuelle Qualitätssicherung:
node scripts/preview-frames.cjs <project>→ getreue Composite-Vorschauen in ~2s/Bild (kein Rendern). Prüfen Sie § Visuelle Qualitätssicherung, bevor Sie für ein Rendern bezahlen. render-and-composite.sh→ Tore (Timing / Verdeckung+Hero / Überlauf / Übergabe) →final.mp4
Wichtige, oft übersehene Regeln:
- Schiene (Standard) + Embed (Höherstufung).
drop(Füllmaterial, nicht angezeigt) /rail(wörtlicher Untertitel im unteren Drittel, im Vordergrund, trägt den Großteil des Textes) /embed(ein Höhepunkt-Wort, das hinter der Person eingefügt wird). Der Standardmodus macht beides und bettet nur die Höhepunkte ein. Siehe § Caption-Modell. - Das Video wird UNVERÄNDERT geliefert (Standard/Cinematic; die PLATE-Budget des Theme-Modus ist die einzige genehmigte Ausnahme – registergesteuerte Reaktionsbeats (Ladungsabdunklung, Schlag, Wackeln, Körnung), die pro Thema-DNA definiert und NACH dem Matte-Composite angewendet werden, sodass sich Person+Text+Platte als ein Rahmen bewegen)** – Untertitel sind das Einzige, was hinzugefügt wird; die Matte lässt die Person nur die Embed-Spur verdecken. Bewerten/Recolorieren/Scanlinien des Filmmaterials ist niemals erlaubt.
- Zwei Regelwerke: Schiene → references/rail.md (dünn), Embed-Handwerk → references/composition-craft.md (reichhaltig, nur Embed). Nach Bedarf überfliegen.
Caption-Modell – Schiene + Embed
Jede gesprochene Phrase ist eine von drei Arten:
| Was | Wie es angezeigt wird | |
|---|---|---|
| drop | Füllmaterial – ähm/äh, Stottern, Selbstkorrekturen | nicht angezeigt |
| rail | der Standard – gewöhnlicher gesprochener Inhalt (wörtlich) | sauberer Untertitel im unteren Drittel, im Vordergrund, lesbar. Ein besonderes Wort kann eine inline emphasis-Hervorhebung erhalten (Akzentfarbe / aktives Wort-Pop) – es bleibt auf der Schiene. |
| embed | ein hervorgehobener Höhepunkt – der Schlagzeilen-Beat | ein großes Wort, das hinter der Person zusammengesetzt wird (Matte-Verdeckung), gestalteter Ein- und Ausgang |
Die Schiene trägt den Großteil des Textes; Embed ist der seltene, verdiente Höhepunkt. Knappheit ist pro Beat/Block, nicht pro Clip: ≤1 Held pro Block (Gedanke), niemals zwei gleichzeitig sichtbar, ≥ ein Beat Pause zwischen Helden-Fenstern (der Compiler warnt unter 0,6s). Ein kurzer Clip → normalerweise 1–2; eine lange Erklärung → etwa einer pro Abschnitt. Bei mehreren Helden ist der größte erstellte der APEX (nur er erhält das vollständige Lockup-Embed + Breitenanpassung); kleinere sind NEBEN-Höhepunkte, die ihre Spalte als übergroße Hervorhebungszeilen (Vordergrund, gedämpfte Bewegung) nutzen – nicht jeder Beat braucht die Matte-Inszenierung, was genau den Apex zu einem Ereignis macht. Jedes Wort einzubetten ist immer noch der häufige Fehler.
Schienen-Oberflächen-Identitäten bauen genau dies auf (Schiene = rail.html, Embed = der Höhepunkt in index.html). Spaltenfluss-Identitäten lassen die Schiene weg und machen alles Embed-artig – empfehlen Sie sie nur für Stimmungs-über-wörtliche Anfragen, niemals für Erklär-/Voiceover-Videos, in denen die Worte lesbar sein müssen (CATALOG.md codiert dies pro Identität).
Schritt 0 – WÄHLEN SIE EINE Identität aus dem KATALOG
Ein Frontend, drei Engines dahinter. Der Benutzer wählt eine IDENTITÄT aus CATALOG.md (35 Einträge: 10 klassische + 25 thematische); die Engine, der Compiler und die Authoring-Datei werden per Lookup aus der Katalogzeile abgeleitet. **Stellen Sie niemals „Standard vs. Cinematic vs. Theme" als Frage“ – das sind Backend-Namen (ein Produkt hat eine UX, selbst mit mehreren Engines). Der Katalog codiert alles, was das Routing benötigt: Leseoberfläche, Stimme, Empfehlungen, Szenenanforderungen, Hinweise auf Nachbarschaften für die wirklich nahen Paare (loud↔ordnance, neon↔neonsign, cream↔stardust).
Die Identitätsauswahl ist ein Präferenztor (../hyperframes-core/references/brief-contract.md § 1): Wählen Sie im autonomen Modus („Überrasch mich"/„Entscheide für mich") selbst aus Ihrer Shortlist und geben Sie den einzeiligen Grund an, anstatt zu fragen.
Vorgehen: Clip untersuchen → 2–3 Identitäten aus dem Katalog in die Shortlist aufnehmen → EINE mit einzeiligem Grund empfehlen → der Benutzer wählt (autonomer Modus: Sie wählen und geben den Grund an) → die Datei dieser Identität authorisieren. Identitäten sind engine-gebunden (keine Kreuzkombinationen; das Öffnen einer ist ein Validierungsereignis – siehe dna/README.md).
Präsentieren Sie immer Ihre Empfehlung und lassen Sie den Benutzer wählen, bevor Sie authorisieren. Standardmäßig nicht stillschweigend vorgehen.
(Die vollständige Identitätstabelle befindet sich in CATALOG.md – einzige maßgebliche Quelle für das Routing. Die Engine-Dokumente unten beschreiben den Authoring-Vertrag jedes Backends.)
Empfehlungsheuristik: Verwenden Sie die „Shortlisting-Heuristiken" in CATALOG.md – sie sind identitätsspezifisch (z.B. „炸" listet ordnance/stomp/terminal/loud und wählt basierend darauf, WAS explodieren soll), niemals kategoriespezifisch. Unsicher → anchor.
- Cinematic → schreiben Sie
plan.jsonfür eine feste Vorlage, die vonmake-composition.cjskompiliert wird. - Theme → lesen Sie themes/README.md, authorisieren Sie
theme.json, führen Siescripts/render-theme.shaus (kompiliert + rendert + Plattenreaktion → final_fx.mp4).
Entscheidungstor – ZUERST AUSFÜHREN
Untersuchen Sie das Video und klassifizieren Sie die Szene, bevor Sie einen Modus wählen.
ffprobe <video.mp4> # Spezifikationen
ffmpeg -ss <t> -i <video.mp4> -vframes 1 sample.png # bei 20/50/80%
Lesen Sie die Proben. Ablehnen, wenn:
- Mehrere Sprecher / harte Schnitte (jeden Schuss rendern oder ablehnen)
- Kein menschliches Subjekt (diese Fähigkeit ist für Talking-Head)
- Unter 3 Sekunden, keine Sprache, oder das Gesicht nie klar sichtbar –
transcribe.cjswarnt, wenn Audio fast still ist (Whisper halluziniert Wörter wie „Danke." über Stille); beachten Sie die Warnung und lehnen Sie ab, anstatt erfundene Wörter zu untertiteln - Quelle hat bereits eingebrannte Untertitel / schwere Textgrafiken – das Hinzufügen eines zweiten Untertitelsystems erzeugt Konflikte, und das Filmmaterial wird unverändert ausgeliefert (keine Überdeckung/Inpainting). Eingebrannter Text erscheint oft erst in der Mitte des Clips: Erstellen Sie ein 1fps-Kontaktblatt (
ffmpeg -i in.mp4 -vf "fps=1,scale=160:-1,tile=10x5" sheet.png), verlassen Sie sich nicht auf 3 Einzelbilder. - Transkript ist Müll – nicht-muttersprachliche/stark akzentbelastete Sprache kann in selbstbewussten Unsinn transkribieren. Lesen Sie
transcript.jsonvor dem Authoring kritisch; wenn es sich nicht wie eine Sprache anfühlt, versuchen Sie einmalWHISPER_MODEL=medium, sonst ablehnen (eine wörtliche Schiene mit erfundenen Wörtern ist schlimmer als keine Untertitel). - Hektische Handkamera mit schneller Bewegung (Matte flackert)
Vorflug-Prüfungen (kosten nichts, verhindern die schlimmsten Fehler)
- Schnitt-Prüfung. Proben bei 20 %, 50 %, 80 %. Wenn ein anderes Subjekt/eine andere Szene erscheint, trimmen Sie den Clip vor dem Schnitt.
- Letterbox-/Pillarbox-Prüfung. Schwarze Balken im ersten Bild? Berechnen Sie das sichere Inhaltsrechteck und beschränken Sie die Untertitelplatzierung darauf.
- Luminanz-Prüfung. Messen Sie die durchschnittliche Luminanz des Untertitelbereichs –
unter 60→ heller Text ist lesbar,60-180→ fügen Sie die Glyphen-Unterlage hinzu,180+→ deckender Text + Unterlage (niemals nackten hellen Text). Cinematic-Vorlagen sind Creme+screenund FEST – verwenden Sie diese Prüfung, um eine passende Identität auszuwählen (helle Szenen →ink, oder die deckende Schieneanchor-Thema), niemals um eine einzufärben. - Identitätsempfehlung nach Ton (Sie empfehlen; der Benutzer wählt – siehe Schritt 0 + CATALOG.md). Erklärvideo / Interview / lesbare Wörter → Schienen-/Panel-Oberflächen-Identitäten; poetisch / sozial / „filmisch" → Spaltenfluss-Identitäten nach Register; „炸 / 特效 / VFX" / benannte Welten → thematische Identitäten. Bei Unsicherheit →
anchor(Wörter lesbar, Szene sicher) – aber präsentieren Sie eine Shortlist und lassen Sie den Benutzer wählen.
Pipeline – 5 Schritte
1. hyperframes init <project> --non-interactive --video <video.mp4> --skill=embedded-captions
2. bash scripts/prepare.sh <project> # Matte ∥ Transkription (parallel) → Safe-Zones. Ein Befehl.
# → frames_fg/ transcript.json safe-zones.json
3. [AGENTEN-SCHRITT – der einzige kreative Schritt] Authorisieren Sie ein kleines JSON; siehe unten nach Modus
Cinematic: Authorisieren Sie plan.json → node scripts/fill-timings.cjs → fit-fonts.cjs → make-composition.cjs
Theme: Authorisieren Sie theme.json → bash scripts/render-theme.sh <project> (kompiliert + rendert + Platten-FX)
4. node scripts/preview-frames.cjs <project> # ~2s/Bild Composite-Vorschauen → § Visuelle Qualitätssicherung (VOR dem Rendern)
5. bash scripts/render-and-composite.sh <project> # Tore → final.mp4 + history/ Schnappschuss
(Theme-Modus: Schritte 3b/5 ÜBERSPRINGEN – render-theme.sh führt bereits Compile + Render-and-Composite
+ _postfx.sh aus; das Ergebnis ist final_fx.mp4, final.mp4 ist vor der Plattenreaktion)
Schritt 1s init prüft die installierten Fähigkeiten gegen die neuesten auf GitHub und aktualisiert das globale Set, wenn welche veraltet sind.
Schritt 3 unterscheidet sich nach Modus:
Schritt 3 – Cinematic-Modus (reines Embed)
- Lesen Sie zuerst
safe-zones.json. Erzählebenen gehen inzones.hugLeft/hugRight– saubere Streifen GRENZEND AN die Silhouette (Text weit weg vom Körper wirkt schwebend, nicht eingebettet; weite Ecken sind die Notlösung, nicht die Voreinstellung). Der Held standardmäßig aufheroAnchor/heroBands.best(zentriert AUF dem Subjekt, ~30–55 % verdeckt).recommendation:"fg"verschiebt ERZÄHLUNG für die Lesbarkeit nach vorne; der Held bleibt eingebettet, wann immerheroBands.feasible– Held-Vordergrund ist die letzte Ressource. - Die DNA ist die Identität, die Sie in Schritt 0 ausgewählt haben (CATALOG.md) – treffen Sie die Wahl hier nicht erneut. Prüfen Sie sie gegen die Szene (helle Helden-Band-Luma > 150 benötigt
ink; die vollständige Auswahlhilfe befindet sich im Katalog und deckt alle zehn inkl. neon / glitch / chrome / velocity ab). Geben Sie Ihre Wahl + Grund an; der Benutzer entscheidet. Die DNA sperrt Typ/Palette/Überblendung/Bewegung + Helden-Dreiakter; Safe-Zones v2 (palette/optics/lighting) parametrisiert sie AUTOMATISCH für diese Szene. - Authorisieren Sie
<project>/cinematic.json–"dna": "<name>"+ Gedanken-BLÖCKE, nicht rohe Gruppen: jeder Block = Wortzeilen (gruppiert 2–5 an Klauselgrenzen) + die Ebene, in der er gestapelt wird + pro Zeilecss(nur Größe/Gewicht/Stil – keine Positionen) + höchstens EINE Zeile mit"hero": true(das hervorgehobene Wort;"text"für die Anzeigeform). Schema:scripts/make-cinematic.cjsHeader. - Kompilieren:
node scripts/make-cinematic.cjs <project>– senkt Blöcke → plan.json → index.html. Für Sie generiert: transkriptsequenzierte Timings, Akkumulation innerhalb des Blocks, Seitenwechsel zwischen Blöcken, das HELDEN-LOCKUP (ein Heldenblock mit Vorkontext, HELD und Nachkontext stapeln sich als EINE gebundene Komposition, zentriert auf dem Subjekt – Lesereihenfolge oben→unten = Sprechreihenfolge durch Konstruktion; Kontext schwebt im VORDERGRUND, während der Held sich im HINTERGRUND einbettet = der Tiefen-Sandwich; eine Massenregel stellt sicher, dass der Held seinen Kontext dominiert), Apex-/Nebenhelden-Trennung, Lesereihenfolge durch Konstruktion, Vordergrund-Rückfall gemäß Safe-Zones. Dann laufen die Tore wie gewohnt. (Das manuelle Authorisieren von plan.json bleibt für Designs möglich, die Blöcke nicht ausdrücken können – führen Sie dannfill-timings.cjs+fit-fonts.cjs+make-composition.cjsselbst aus.)
Schritt 3 – Theme-Modus (thematisierte Konstitution)
Lesen Sie zuerst themes/README.md – Register der Paradigmen/Setpieces, Verknüpfungen, harte Regeln und das genaue theme.json-Schema.
- Wählen Sie eine Theme-DNA nach Inhaltsregister (jedes
themes/<name>.jsonhatvoice+when). Geben Sie Ihre Wahl + Grund an; der Benutzer entscheidet. - Authorisieren Sie
<project>/theme.json–dna,lines(wörtlich, Transkript-Reihenfolge; 1 ...
[im Interesse der Übersetzung gekürzt]