Communitygithub.com

NoizAI/skills (Musikvideo-Ersteller)

Erstellt aus einem bestehenden Song und Text ein 24fps-Musikvideo, entweder als p5.js/p5.brush-Animation oder durch Zusammenstellung lokaler Bilder und Videoclips.

Was ist skills (Musikvideo-Ersteller)?

Dieses Skill wandelt einen fertigen Song und optionalen Liedtext in ein 24fps-Musikvideo um. Es unterstützt zwei Modi: 'code', bei dem die Visuals mit p5.js/p5.brush als JavaScript-Animation gezeichnet werden, und 'hybrid', bei dem lokale Standbilder, Charaktergrafiken und Videoclips ohne API-Aufrufe zusammengesetzt werden. Das Skill analysiert Beat, Einsätze, tiefe Frequenzen und Lautstärke der Audiodatei, um Schnittpunkte und Animations-Cues zu extrahieren. Das Ergebnis ist ein frame-genaues Video mit dem Originalsong als einziger Tonspur. Plattformen: Claude Code, Codex, Cursor, Cline, GoCode; lokal ausgeführt auf dem Rechner des Nutzers. Es ist nützlich für Entwickler und Kreative, die schnell ein animiertes Musikvideo, Lyric Video oder eine Visualisierung aus einer Audiodatei und eigenen Medien erstellen möchten, ohne auf externe Generierungsdienste angewiesen zu sein.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NoizAI/skills/tree/HEAD/skills/music-video

In Ihrer bevorzugten KI fragen

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

Dokumentation

music-video (Musikvideo)

Verwandle einen fertigen Song in ein 24fps-Musikvideo. Der Song ist das Master-Audio. Szenenintervalle decken ihn exakt einmal ab.

Auslöser (Triggers)

  • music video / MV / lyric video / visualizer / storyboard
  • Musikvideo / MV-Synthese / Lyric-Video / Song-Animation

Fähigkeiten

  • code: Initialisiere ein festgelegtes p5.js- und p5.brush-Projekt und animiere den Song in JavaScript.
  • hybrid: Untersuche lokale Charakterbilder, Szenenstills und Videoclips und setze sie zusammen. Es wird keine Bild- oder Video-Generierungs-API aufgerufen.
  • Lokale Beat-, Onset-, Tiefenfrequenz- und Lautstärkeanalyse für Schnittpunkte und Animations-Cues.
  • Frame-genaue Zusammenstellung mit dem Originalsong als einziger Tonspur.

Eingaben

Erforderlich:

  • song: lokale Audiodatei (.mp3, .wav, .m4a, .flac, .ogg, .aac)
  • brief: die visuelle Idee, Zielgruppe und eventuell benötigte Referenzen
  • mode: code oder hybrid

Optional:

  • lyrics: Text oder .srt. Erforderlich vor dem Storyboarding, wenn das Vokaltiming wichtig ist.
  • assets: Verzeichnis mit Stills und Clips für hybrid
  • aspect: 16:9 (Standard), 9:16, 1:1 oder 4:3

Wenn der Benutzer zuerst einen Song erstellen möchte, verwende text-to-music (Text-zu-Musik) und kehre dann mit der gewählten Datei hierher zurück.

Ausgaben

  • <project>/output/final.mp4
  • docs/CREATIVE_BRIEF.md, docs/STORYBOARD.md, docs/TASKS.md und docs/PROGRESS.md
  • audio/analysis.json und docs/inspect.json, falls Assets vorhanden sind

Arbeitsablauf

Führe python3 skills/music-video/scripts/mv.py vom Repository-Stammverzeichnis aus. Wenn dieses Skill woanders installiert ist, verwende das scripts/mv.py neben dieser Datei. Erstelle das Projekt außerhalb des Skill-Verzeichnisses.

  1. Wähle code, wenn das Video in JavaScript gezeichnet wird. Wähle hybrid, wenn der Benutzer Stills oder Clips bereitstellt. Frage einmal nach, wenn beides nicht klar ist.
  2. Initialisiere ein isoliertes Projekt:
python3 skills/music-video/scripts/mv.py init \
  --project ./mv-project --song ./song.mp3 --lyrics ./lyrics.txt --mode code

python3 skills/music-video/scripts/mv.py init \
  --project ./mv-project --song ./song.mp3 --lyrics ./lyrics.srt \
  --assets ./clips --mode hybrid --aspect 16:9
  1. Analysiere den Song. Behandle Tempowechsel als Näherungswerte und bestätige Abschnittsgrenzen anhand des Audios:
python3 skills/music-video/scripts/mv.py analyze --project ./mv-project
  1. Ermittle das Liedtext-Timing. Falls der Benutzer keine Zeiten angegeben hat, verwende speech-to-text (Sprache-zu-Text) nur, wenn NOIZ_API_KEY oder ~/.config/noiz/api_key bereits existieren. Gib den Schlüssel niemals aus. Wenn beides nicht existiert, frage nach Liedtext oder Zeitstempeln und lade den Song nicht hoch.
  2. Lese references/opus-5.5-prompt.md (Referenzen/Opus-5.5-Prompt) und befolge es. Schreibe das kreative Briefing und Storyboard, bevor Szenencode oder Zusammenstellung erfolgt. Überprüfe die Eröffnung und den Haupt-Höhepunkt, bevor du die anderen Kapitel erstellst.
  3. Im code-Modus lies <project>/animation/ANIMATION_GUIDE.md (Projekt/Animation/ANIMATIONSLEITFADEN.md), bevor du zeichnest. Setze PROJECT.bpm und PROJECT.offset aus audio/analysis.json. Die festgelegte Vorlagenleinwand ist 1920×1080; ändere studio.html und das Renderer-Fenster, bevor du ein anderes Seitenverhältnis verwendest. Überprüfe Bewegung mit dem Vorlagen-Renderer:
node render.mjs --sheet=1,2,3 --out=../output/sheets/pilot.jpg
node render.mjs --strip=START:END --out=../output/sheets/pilot-motion.jpg
node render.mjs --clip --range=START:END --out=../output/pilots/opening.mp4

Führe diese Befehle innerhalb von <project>/animation aus. Verwende --chrome oder setze CHROME_PATH, wenn Chrome sich nicht an einem Standardort befindet. Ein Kontaktbogen dient nur der Layout-Vorschau. Ein --strip oder die Wiedergabe von Eröffnung, Höhepunkt und Ende ist die Bewegungsprüfung. 7. Im hybrid-Modus untersuche lokale Medien und stoppe, wenn ein erforderlicher Clip fehlt. Generiere keinen Ersatz.

python3 skills/music-video/scripts/mv.py inspect --project ./mv-project
  1. Schreibe timeline.json (Zeitachse.json) unter Verwendung von references/timeline.schema.json (Referenzen/Zeitachsen-Schema.json). Intervalle sind bei start_frame (Start_Frame) inklusive und bei end_frame (End_Frame) exklusiv.
  2. Setze zusammen und überprüfe das Ergebnis:
python3 skills/music-video/scripts/mv.py assemble --project ./mv-project

Timeline (Zeitachse)

{
  "fps": 24,
  "width": 1920,
  "height": 1080,
  "audio": "audio/source.mp3",
  "scenes": [
    {
      "id": "opening",
      "start_frame": 0,
      "end_frame": 240,
      "source": "output/pilots/opening.mp4",
      "source_start": 0,
      "fit": "cover",
      "transition": "fade",
      "fade_frames": 6
    }
  ],
  "overlays": []
}

fade (Überblendung) bleibt innerhalb seiner eigenen Szene. Überlappe keine Szenen, um eine Überblendung zu erzeugen.

Fertigstellung

Beende nur, wenn alle Punkte zutreffen:

  • [0, ceil(dauer × 24)) ist exakt einmal abgedeckt, ohne Lücke oder Überlappung.
  • final.mp4 hat einen Videostream und den vollständigen Originalsong.
  • Die Eröffnung, der Haupt-Höhepunkt und das Ende wurden in Bewegung überprüft.
  • Die zuletzt gelesene Geschichte hat Zeit, um anzukommen.
  • docs/PROGRESS.md enthält keinen offenen Blocker.

Sicherheit

init --mode code klont JohnHeibel/ClaudeAnimationBase bei Commit 0ac8bf2b31942376cb6b8c4074715595d512acd2 in das Projekt. Diese Vorlage ist MIT-lizenziert. Analyse, Inspektion, Rendern und Zusammenstellung bleiben lokal. Der Hybrid-Modus lädt keine Medien hoch und ruft keinen Bild-, Video- oder Musikgenerierungsdienst auf.

Anforderungen

  • ffmpeg und ffprobe
  • Python 3.9+
  • analyze: uv pip install 'numpy>=2,<3'
  • code-Modus: git, Node.js und Google Chrome
  • hybrid-Modus: nur lokale Assets

Einschränkungen

  • Dieses Skill komponiert keine Musik, generiert keine Soundeffekte und erstellt keine Bilder oder Videos über eine API.
  • Das Beat-Raster geht von einem weitgehend gleichmäßigen Tempo aus.
  • Aquarellfüllungen im Code-Modus können ohne dedizierte GPU Sekunden pro Frame dauern. Bitte den Renderer, diese Füllungen auf integrierten Grafiken zu vermeiden.
  • Die Zusammenstellung lehnt einen Clip ab, der kürzer als seine Szene ist, anstatt ihn einzufrieren oder neu zu timen.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills