ComfyUIでAnimateDiff-MotionDirector
AnimateDiffのオリジナルのモーションloraを作ろうと思い以下のカスタムノードを使い、トレーニングしてみた。
ComfyUI-ADMotionDirector
トレーニング環境だが、結構スペックが必要になる。
Google Colabで16GBのT4では、GPU不足になった。
なのでL4を使ってみた。
やっていて思ったのがVRAMが少ないゲーミングGPUを使ったローカル環境よりGoogle Colabを使った方がいいと思う。
(後述するがフレーム数を下げれば16GBでも学習可能)
上記のファイルは右クリックで保存しないでください。
一度githubページに飛んで右上のダウンロードボタンを押してください。
上が250stepバージョンで、下が500stepバージョン。
今回は250step(50step x 5)で学習した。
学習時間はL4だと50stepごとに9分ほどかかるので、250stepだと40分程度。
さらに1プロセスごとにvalidationのビデオ書き出しが入るので、
1プロセス2分。5プロセスで10分。
最終的に50分程度かかった。
学習用動画を先頭のLoad Videoノードに入れる。
学習用動画は32フレーム以内のものを用意する。
(Load Videoノード のframe_load_cap で余分なフレームを切り取ってしまってもいい。)
それより多いとエラーが出る。
32フレームで学習するのに16GBだとメモリ不足で実行できなかった。
RTX4070ti 16GBなら16フレームでも以下の画像ようにギリギリだ。
20フレームは可能だが、24フレームは無理だった。
学習データは2種類出力される。
"temporal"がmotion loraで
"spatial"が普通のloraです。
実際に動画を生成するには通常通りmotion loraのみを使えば良さそうです。
spatialモデルは"空間"を制御するようですが、使うとおかしな結果になるので、何か正しい使い方があるのかもしれません。
生成後のデータの保存場所はComfyUIのmodelsのanimatediff_motion_loraとlorasの中に作られる。
(カスタムノードのレポジトリ内を探しても見つからないので注意。)
参考:
この記事が気に入ったらサポートをしてみませんか?