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