Communitygithub.com

apoto/resonal-workflow

MV 工程。マスター音源・カバー画像・LYRICS.md(と任意の背景ループ動画)から、歌詞が出る MV(16:9 本編・9:16 ショート・サムネ)を tools/make_mv.sh で作り、利用者に見てもらって直したい点を直し、OK が出たら song.json の approved_at を入れる。「MV を作って」「動画にして」「歌詞のタイミングがずれている」「文字を大きく」「色を変えて」「背景を動かしたい」「ループ動画を作って」「MV の見せ方を選びたい」「もっと凝りたい」と言われたとき、または new-song の MV 工程で使う。

resonal-workflow 是什么?

resonal-workflow is a Claude Code agent skill that mV 工程。マスター音源・カバー画像・LYRICS.md(と任意の背景ループ動画)から、歌詞が出る MV(16:9 本編・9:16 ショート・サムネ)を tools/make_mv.sh で作り、利用者に見てもらって直したい点を直し、OK が出たら song.json の approved_at を入れる。「MV を作って」「動画にして」「歌詞のタイミングがずれている」「文字を大きく」「色を変えて」「背景を動かしたい」「ループ動画を作って」「MV の見せ方を選びたい」「もっと凝りたい」と言われたとき、または new-song の MV 工程で使う。.

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/apoto/resonal-workflow/tree/HEAD/.claude/skills/music-video

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

MV(作る → 見てもらう → 直す → OK)

前提

  • 音源はマスター済みの <Title>.wav(マスタリング工程が先)。audio.wav で作らない。
  • 最初に templates/mv/README.md を読む(プロジェクトの作り方・各スクリプトの役割・直し方)。
  • 同じことをする自前のコマンドを書かない。テンプレートのスクリプトを使う。
  • クレジットの文言は workflow.config.json の credits。動画側に書き写さない。

見せ方を選ぶ(任意)

  • 利用者が「MV の見せ方を選びたい」「もっと凝りたい」「別のスタイルにしたい」と言ったときだけ行う。何も言われなければ飛ばして手順 0・1(make_mv.sh=既定の型)へ進む。こちらから毎回勧めない。
  • skill mv-styles で選定表と18軸を songs/<曲フォルダ>/STYLE-SELECTION.md に書き、利用者に採用を選んでもらう。
  • 採用が既定の型(spectrum-still)なら手順 0・1 へ。それ以外は styles/<採用>/README.md の手順で作り、できたら手順 2 へ合流する。

0. 背景ループ動画(任意)

node engine/config.js providers.video の use で決める。曲フォルダに bg_loop.mp4 が既にあれば作らずに 1 へ。

  • none: 飛ばす(背景はカバーの静止画)。
  • kling-mcp: 次の手順で作る。
    1. 生成は課金の対象。作る前に「cover.png から約5秒のループ動画を1本作ってよいか」を利用者に聞き、OK をもらってから進める。
    2. Kling MCP の接続とアカウントを、その MCP の確認用ツールで確かめる。つながっていなければ止めて利用者に伝える。
    3. 画像→動画のツールで、始点の画像と終点の画像の両方に songs/<曲フォルダ>/cover.png を渡す(始点と終点を揃えると継ぎ目が見えない)。プロンプトは英語で、大きな動きをさせず、髪・光・粒子などの小さな動きだけを書く。音声はオフ。
    4. 1回に1本だけ投げる。失敗・時間切れでも自動で投げ直さない。結果を伝えて、投げ直すか・条件を変えるかを利用者に決めてもらう。
    5. できた動画を songs/<曲フォルダ>/bg_loop.mp4 に保存し、先頭と末尾のフレームを抜いて Read で観る:
      ffmpeg -y -i "songs/<曲フォルダ>/bg_loop.mp4" -frames:v 1 /tmp/loop_first.jpg
      ffmpeg -y -sseof -0.1 -i "songs/<曲フォルダ>/bg_loop.mp4" -frames:v 1 /tmp/loop_last.jpg
      
    6. ウォーターマークが入っている場合の扱い(そのまま使えるか・消してよいか)は Kling の利用規約で確かめるよう利用者に伝える。規約を確かめないまま加工しない。
  • other: note の手順で作り、songs/<曲フォルダ>/bg_loop.mp4 に置く。課金があるなら作る前に利用者に聞く。手順が分からなければ利用者に聞く。
  • 縦用を別に作るなら bg_loop_vertical.mp4(無ければ横の中央を切り出す)。置き方の詳細は templates/mv/README.md の「背景ループ動画」。

1. 作る(1回)

./tools/make_mv.sh "songs/<曲フォルダ>"
  • 歌詞の時刻取得 → テンポの実測 → 画像・ループ動画の準備 → 歌詞の同期 → レンダー → 検査 を1本で回す。曲用のプロジェクトは projects/<slug>/ に作られ、song.json の mv_project に記録される。
  • whisper が拾えない行(掛け声など)で止まったら、その行を利用者に伝え、了承を得て --allow-unaligned(前後の行から時刻を割り振る)を付けて回し直す。
  • テンポの推定が倍・半分にずれたら --bpm <下限> <上限> で範囲を絞る(実測した BPM は make_mv.sh が profile/ledger.md に書く)。
  • 歌詞の時刻取得(whisper)とレンダーで数十分かかることがある。長い処理はバックグラウンドで走らせ、終わるまで待つ。
  • 終了コードを信じず、成果物を確かめる:
    ls -la "songs/<曲フォルダ>/<Title>.mp4" "songs/<曲フォルダ>/<Title> (Short).mp4" "songs/<曲フォルダ>/thumbnail.jpg"
    ffprobe -v error -show_entries format=duration -of csv=p=0 "songs/<曲フォルダ>/<Title>.mp4"
    
  • 途中で止まったら、出力の最後のエラーを読み、どの段(歌詞の時刻・テンポ・画像・レンダー・検査)で止まったかを伝えてから直す。

2. 見てもらう(人の番)

  • providers.notify が slack なら make_mv.sh が Slack にも送っている。
  • 次の文面で頼んで止まる:
    MV ができました。
    - 本編: songs/<曲フォルダ>/<Title>.mp4
    - ショート: songs/<曲フォルダ>/<Title> (Short).mp4
    - サムネ: songs/<曲フォルダ>/thumbnail.jpg
    見て、OK か、直したい点を教えてください。例:
    - 歌詞の出るタイミングがずれている(何分何秒あたり)
    - 文字が大きい/小さい/読みにくい
    - 色・背景・キャラの見え方を変えたい
    
  • その曲で最初の MV を見てもらうときだけ、上の文面の末尾に次の1行を足す(2回目以降・別の曲では足さない): ここから自由に作り変えられます。18の軸(歌詞の出し方・キャラの動き・背景・カメラ・打点)と演出の辞書(direction-library/)から選んで伝えてもらえれば、テンプレートを書き換えて作り直します。今のままで良ければ OK だけで大丈夫です。
  • 何も言われなければ今までどおり手順 3・4 へ。勧め直さない。

3. 直す

直したい点を聞いたら、直し方を2〜3案示して選んでもらってから直す。 直す場所は「この曲だけか・次の曲からもか」で分ける。言われていなければ聞く:

範囲直す場所
この曲だけprojects/<slug>/(input/song.config.ts・src/)と曲フォルダ(LYRICS.md・scenes.json など)
次の曲からも(既定の型)templates/mv/ も同じように直す。作成済みの曲のプロジェクトには届かない=今の曲にも入れる
次の曲からも(スタイル)styles/<名前>/ を直す(skill mv-styles「スタイルを足す・改変する」)
新しい見せ方として残すskill mv-styles「スタイルを足す・改変する」で styles/ に足す
文言・名前・音量など設定の値workflow.config.json(skill setup の設定変更)

よくある直し方:

直したい点直し方
歌詞のタイミングがずれるLYRICS.md の「歌詞(表示用)」で行の切り方を変えて、make_mv.sh で取り直す(lyrics.json は作り直しのたびに上書きされる)
文字が大きい・小さい・はみ出す①「歌詞(表示用)」の長い行を2行に分ける(文字の大きさは行の長さから決まる)②projects/<slug>/input/song.config.ts の文字サイズの設定を変える
読みにくい①文字の縁取り・影を強める ②背景を暗くする(どちらも song.config.ts かスタイル)
色を変えたい①スタイルの配色を変える ②カバー画像に合わせた色を指定する
背景・キャラを変えたい①cover.png を差し替える ②キャラの切り抜きを作り直す ③背景を動かす/止める(手順 0。止めるなら bg_loop.mp4 を外す)
場面ごとに背景を変えたい・画像を何枚か作りたい下の「シーンの切り替え」
クレジットの文言workflow.config.json の credits を直す
  • どのファイルのどの設定かは projects/<slug>/README.md で確かめる。無い設定を推測で書かない。
  • 直したら make_mv.sh をもう一度回し、直した箇所のフレームを抜き出して Read で観てから見せる:
    ffmpeg -y -ss <秒> -i "songs/<曲フォルダ>/<Title>.mp4" -frames:v 1 /tmp/check.jpg
    
  • 何度でも往復してよい。直すたびに手順 2 の文面で見てもらう。

シーンの切り替え(画像を複数枚)

背景の画像をセクションごとに切り替える(書式は templates/mv/README.md「シーンの切り替え」)。

  1. 区間を決める。各セクションの歌い出しの秒(projects/<slug>/input/lyrics.json)を、それ以前で最も近い拍(input/beats.json)に合わせる。間奏は直前の行の終わりから。
  2. 区間ごとの背景の案を表で見せ、新しく作る枚数の了承を取る(生成は課金の対象): | 区間 | 秒(拍の頭) | 背景 | 画像(新規 / 既存・再利用) |
    • 1番と2番の同じセクションは同じ画像を再利用してよい。最初の区間はカバーを使う。
    • 画像は BRIEF.md と LYRICS.md の場面から取る(歌詞の物を寄りで映すより、その場面の状況を描く)。
  3. プロンプトを songs/<曲フォルダ>/scenes/<NN>_<名前>.txt に書く。末尾にどの画像にも同じ一文を付ける(カバーと同じ世界・画風・光・no people(キャラがいなければ)・no text, no letters, no typography・16:9 landscape)。
  4. 1枚ずつ作り、Read で観てから次へ進む。カバーを参照画像に渡して画風をそろえる:
    ./tools/gen_image.sh "$(cat "songs/<曲フォルダ>/scenes/<NN>_<名前>.txt")" "songs/<曲フォルダ>/scenes/<NN>_<名前>.png" "songs/<曲フォルダ>/cover.png"
    
    合わない絵が出たら止めて利用者に相談する(自動で作り直さない)。
  5. songs/<曲フォルダ>/scenes.json を書き、./tools/make_mv.sh を回す。
  6. 各区間の頭と途中のフレームを抜いて Read で観る(切り替わっているか・絵の主役が画面に入っているか)。

3b. 作り変える(利用者が望んだときだけ)

テンプレートは出発点。直す(手順 3)より大きく見せ方を変えたいと言われたら:

  1. 選び方を聞く: 「軸を1つずつ決める」か「演出の辞書から選ぶ」か。
    • 軸: skill mv-styles の references/axes.md の18軸を、変えたい軸から1つずつ聞く(全部聞かない。言われた軸だけ)。
    • 辞書: direction-library/INDEX.md を感情・タイミングで絞り、候補2〜3個を一行説明つきで見せて選んでもらう。
  2. 決めたものを songs/<曲フォルダ>/DIRECTION.md に区間ごとに書く(軸は 軸コード=値、演出は slug)。
  3. projects/<slug>/(templates/mv から作った曲のプロジェクト)の input/song.config.ts と src/ を書き換える。演出はレコードの「演出内容」の数値どおりに入れる。templates/mv は、利用者が「次の曲からも」と言ったときだけ書き換える(次の曲の出発点だから)。
  4. ./tools/make_mv.sh "songs/<曲フォルダ>" で作り直し、変えた区間のフレームを抜いて観てから、使ったレコードの「品質チェック」と一緒に手順 2 の文面で見てもらう。
  • 別のスタイルに丸ごと替えたいなら「見せ方を選ぶ(任意)」へ。

4. OK が出たら

node -e 'const f=process.argv[1],fs=require("fs"),j=JSON.parse(fs.readFileSync(f));j.approved_at=new Date().toLocaleDateString("sv-SE");fs.writeFileSync(f,JSON.stringify(j,null,2)+"\n")' "songs/<曲フォルダ>/song.json"
./next.sh "<曲フォルダ>"
  • 利用者の OK を聞く前に approved_at を入れない。

相关技能