見出し画像

Mac miniでMiniMax H3を使いミュージックビデオ制作を試してみた①

Mac miniでMiniMax H3のローカル版を動かし、既存曲からミュージックビデオを作れるか試している。

今回使った曲は「FOCUS U」。イントロから最初のサビが終わる1分03秒までを、16:9のMVとして仕上げるのが目標だ。黒い衣装の女性歌手が明るいスタジオで歌い、サビではK-POP風のダンスを踊る。背景には歌詞が大きく現れる。最終的には実写ではなく、用意した2Dキャラクターを主役にしたい。

まだ1分03秒の完成には至っていない。ただし、かなりの数の失敗を経て「MiniMax H3に何を任せ、何を後工程へ分けるべきか」は見えてきた。今回は、その途中経過をまとめる。

今回の環境

  • Mac mini M4 Pro

  • ユニファイドメモリ:64GB

  • ComfyUI:v0.31.0

  • MiniMax H3:公式Ref2VA Pruned INT8

  • 解像度:主に512×288

  • フレームレート:24fps

  • 生成ステップ:8 steps

  • 1カット:約5.17秒を基本

  • 音声:完成音源、ボーカルstem、ドラムstem

  • API使用:なし。今回の記事の検証はすべてローカル

512×288は完成画質ではなく、動き、構図、参照方法を安価に切り分けるプリプロ用だ。5秒の生成時間はおおむね12〜20分。参照動画を使うキャラクター置換では20分前後かかった。

最初に考えた方法

最初は、H3へ必要なものをまとめて渡せばよいと思っていた。

  • キャラクターの正面、背面、側面画像

  • 座って歌う参考画像

  • ダンスの参考画像

  • ボーカルとドラム

  • 正確な歌詞と表示時刻

  • 白いスタジオ

  • カメラワーク

  • リップシンク

  • K-POP風の振付

ところが、指示と参照を増やすほど、すべてが少しずつ弱くなった。人物は参考画像のTポーズへ戻り、座っていたはずが途中で立ち上がり、そのまま固まる。歌詞は増殖し、前の単語が消えない。ダンス、口、文字、構図を一度に成立させるのは難しかった。

特に分かりやすかったのが、座ったキャラクター画像と正面Tポーズ画像を同時に渡した試行だ。約1秒で座り姿から立ちTポーズへ変形し、以降はほぼ動かなくなった。

ステップ数を増やせば直る種類の失敗ではない。複数の静止画が「同じ人物の資料」ではなく、「時間とともに移り変わる姿勢」として混ざったように見える。

指示を減らしたら、K-POPらしい映像が出た

そこで一度、キャラクター画像も文字も白いスタジオも外した。H3へ渡した中心的な条件は、成人女性歌手、音声参照、K-POP風のダンスという程度である。

すると、こちらの細かなデザインからは離れたものの、カメラへの寄り方、表情、群舞、カットの変化は急にMVらしくなった。バックダンサーまで勝手に追加されたが、振付候補を探す段階では、この結果の方が明らかに使いやすい。

「歌手は1人」と書いたのに人数を増やすのは指示違反である。しかし、プリプロの目的は完成映像を一発で得ることではなく、使える演技や振付を探すことだ。背景や余分な人物は後から処理できる。ここを完璧に守らせるために、肝心の動きを弱くする必要はないと判断した。

ボーカルとドラムは役割を分けた方がよい

同じseedでも、完成ミックス、ボーカルstem、ドラムstemのどれを渡すかで映像が変わった。

  • ボーカルstem:顔、口、表情、歌唱アップ向き

  • ドラムstem:全身の運動、拍、ダンス向き

  • 完成ミックス:MVらしい総合演出は出やすいが、何に反応したか切り分けにくい

そこで、歌唱アップにはボーカル、全身ダンスにはドラムを中心に使う「役割分離」を採用した。

ただし、音声ファイルを渡しただけでは同期したことにならない。Introの初稿では、ドラムstemが実質無音に近い区間を使っていたうえ、ボーカルを入力していないカットもあった。見た目だけ確認して完成に近いと思ったが、実時間で見ると表情も口も動かず、身体も拍に乗っていなかった。入力音声の波形と音量を生成前に確認する工程は必須である。

実写で動きを作り、あとからキャラクターへ置き換える

直接キャラクターを踊らせると、静止画の姿勢に引っ張られやすい。一方、画像を渡さない実写生成は、人物の再現性を気にしなくてよいため、表情と身体が自然に動きやすかった。

そこで次の二段階方式を試した。

  1. 画像なしの実写で、K-POP風の演技やダンスを生成する

  2. 採用した実写動画の冒頭約2.33秒とキャラクター画像1枚をH3へ渡し、動きと構図を保ったまま人物を置き換える

この方法はうまくいった。実写参照の距離変化、ポーズ、スタジオを引き継ぎつつ、人物は黒髪にマゼンタとシアンの毛先を持つ2Dキャラクターへ変わった。画像だけを渡した版で発生したバックダンサーも消え、1人の全身ダンスとして安定した。

重要だったのは、5.17秒の動画を丸ごと参照へ戻さないことだ。64GBのMac miniでは、5秒動画参照はサンプリング開始前にMPSのメモリ不足で止まった。約2.33秒、56フレームに短縮すると完走した。

始点と終点の静止画2枚を渡す方法も軽量で、人物と大まかな構図を揃えるには有効だった。ただし、中間の動きや振付まで移したいなら短い動画参照の方が強かった。静止画を3枚に増やしても、中間ポーズの時刻は正確にならなかった。

歌詞はH3に書かせないことにした

MiniMax H3は、短い英単語ならかなり読める文字を描く。`FOCUS`や`DRIFTING`は、見た目だけなら面白い結果も出た。

しかしMVの歌詞表示として見ると問題が多い。

  • 前の単語が消えない

  • 同じ単語を複製する

  • 複数の歌詞を混ぜる

  • 指定した背景色を維持しない

  • 正しい時刻に1語だけ表示する状態管理が苦手

  • 文字を派手に装飾し、可読性が下がる

そこで歌詞はH3から分離し、macOSのDIN Condensed Boldを使って編集で描画することにした。文字色は黒。白い背景を大きく埋めるほど拡大し、人物の後ろに配置する。サビの`FOCUS`では、拍に合わせて単語を段階的に増やす。

当初は可読性を優先して文字を小さくしたが、最初のイメージカットが持っていた迫力まで失われた。最終的には、文字の一部が人物に隠れてもよいので、巨大な黒DINを画面いっぱいに使う方向へ戻した。

文字をキャラクターの後ろへ回す

文字を単純に重ねると、顔や身体を覆ってしまう。そこでBiRefNetで人物のアルファマットを作り、映像を三層に分けた。

  1. 背景

  2. 黒い歌詞

  3. キャラクター前景

これで歌詞が人物の後ろへ自然に回り、平面的だった画面に奥行きが出た。

H3へ完全なグリーンバックを生成させる方法も試したが、指定した緑を保たず、ピンクや青の照明、床、影を追加してしまった。今回の用途では、H3にクロマキー素材を作らせるより、生成後に人物を抽出する方が安定した。

リップシンクはまだ解決していない

実写だと割とうまくいくが、イラストは上手くいかない

H3は歌い始める時刻を大まかに合わせ、歌唱らしい表情を作ることはできた。しかし、短い無音区間ごとに口を閉じるよう細かく指定しても、歌唱中はほぼ口を開いたままだった。

40〜70ミリ秒程度の語間をタイムコードで列挙した追試でも改善しなかった。つまりH3の文章プロンプトだけで、音節単位の開口と閉口を制御するのは難しい。

専用リップシンクとしてMuseTalk 1.5のMLX版も短尺で試した。処理自体は約12〜18秒と非常に速かったが、今回の低解像度2Dキャラクターでは、口周辺が暗い実写顔のように再解釈されてしまった。実写Talking Headには有望でも、このキャラクターには合わなかった。

次は顔全体を再生成せず、音素やvisemeから「閉口・半開口・母音口形」を2D素材として切り替える方式を検討している。

4、6、8 stepsを比べた結果

公式INT8のローカル生成では、4 stepsは人物がコラージュ状に崩れた。6 stepsでも背景や身体に大きな波状破綻が残り、8 stepsでようやくプリプロとして評価できる映像になった。

同条件で4から8 stepsへ上げた試行では、人物が1人へ統合され、衣装、白いボックス、背景文字も成立した。したがって、公式INT8を512×288で使う今回の条件では、8 stepsを下限としている。

ただし、8 stepsにすれば何でも直るわけではない。Tポーズへの変形、複数参照の時間混線、文字の残留、口の開きっぱなしは、それぞれ別の問題だった。

長尺を一度に作るより、約5秒に分ける

15.08秒の単一生成も完走した。人物、黒い衣装、スタジオは維持したものの、`one continuous shot`と指定しても内部で複数のカット切り替えが発生した。生成時間は38分24秒だった。

同じ約15秒を5秒素材3本として作る場合より約5分長く、失敗したときのやり直し範囲も大きい。MVではカットをつなぐこと自体が演出になるため、基本は約5秒へ分割した方が扱いやすい。長い一続きの演技が必要な場所だけ、10〜15秒生成を選ぶのがよさそうだ。

現時点での制作フロー

現在の最有力フローは次の通り。

  1. 曲を約5秒のカットへ分割する

  2. ボーカルとドラムのstemをカットごとに切り出す

  3. 画像なしの実写生成で、演技と振付を探す

  4. 必要なら始点・終点画像で構図を揃える

  5. 動きを移したいカットは、実写の約2.33秒を動画参照にする

  6. キャラクター画像1枚を使い、人物だけを置き換える

  7. BiRefNetで人物を抽出する

  8. 背景、巨大な黒DIN、キャラクターの順で合成する

  9. 完成音声はH3生成音ではなく原曲へ戻す

  10. リップシンクは別工程で仕上げる

この方法で、サビ冒頭の13.61秒はローカルのパイロット映像まで組み上がった。一方、Introの17.16秒版は、見た目は成立しても表情、口、拍同期が不足していたため不採用にした。

まとめ

MiniMax H3だけで、キャラクター、ダンス、リップシンク、歌詞、背景、カメラを一度に完成させるのは、今のところ難しい。

しかし、MV制作の部品を作るモデルとして見るとかなり面白い。

  • 実写の歌唱やダンスを自由に提案させる

  • 短い動画参照で動きを2Dキャラクターへ移す

  • ボーカルとドラムを別の役割に使う

  • 約5秒単位で生成し、通常のMV編集へ戻す

  • 正確さが必要な歌詞とリップシンクは後工程へ分離する

今回いちばん大きかった学びは、プロンプトを長くすることではない。H3に全部やらせず、得意な生成と、編集で確実に管理できる処理を分けることだった。

1分03秒の完成版へ進むには、まだリップシンクとIntroの拍同期を解決する必要がある。
次回、ローカルで構成を固めた後、必要なカットだけAPIで高画質化する予定だ。


いいなと思ったら応援しよう!