music-video
Unterbefehle (zuerst prüfen)
| Aufruf | Aktion |
|---|---|
/music-video help, /music-video ohne Song oder „Wie verwende ich das?“ | Drucken Sie den Hilfe-Block unten wörtlich, prüfen Sie dann die Voraussetzungen (node -v, ffmpeg -version, uv --version, Chrome vorhanden) und melden Sie jede als ✅/❌ mit dem Installationsbefehl. Stopp; starten Sie kein Video. |
/music-video lessons | Drucken Sie LESSONS.md (den neuesten Eintrag vollständig, ältere Einträge nur als Überschriften). |
/music-video <song-Datei> [lyrics.srt] [flags] [notizen] | Analysieren Sie die Flags unten, sagen Sie in einer Zeile, welche Gates aktiv sind und welche Wahlmöglichkeiten bereits festgelegt sind, und führen Sie dann die Pipeline aus. |
Hilfe
/music-video: Verwandle einen Song in ein beat-synchronisiertes Musikvideo, das vollständig in Code gezeichnet wird,
vom handgemalten Cartoon bis zum klaren Marketing-Stil-Bewegungsdesign.
VERWENDUNG
/music-video ~/Downloads/song.mp3 Suno-Dateien mit eingebetteten Texten benötigen nichts weiter
/music-video ~/Downloads/song.mp3 lyrics.srt andere Songs: geben Sie zeitgesteuerte Texte (.srt)
/music-video song.mp3 "noir stil, katzen detektiv" optionale kreative Richtung
/music-video song.mp3 --auto --style=editorial --human=~/me.jpg --dir=~/musicVideos
vollautomatisch: jede Wahl durch Flags gesetzt
/music-video help | lessons
FLAGS (Standard: Stopp am Storyboard UND am Pilot für Ihre Zustimmung)
--skip=storyboard Warte nicht auf das Storyboard; warte trotzdem auf den Pilot
--skip=pilot Warte auf das Storyboard; warte nicht auf den Pilot
--skip=all (oder --auto) keine Stopps: Song rein, fertiges MP4 raus, vollständig agentisch
--design MEHR Planung: fügt eine Design-Phase hinzu (Charakter-Modellbögen,
Palette-Swatches, ein Stil-Frame pro Kapitel)
und stoppt, damit Sie das Aussehen vor jeder Animation iterieren können.
Kombinieren: --design --skip=pilot
WAHLMÖGLICHKEITEN (nicht gesetzte werden in einem kurzen Interview gefragt; unter --auto nehmen sie den Standard)
--style=painted|editorial|keynote|geometric|hybrid
painted = handgemalter Aquarell-Cartoon (der ursprüngliche Look)
editorial = warmes Papier, präzise dünne Linien, Serifenschrift, ruhig
keynote = fast schwarz, leuchtende Verläufe, Lichtstrahlen, Partikel
geometric = Schweizer Raster, Farbblöcke, parametrische Kurven, fette serifenlose Schrift
hybrid = editorial-Strophen, keynote-Refrains
ask (Standard) = rendere einen Stand pro Stil und lass dich wählen
auto Standard: editorial
--lyrics=kinetic|bar|hooks|off kinetischer Typ / Untertitelbalken / nur Hook-Zeilen / aus
(Standard: kinetic für Vektor-Stile, bar für painted)
--density=bold|every-line|abstract
bold (Standard) = ein starkes Bild pro 2–4 Zeilen, zusätzliche Gags als
Hintergrund-Ostereier; every-line = ein Gag pro Textzeile
--human=FOTO|pip wer spielt „dich“: Karikatur aus einem Foto, oder der Standard-Pip
--dir=ÜBERGEORDNET wo Song-Ordner hingehen (Standard ~/PROJECTS); ÜBERGEORDNET/_shared/
behält wiederverwendbare Dinge (Ihr Foto, Ihren Charakter) über Videos hinweg
--interview / --no-interview erzwinge oder überspringe das Einführungsinterview (G0)
Übersprungene Gates sind keine übersprungene Arbeit: das Artefakt wird trotzdem erstellt und selbst überprüft,
und die getroffenen Entscheidungen werden in DECISIONS.md aufgelistet, damit Sie sie später lesen können.
WAS PASSIERT (ca. 1,5–2 h mit Stopps; ca. 45–60 min mit --auto)
1. Analysiert den Song: Tempo, Drops, Abschnitte, Text-Timing
1b. Interview: Stil-Stände + alle nicht gesetzten Wahlmöglichkeiten, STOPPT (außer bei --auto / alle gesetzt)
2. Schreibt STORYBOARD.md und STOPPT für Ihre Zustimmung (außer bei --skip)
2b. Mit --design: Modellbögen + Stil-Frames, STOPPT zum Iterieren
3. Erstellt einen 30 s Pilotclip und STOPPT, damit Sie ihn sehen können (außer bei --skip)
4. Erstellt den Rest parallel (Unteragenten), prüft jede Szenenänderung
5. Rendert out/<song>_full.mp4 (1080p, H.264 + AAC), bereit für YouTube
BENÖTIGT Node 20+, Google Chrome, ffmpeg, uv (Mac: brew install node ffmpeg uv)
KOSTEN keine API-Ausgaben; verwendet Ihren Claude-Plan (ein voller Song ist ein beträchtlicher Teil der Nutzung)
AUSGABE ein Projektordner (Standard ~/PROJECTS/<song>-video/ oder --dir), außerhalb jedes Repos
NACH "add today's lessons to the music-video skill" macht das nächste Video besser
Das fertige Beispiel ist das zoo2-Video („Please Select Your Ending", 4:30): etwa 100 Einstellungen, erstellt in etwa 1 h 40 min Wandzeit.
examples/zoo2/ enthält sein Storyboard, jede Kapiteldatei und die Entstehungsgeschichte mit Zeitstrahl, Tokens und Kosten. Lesen
Sie LESSONS.md vor dem Start: es ist das Verbesserungsprotokoll und überschreibt alles hier, was ihm widerspricht.
Warum Code, nicht Generierung
Bildmodelle (Deforum, SDXL-Turbo img2img usw.) raten jedes Bild neu, was zu Flimmern, schmelzenden Gesichtern und schlechten Händen führt. Versuch 1 von zoo2 machte das über Nacht und wurde abgelehnt. Code-gezeichnete Frames sind reine Funktionen der Songzeit: glatt, modellkonstant und genau auf dem Beat. Cloud-Videomodelle (Kling, Seedance, Veo) sind die andere Route, mit etwa 70–300 $ pro Song.
Flags und Gates
Analysieren Sie Flags aus den Argumenten und aus einfachen Worten: „keine Stopps", „vollständig autonom", „mach es einfach" bedeuten
--skip=all; „überspringe die Storyboard-Zustimmung" bedeutet --skip=storyboard; „lass mich zuerst die Charaktere sehen", „plane
mehr aus" bedeuten --design. Werte kombinieren mit Kommas (--skip=storyboard,design). Unbekanntes Flag: sagen Sie es und stoppen.
| Gate | Standard | Wenn übersprungen |
|---|---|---|
| G0 Interview | STOPP, wenn eine der folgenden Wahlmöglichkeiten nicht gesetzt ist | Unter --auto/--no-interview nehmen nicht gesetzte Wahlmöglichkeiten ihre Standardeinstellungen und werden in DECISIONS.md protokolliert. |
| G1 Storyboard | STOPP | Schreiben Sie es, führen Sie einen Selbstkritik-Durchlauf gegen das Textblatt durch (eine Idee pro Zeile? Jeder Refrain ein Höhepunkt? Motiv kehrt am Ende zurück?), dann fortfahren. |
G2 Design (nur mit --design) | STOPP, iterieren bis genehmigt | --skip=design behält die Phase bei, führt aber Selbstkritik an den Bögen durch, anstatt zu warten. |
| G3 Pilot | STOPP | Bauen Sie den Pilot trotzdem (er erstellt die gemeinsamen SETS, die die Kapitel benötigen). Führen Sie zwei Kontaktbogen-Review-Durchläufe durch und beheben Sie die üblichen Erstlauf-Fehler, bevor Sie fortfahren. |
Wahlmöglichkeiten (--style, --lyrics, --density, --human, --dir; Tabelle in Hilfe). Einfache Worte zählen auch: „sauber",
„geschäftlich", „Marketing", „nicht kindisch", „knackig" bedeuten einen Vektor-Stil (fragen welchen, oder editorial unter --auto);
„wie das Zoo-Video", „handgemalt" bedeuten painted. Notieren Sie die endgültigen Entscheidungen oben in STORYBOARD.md und in
src/config.js als PROJECT.style, PROJECT.lyrics, damit Unteragenten sie erben.
Ein Gate wird nur übersprungen, wenn der Benutzer es gesagt hat; im Zweifel anhalten. Ein STOPP ist echt: beenden Sie den Zug und warten Sie.
Hängen Sie für jedes übersprungene Gate an DIR/DECISIONS.md an: das Gate, was entschieden wurde, die Alternativen, die Sie abgewogen haben,
und die Pfade der Bilder, die Sie geprüft haben. Verlinken Sie DECISIONS.md im Abschlussbericht, damit der Benutzer es prüfen kann.
Überspringen Sie niemals die abschließende ffprobe-Prüfung und die Text/Bild-Stichprobenprüfung in Schritt 8: diese sind Verifizierung, nicht Genehmigung.
Pipeline (in dieser Reihenfolge ausführen; die STOPPs sind echt, es sei denn, ein Flag hat sie übersprungen)
- Projekt. Erstellen Sie den Projektordner außerhalb jedes Repos:
ÜBERGEORDNET/<song-slug>/wobei ÜBERGEORDNET--dirist (Standard~/PROJECTS), und verschieben Sie den Song in seinassets/. Legen Sie ein Referenzfoto (--human) inÜBERGEORDNET/_shared/ab.bash ~/.claude/skills/music-video/scripts/setup_project.sh ÜBERGEORDNET/<song-slug>Dies klont ClaudeAnimationBase aufUPSTREAM_PIN, fügtsrc/cast.js(Pip, Requisiten, Karaoke) hinzu und verdrahtet das Karaoke. Es benötigt Node 20+, Chrome, ffmpeg, uv und git. - Analysieren.
uv run ~/.claude/skills/music-video/scripts/analyze_song.py SONG --project DIR [--srt LYRICS.srt]Dies schreibtsrc/config.js(phasen-angepasstes BPM und Offset),src/lyrics.jsundanalysis.json. Vertrauen Sie niemals librosas BPM. Verwenden Sie den angepassten Wert. Prüfen Sieenergy_dropsgegen die[Chorus]-Abschnittsanfänge. Suno-Exporte betten eine SRT-Spur mit[Section]-Tags ein; für andere Songs holen Sie zuerst das Timing (fragen Sie den Benutzer oder richten Sie mit Whisper aus). Das angepasste BPM kann beim doppelten gefühlten Tempo herauskommen (niedrige Kohärenz, eine Textzeile = zwei „Takten"): notieren Sie das gefühlte Tempo im Storyboard und verwenden Siebt(2k)für gefühlte Beats. 2b. Interview (G0). Überspringen Sie es nur, wenn jede Wahlmöglichkeit gesetzt ist oder--auto/--no-interviewgegeben wurde. Sonst:- Stil zuerst, als Bilder. Wenn
--stylenicht gesetzt ist, rendern Sie die Vergleichsstills:node design/style_tests.mjs(vom Setup kopiert) zeichnet den GLEICHEN Textmoment in editorial, keynote, geometric und hybrid (--line1/--line2/--stampsetzen die Wörter), inout/design/style_test_*.jpgundstyle_tests_all.jpg. Senden Sie sie, plus einen gemalten Frame aus dem zoo2-Beispiel, wenn der Benutzer es noch nicht gesehen hat. Leute können keinen Stil aus Worten auswählen. - Fragen Sie dann die restlichen nicht gesetzten Wahlmöglichkeiten in einer
AskUserQuestion-Runde (lyrics, density, human), plus die songspezifischen Aufrufe, die ein Storyboard nicht allein treffen kann: wie wörtlich reale Marken oder Produkte gezeigt werden sollen, und wie sensible Textzeilen (Gewalt, Skandal, reale Ereignisse) gezeigt werden sollen. - Wiederverwenden vor Neuzeichnen: wenn
ÜBERGEORDNET/_shared/cast/bereits einen Charakter für diese Person hat (z.B.<name>.js+<name>_body.js, in einem früheren Video genehmigt), kopieren Sie diese Dateien insrc/vec/, fügen Sie ihre<script>-Tags nachvec.jshinzu und verwenden Sie sie wie sie sind (Ausdrucks- und Posensteuerung enthalten). Nur neu zeichnen, wenn der Benutzer Änderungen wünscht. Nachdem eine neue Person genehmigt wurde, kopieren Sie ihre Dateien inÜBERGEORDNET/_shared/cast/(mit einer Zeile in_shared/README.md), damit das nächste Video sie wiederverwendet. - Bei einem neuen
--human-Foto schauen Sie es sich an und schreiben Sie die Karikaturmerkmale inSTORYBOARD.md(Kopfform, Haare oder keine, Gesichtsbehaarung, Brauen, Augen, übliche Kleidung). Zeichnen Sie nach den Merkmalen; niemals das Foto in das Video einzeichnen oder einfügen. G0 — STOPP nach dem Senden der Stills und Fragen. Kombinieren Sie die Antworten in die Wahlmöglichkeiten, dann fortfahren.
- Stil zuerst, als Bilder. Wenn
- Lesen Sie
DIR/ANIMATION_GUIDE.md(die Regeln des Kits),LESSONS.mdund ein Beispielkapitel (examples/zoo2/scenes/c01_pilot.js), bevor Sie etwas schreiben. Für einen Vektor-Stil (alles außerpainted) gelten die Engine-Abschnitte des Leitfadens weiterhin (Zeitstrahl,shots(), Kamera, Easing, Beat, Review-Schleife), aber seine Look-Regeln sind umgekehrt: siehe Vektor-Stile unten. - Storyboard. Schreiben Sie
DIR/STORYBOARD.md(Format:examples/zoo2/STORYBOARD.md) mit der Logline, Besetzung, Palettenbogen, Motiv, einer Kapiteltabelle für den gesamten Song und dem Pilot Einstellung für Einstellung mit getimten „Lesungen". Die Bilddichte folgt--density(bold: ein starkes Bild pro 2–4 Zeilen, der Rest als Hintergrund-Ostereier;every-line: eines pro Zeile, von Charakteren gespielt). G1 — STOPP: Zeigen Sie es dem Benutzer und warten Sie auf Genehmigung (mit--skip=storyboard/all: Selbstkritik, inDECISIONS.mdprotokollieren, fortfahren). 4b. Design (nur mit--design). Vor jeder Animation die Optik als Standbilder inout/design/festlegen:cast_<name>.jpgModellbogen pro Charakter: Vorder-, Dreiviertel- und Seitenansicht, 4 Ausdrücke (neutral, Freude, Angst, Entschlossenheit), 3 Aktionsposen aus dem Storyboard und eine Höhenaufstellung der gesamten Besetzung;palette.jpg: Swatch-Streifen pro Kapitel, die den Palettenbogen über den Song zeigen;style_<kapitel>.jpg: ein fertiger Keyframe pro Kapitel zum Heldenmoment des Storyboards, Texte an. Zeichnen Sie sie mit einem Wegwerf-scenes/design.js(ein nur-Blatt-Kapitel außerhalb des Songzeitbereichs) undnode render.mjs --sheet=...; der Charaktercode geht insrc/cast.js-Ergänzungen, die die Kapitel wiederverwenden werden, also genehmigte Designs direkt ins Video übernommen werden. G2 — STOPP: Zeigen Sie die Bögen; notieren Sie sich Änderungen („größere Augen", „wärmere Refrain-Palette"), rendern Sie erneut, wiederholen Sie, bis der Benutzer genehmigt. Aktualisieren Sie dannSTORYBOARD.mdentsprechend.
- Pilot. Wählen Sie etwa 30 s, die eine Abschnittsgrenze in einen Refrain überqueren. Bauen Sie es als eine Kapiteldatei mit gemeinsamen Sets,
die auf
window.SETSexportiert werden (siehe Ende vonc01_pilot.js). Prüfen Sie es mitnode render.mjs --sheet=... --out=out/check/x.jpgund--strip=a:b, und schauen Sie sich die Bilder an. Die üblichen Erstlauf-Fehler: Charaktere zu klein (Kamera auf 1,3–1,5× hereinzoomen), Hintergrundformen nicht breit genug für Schwünge, Requisiten unter der Karaoke-Leiste versteckt. Für einen Vektor-Stil bauen Sie aufsrc/scenes/sets.jsauf (das Setup kopiert ein funktionierendes: Raum, Fenster, Flur, Scrollen, Emotionsblending; passen Sie es an). Rendern Sienode render.mjs --clip --range=a:b --out=out/pilot.mp4. G3 — STOPP: Der Benutzer schaut es an und genehmigt oder gibt Änderungen (mit--skip=pilot/all: zwei Review-Durchläufe, inDECISIONS.mdprotokollieren, fortfahren). - Kapitel parallel. Fügen Sie zuerst Stub-Dateien und ihre
<script>-Tags instudio.htmlfür jedes Kapitel hinzu (ein Agent darf niemals eine gemeinsame Datei bearbeiten). Starten Sie dann einen Unteragenten pro Kapitel (Fork-Typ, damit er diesen Kontext erbt). Geben Sie jedem seinen Zeitbereich, seine Textzeilen, seine Kapitelzusammenfassung aus dem Storyboard, „NUR IHRE DATEI", die gemeinsamenSETSund Globals sowie den Naht-Vertrag:- zwischen den Kapiteln ein Übergang mit den GLEICHEN Farben auf beiden Seiten (painted:
brushWipe, outp<.5in den letzten 0,3 s, in.5+lt/.6; vector:V.wipe, siehe CHAPTER_BRIEF.md
- zwischen den Kapiteln ein Übergang mit den GLEICHEN Farben auf beiden Seiten (painted: