Communitygithub.com

音楽ビデオ生成

既存の楽曲と歌詞から、p5.js/p5.brushアニメーションまたはローカルの画像・動画クリップを組み合わせて24fpsのミュージックビデオを生成します。

音楽ビデオ生成 とは?

このスキルは、完成した楽曲を元に24fpsのミュージックビデオを生成します。2つのモードをサポートしています:`code`モードではp5.jsとp5.brushを使用してJavaScriptでアニメーションを描画し、`hybrid`モードではユーザーが提供するローカルの画像や動画クリップを組み立てます。画像生成や動画生成のAPIは呼び出さず、すべての処理はローカルで実行されます。特徴として、ビート、オンセット、低周波数、ラウドネスの分析によるカットポイントとアニメーションのキュー生成、フレーム正確なアセンブリを提供します。出力は`<project>/output/final.mp4`として保存され、付随してクリエイティブブリーフ、ストーリーボード、タスク管理、進捗管理の各ドキュメントが生成されます。テキストから楽曲を作成したい場合は、まずtext-to-musicスキルを使用してから本スキルに移行します。

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

music-video

完成した1曲の楽曲を24fpsのミュージックビデオに変換します。楽曲はマスターオーディオとして扱われ、シーン間隔はそれを正確に1回カバーします。

トリガー

  • music video / MV / lyric video / visualizer / storyboard
  • 音乐视频 / MV合成 / 歌词动画 / 歌曲动画
  • ミュージックビデオ / MV / リリックビデオ / ビジュアライザー / ストーリーボード

機能

  • code: 固定されたp5.jsおよびp5.brushプロジェクトを初期化し、JavaScriptで楽曲をアニメーション化します。
  • hybrid: ローカルのキャラクター画像、シーンスチル、ビデオクリップを検査し、それらを組み立てます。画像生成や動画生成APIは呼び出しません。
  • カットポイントおよびアニメーションキュー用のローカルビート、オンセット、低周波数、ラウドネス分析。
  • 元の楽曲のみをサウンドトラックとするフレーム正確なアセンブリ。

入力

必須:

  • song: ローカルオーディオ (.mp3, .wav, .m4a, .flac, .ogg, .aac)
  • brief: ビジュアルのアイデア、対象視聴者、必要な参考資料
  • mode: code または hybrid

オプション:

  • lyrics: テキストまたは .srt。ボーカルのタイミングが重要な場合、ストーリーボーディングの前に必要です。
  • assets: hybridモード用のスチルとクリップのディレクトリ
  • aspect: 16:9 (デフォルト), 9:16, 1:1, または 4:3

ユーザーが先に楽曲を作成したい場合は、text-to-musicを使用し、その後選択したファイルをこのスキルに戻してください。

出力

  • <project>/output/final.mp4
  • docs/CREATIVE_BRIEF.md, docs/STORYBOARD.md, docs/TASKS.md, docs/PROGRESS.md
  • audio/analysis.json, およびアセットが存在する場合は docs/inspect.json

ワークフロー

リポジトリルートから python3 skills/music-video/scripts/mv.py を実行します。このスキルが別の場所にインストールされている場合は、このファイルの隣にある scripts/mv.py を使用します。プロジェクトはスキルディレクトリの外に作成します。

  1. ビデオがJavaScriptで描画される場合は code を選択します。ユーザーがスチルやクリップを提供する場合は hybrid を選択します。どちらか明確でない場合は一度だけ質問します。
  2. 隔離されたプロジェクトを初期化します:
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. 楽曲を分析します。テンポ変化は近似値として扱い、セクション境界はオーディオから確認します:
python3 skills/music-video/scripts/mv.py analyze --project ./mv-project
  1. 歌詞のタイミングを取得します。ユーザーが提供しなかった場合、NOIZ_API_KEY または ~/.config/noiz/api_key が既に存在する場合にのみ speech-to-text を使用します。キーを決して印刷しないでください。どちらも存在しない場合は、歌詞またはタイムスタンプを要求し、楽曲をアップロードしないでください。
  2. references/opus-5.5-prompt.md を読み、それに従います。シーンコードまたはアセンブリの前に、クリエイティブブリーフとストーリーボードを作成します。他の章を構築する前に、冒頭とメインピークをレビューします。
  3. code モードでは、描画前に <project>/animation/ANIMATION_GUIDE.md を読みます。audio/analysis.json から PROJECT.bpm と PROJECT.offset を設定します。固定されたテンプレートキャンバスは1920×1080です。別のアスペクトを使用する前に、studio.html とレンダラーウィンドウを変更します。テンプレートレンダラーでモーションを確認します:
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

これらを <project>/animation 内で実行します。Chromeが標準の場所にない場合は --chrome を渡すか CHROME_PATH を設定します。コンタクトシートはレイアウトのみをスクリーニングします。--strip、または冒頭、ピーク、エンディングの再生がモーションレビューです。 7. hybrid モードでは、ローカルメディアを検査し、必要なクリップがない場合は停止します。代替は生成しません。

python3 skills/music-video/scripts/mv.py inspect --project ./mv-project
  1. timeline.json を references/timeline.schema.json を使用して作成します。間隔は start_frame で包括的、end_frame で排他的です。
  2. アセンブルし、結果をプローブします:
python3 skills/music-video/scripts/mv.py assemble --project ./mv-project

タイムライン

{
  "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 は自身のシーン内に留まります。クロスフェードを作成するためにシーンを重ねないでください。

完了

以下のすべての項目が真になった場合のみ完了します:

  • [0, ceil(duration × 24)) がちょうど1回カバーされ、ギャップや重複がない。
  • final.mp4 にビデオストリームと完全な元の楽曲が含まれている。
  • 冒頭、メインピーク、エンディングがモーションでレビューされた。
  • 最後に読まれたストーリーが着地する時間がある。
  • docs/PROGRESS.md に未解決のブロッカーがない。

セキュリティ

init --mode code は JohnHeibel/ClaudeAnimationBase をコミット 0ac8bf2b31942376cb6b8c4074715595d512acd2 でプロジェクトにクローンします。このテンプレートはMITライセンスです。分析、検査、レンダリング、アセンブリはすべてローカルで行われます。ハイブリッドモードはメディアをアップロードせず、画像、動画、音楽生成サービスを呼び出しません。

要件

  • ffmpeg と ffprobe
  • Python 3.9+
  • analyze: uv pip install 'numpy>=2,<3'
  • code モード: git, Node.js, Google Chrome
  • hybrid モード: ローカルアセットのみ

制限事項

  • このスキルは楽曲を作曲したり、効果音を生成したり、APIを通じて画像や動画を作成したりしません。
  • ビートグリッドはほぼ一定のテンポを前提としています。
  • codeモードの水彩塗りつぶしは、ディスクリートGPUがない場合、フレームごとに数秒かかることがあります。統合グラフィックスではこれらの塗りつぶしを避けるようにレンダラーに指示してください。
  • アセンブリは、シーンよりも短いクリップをフリーズや再タイミングする代わりに拒否します。

Individual skills in this repo

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

関連スキル