Voiceover → Glas-Reel
Eine Anfrage, ein fertiges MP4. Der Benutzer gibt eine Sprachdatei (jedes Audio- oder Videoformat, beliebige Länge bis ca. 3 Minuten) und optional den Skripttext, eine Themennotiz oder Referenzlinks. Du erledigst alles andere und stoppst nur:
- einmal für Downloads wie Logos. Es gibt kein Guthaben: Alles wird kostenlos beschafft (siehe
references/higgsfield.md– getestete Pixabay / Wikimedia / thesvg-Rezepte). Berichte, was woher beschafft wurde, aber Geld kommt nie ins Gespräch, es sei denn, der Benutzer fragt ausdrücklich nach dem kostenpflichtigen Anhang.
Arbeite im Chat in der Sprache des Benutzers. Alles auf dem Bildschirm ist in der Sprache der Sprachaufnahme.
Was es macht
Verwandelt JEDE Sprachaufnahme (und optional ein Skript) in einer einzigen Anfrage in einen fertigen 16:9-Dokumentations-Reel in After Effects. Es schneidet Pausen und Atemgeräusche, schreibt die visuelle Geschichte, beschafft jedes Bild kostenlos (Wikimedia Commons-Archivfotos, Pixabay MCP-Clips und Porträts, Logo-SVGs über das thesvg MCP, ffmpeg-Ken-Burns-Bewegungen aus Standbildern) und baut den Schnitt nativ in After Effects. Der Look: düsterer Archiv-Dokumentarfilm, jeder Clip in einem schwebenden abgerundeten Glasrahmen mit einem dünnen leuchtenden Rand und einem sanften Einzoom, ein bewegliches Perspektivraster mit Keywords, die die Farbe beim Wort wechseln, große gesprochene Bildunterschriften, Schreibmaschinen-/Riesenwort-/Fotokartenseiten, Blitze und Negativ-Effekte an den Schnitten, synthetisierte Soundeffekte. Es rendert ein 1080p H.264 MP4. Verwende es immer dann, wenn jemand eine Sprachaufnahme, Sprachnotiz, Erzählung oder einen Podcast-Clip gibt und einen Reel, ein Video, einen Kurzfilm, einen Erklärfilm oder einen Schnitt daraus haben möchte: „Mach ein Video aus meiner Sprachaufnahme“, „Verwandle diese Erzählung in einen Reel“, „Glasrahmen-Schnitt“, „Einen Clip aus einer Sprachaufnahme“, „Mach einen Reel aus meiner Sprachaufnahme“, „Schneide ein Video zu meiner Stimme“, „Glasrahmen und ein Raster“. Dies gilt auch, wenn sie überhaupt kein Filmmaterial haben.
Bevor du beginnst (einmal pro Mac prüfen; sag dem Benutzer genau, was zu tun ist, falls etwas fehlschlägt)
- macOS 26 oder neuer (On-Device-Transkription) mit After Effects 2024 oder neuer, geöffnet. In AE aktiviere Einstellungen → Scripting & Ausdrücke → Skripten erlauben, Dateien zu schreiben und auf Netzwerk zuzugreifen.
- Xcode-Befehlszeilentools (
swiftc). Führescripts/build_tools.shaus. Es kompiliertscripts/bin/{to_wav,transcribe,facebox,frames}. Wenn ein Skript mit „Permission denied“ fehlschlägt (ein hochgeladener Skill kann das Ausführungsbit verlieren), führe einmalchmod +x scripts/*.shim Ordner dieses Skills aus. - Kostenlose Beschaffung bereit: die
pixabay- undthesvg-MCP-Tools (search_pixabay_images,search_pixabay_videos,search_icons,list_variants,get_icon_url,get_icon) pluscurlundffmpeg(beide bereits von der Engine verwendet). Wikimedia Commons benötigt nur Internet + einen korrekten User-Agent. Keine Credits, keine Konten, keine Salden zum Überprüfen. - Der erste
transcribe-Lauf fragt möglicherweise nach der Sprachberechtigung. Er kann auch einmal das On-Device-Modell herunterladen. - Wenn ein anderes AE-Projekt mit ungespeicherten Änderungen geöffnet ist, verweigert
build.sh. Bitte den Benutzer, es zu speichern. Verwerfe niemals seine Arbeit. Das Build-Log gibtPREVIOUS_PROJECT <Pfad>aus, wenn es ein gespeichertes Projekt geschlossen hat. Öffne es nach dem endgültigen Rendern erneut: Schreibe ein einzeiliges jsxapp.open(new File("<Pfad>"));und führe es mitscripts/ae_run.shaus.
S = der Ordner dieses Skills. PY = /usr/bin/python3 (oder jedes Python 3.9+, nur Standardbibliothek).
Pipeline
1. Projektordner und Sprachaufnahme
- Erstelle
<proj>= einen neuen Ordner neben der Sprachdatei namens<Name_der_Sprachdatei>_reel. - Führe
PY S/scripts/reel.py prep <voiceover> <proj>aus. Es konvertiert das Audio, transkribiert es auf dem Mac und entfernt alle Pausen und Atemgeräusche. Die Ergebnisse sindwork/voice_cut.wavundwork/words.json(Wortindex → Programmzeit). - Führe dann
PY S/scripts/reel.py words <proj>aus und lies das gesamte indizierte Transkript. - Wenn der Benutzer ein Skript gegeben hat, vergleiche es mit dem Transkript. Notiere falsch gehörte Namen für
spell(z. B."28": "Grok").
2. Geschichte (lies references/story.md, schreibe dann <proj>/story.json)
- Entscheide die Welt, die zum Skript passt: Epoche, Ort, ein wiederkehrender Cast von 2–5 Charakteren, 3–6 Orte, Schwarz-Weiß oder Farbe.
- Standard: ein Schwarz-Weiß-Archiv-Dokumentarfilm der 1950er–60er Jahre, in dem abstrakte Themen zu Personen und Orten werden.
- Wähle einen Host-Look. Wenn der Benutzer selbst erscheinen möchte, verwende sein Foto als Host-Referenz.
- Teile das Transkript in Shots. Jeder Shot beginnt mit einem Wortindex.
- host (spricht zur Kamera im Fernseher): 3–6 Shots, je 2–6 s. Verwende sie beim Einstieg, den Wendepunkten und dem Call-to-Action. Zusammen machen sie etwa 15–20 % der Laufzeit aus.
- clip (generiertes Filmmaterial im Glasrahmen): die meisten Shots, je 1,5–3 s.
- type (Schreibmaschinenseite): die einleitende Frage oder Abschnittstitel, maximal 6 Wörter.
- giant (ein riesiges Wort mit einem roten Etikett und einer Serifen-Unterzeile): ein benanntes Konzept.
- cards (2–4 Fotokarten mit Logo-Abzeichen, ein Name pro Wort): wenn die Stimme Personen, Produkte oder Marken aufzählt. Logos erscheinen nur, wenn sie gesprochen werden.
- list: wenn die Stimme 2–4 Punkte aufzählt, markiere diesen Wortbereich. Seine Keywords wechseln in die Akzentfarbe des Wortes.
- keys: maximal eines pro Satz.
- hits:
invertbei 3–6 dramatischen Schnitten,strobebei maximal 2 „es wurde noch verrückter“-Momenten,burnbei maximal 2 Höhepunkten. - Zeige niemals denselben Clip-Moment zweimal.
- Schreibe die Beschaffungsliste aus den Shots:
- Jeder Story-Clip besteht aus 8–12 s Stock-Filmmaterial (oder einem Ken-Burns-Schwenk über ein beschafftes Standbild), der aufeinanderfolgende Shots abdeckt, sodass ein Clip mehrere Shots durch verschiedene
in-Zeiten speist; - Kartenporträts, Orte und jegliches Host-Material – alles kostenlos beschafft;
- ein optionaler Musikteppich (oder keiner: der Build überspringt ihn, wenn
musicfehlt).
- Jeder Story-Clip besteht aus 8–12 s Stock-Filmmaterial (oder einem Ken-Burns-Schwenk über ein beschafftes Standbild), der aufeinanderfolgende Shots abdeckt, sodass ein Clip mehrere Shots durch verschiedene
3. Beschaffe die Assets (lies references/higgsfield.md)
- Beschaffe in dieser Reihenfolge: Story-Clips → Kartenporträts → Orte → (falls beibehalten) TV-Platte → (falls beibehalten) Host-Clips. Überprüfe jeden Download gemäß den getesteten Rezepten (HEAD
content-type+content-length, curl-AUA + Wiederholungen, SHA-1, wenn Commons einen angibt). Zeichne Datei → Quell-URL → Lizenz → Autor inwork/SOURCES.mdauf. - Story-Clips: Pixabay
search_pixabay_videos(video_type: "film", passende Ausrichtung, Dauer 8–15 s) oder Commonsfiletype:video(imageinfo→ Download mit dem curl-Rezept → Konvertierung von Talks.ogv/.webmzu MP4). Standbilder werden mit dem ffmpeg-Rezept zu Ken-Burns.mp4. - Host-Clips (nur wenn der Benutzer selbst vor der Kamera erscheint):
PY S/scripts/reel.py chunks <proj>schreibt einen Audio-Chunk pro Host-Shot nachwork/host/host_NN.wav;- setze das Chunk-Audio auf ihren Webcam-Clip und speichere es als
assets/host/host_NN.mp4(ffmpeg -map 0:v:0 -map 1:a:0 -shortest) –reel.py aligngleicht dann die Wörter exakt ab; PY S/scripts/reel.py align <proj>misst den Offset jedes Clips von den Wörtern. Kein eigenes Filmmaterial → strukturiere diese Host-Beats stattdessen alstype/giant/cards-Seiten um.
- Wenn eine TV-Platte verwendet wird, führe
PY S/scripts/reel.py screen <proj>/assets/tv_plate.png <proj>aus. Es findet den Greenscreen. Wenn keiner gefunden wird, übermale ihn neu (ffmpeg drawbox, §2 der Referenz) oder wechsle die Host-Shots in denfull-Modus – keine Platte nötig. - Führe
PY S/scripts/reel.py sfx <proj>aus, um die Soundeffekte zu synthetisieren (keine Lizenzen erforderlich). - Musik: lasse
musicweg (Standard), verwende den Track des Benutzers oder konvertiere eine Commons-Audiodatei in MP3.
4. Bauen und prüfen
- Führe
PY S/scripts/reel.py plan <proj>aus. Es schreibtwork/plan.jsonund gibt Prüfungen aus. Behebe jeden ERROR instory.json. Nimm WARNS ernst: wiederholte Clips, Host-Lippensynchronität. - Führe
S/scripts/build.sh <proj>aus. Es baut<proj>/reel.aep(Komp REEL) in etwa 1 Minute für einen 70 s Reel. Lies das Log: verwendete Schriften, Warnungen. - Führe
S/scripts/render.sh <proj> --halffür eine schnelle Prüfung aus (~2 min). Überprüfe dann die Frames:S/scripts/bin/frames <proj>/out/reel_half.mp4 <proj>/work/check.jpg 4 <die mittlere Sekunde von ~16 Shots>;- schau dir
check.jpgan: Bildunterschriften lesbar und nicht über Gesichtern, Host-Lippenbewegung im Fernseher, Glasrahmen vorhanden, keine schwarzen Lücken, Seiten nicht leer. Korrigiere instory.json, führe dannplan,buildund die Prüfung erneut aus.
- Final: führe
S/scripts/render.sh <proj>aus. Es schreibt<proj>/out/reel_1080.mp4(1920×1080, 25 fps, etwa 40 Mbps, mit Ton). - Sende das MP4. Berichte:
- seine Länge;
- was du nicht überprüfen konntest;
- die Stelle für manuelle Anpassungen (
reel.aep: jeder Shot ist eine eigene Komp in02_SHOTS/03_PAGES, die Bildunterschriften sind inCAPTIONS).
Regeln
- Rechte:
- Beschaffe alles kostenlos: Pixabay MCP, Wikimedia Commons (prüfe die Lizenz jeder Datei), thesvg MCP für Logos, plus lokale Synthese (ffmpeg Ken-Burns,
reel.py sfx). Kein kostenpflichtiger Dienst standardmäßig; der Higgsfield-Anhang ist nur, wenn der Benutzer ausdrücklich danach fragt. - Scrap niemals Filme, Serien, Anzeigen oder die Social-Media-Beiträge anderer Personen.
- Logos nur über das thesvg MCP oder Wikimedia Commons und nur nach Zustimmung des Benutzers.
- Die Musik ist optional (weggelassen, eigener Track des Benutzers oder eine Commons-Datei, die in MP3 konvertiert wurde).
- Die Soundeffekte werden von
reel.py sfxsynthetisiert.
- Beschaffe alles kostenlos: Pixabay MCP, Wikimedia Commons (prüfe die Lizenz jeder Datei), thesvg MCP für Logos, plus lokale Synthese (ffmpeg Ken-Burns,
- Die Stimme ist der Taktgeber.
- Jeder Schnitt landet auf einem Wort, einen Frame davor.
reel.pyerledigt dies. - Ändere niemals die Geschwindigkeit oder die Wörter.
- Bildunterschriften zeigen genau das, was gesprochen wird, abgesehen von
spell-Korrekturen falsch gehörter Namen.
- Jeder Schnitt landet auf einem Wort, einen Frame davor.
- Personen:
- bescheiden, epochengerechte Kleidung;
- realistische Erwachsene;
- keine echten Persönlichkeiten des öffentlichen Lebens als Charaktere;
- KI-Modelle und Unternehmen werden als erfundene Charaktere dargestellt und nur durch Bildunterschrift und Logo benannt.
- Wiederholungen sind billig.
planundbuildsind deterministisch und bauenreel.aepvon Grund auf neu. Änderestory.jsonanstattreel.aepvon Hand zu bearbeiten, es sei denn, der Benutzer bittet um manuelle Bearbeitungen. Sobald siereel.aepselbst bearbeitet haben, baue niemals ohne Nachfrage darüber hinweg. - AE führt ein Skript nach der Zeit aus.
- Verwende nur
scripts/ae_run.sh,build.shundrender.sh. - Exit 4 bedeutet, dass AE noch beschäftigt ist: warte, sende nie erneut.
- Exit 6 bedeutet, dass AE das Skript nicht gestartet hat: Ist ein Dialog geöffnet?
- Verwende nur
Dateien
| Pfad | Was |
|---|---|
scripts/reel.py | prep / words / chunks / align / screen / sfx / plan (nur Standardbibliothek) |
scripts/build.sh, scripts/ae/build_reel.jsx, scripts/ae/reel_lib.jsx | der After Effects-Build |
scripts/render.sh | aerender zu H.264 (--half für Prüfungen) |
scripts/ae_run.sh | sendet ein Skript an das laufende AE und wartet |
scripts/tools/*.swift → scripts/bin/ | Audiokonvertierung, On-Device-Transkription, Gesichtsboxen, Framebögen |
references/story.md | story.json-Format, Schussregeln, ein vollständiges Beispiel |
references/higgsfield.md | kostenloses Beschaffungshandbuch: getestete Pixabay / Wikimedia / thesvg-Abruf- und Verifizierungsrezepte, Pro-Asset-Zuordnung, Paid-Generation-Anhang |
references/look.md | was der Build zeichnet (Größen, Zeitsteuerungen, Farben) und wie man es anpasst |
references/troubleshooting.md | Fehler und Korrekturen |
references/example_story.json | das story.json eines fertigen 70 s Reels (der EXPERIMENT-Test) |
PROMPT.md | wie man den Skill installiert und die eine Eingabeaufforderung zum Senden |