今回は動画を変換して、新しい動画を生成するControlNet m2mについて紹介します。次のような疑問を解決する記事となっております。
- ControlNet M2Mって何?
- ControlNet M2Mの使い方を知りたい
- ControlNet M2Mを使うとどのような品質や時間で動画が生成できるかを知りた。。
ControlNet M2Mとは?
ControlNet M2M(Movie-to-Movie)は、動画から動画を生成するControlNet for Stable Diffusion Web UIの機能です。参照する動画から1フレームずつ画像を取り出して、それをControl Netの機能を使って画像を生成し、それをつなぎ合わせることで新たな動画を生成することができます。
ControlNet m2m事前準備
ControlNet m2mに必要な事前準備をしていきます。
ControlNet for Stable Diffusion WebUIをインストール
ControlNet m2mは現在ではControlNet for Stable Diffusion WebUIの機能の一部となっております。もしStable Diffusion Web UIにインストールされてない場合は以下の記事を参考にインストールしてください。
m2mはControlNetにデフォルトで搭載
m2mは過去には別の拡張機能でしたが現在ではContronNetの拡張機能の中に含まれているので特に追加でインストールする必要はありません。
ControlNetの設定が必要
ControlNet m2mですがControlNetの設定が必要となります。
- 1/3ControlNetの設定画面を開く
ControlNetの設定画面を開きます。
- 2/3追加スクリプトを利用できる設定をする。
m2mの追加スクリプトを有効かするように”Allow other script to control this extension”にチェックを入れます。
- 3/3設定を反映して再起動
設定を反映して再起動します。Apply settingsは忘れがちなので注意してください。再起動の可否については記載はないですが念のため再起動しておきます。
ControlNet m2mの利用方法
それではControlNet m2mの利用方法を具体例を交えて紹介していきます。今回は実写動画をアニメーションに変換する例で使い方を紹介します。参照する動画である実写画像はPixabayのフリー素材を利用してみます。少し長い動画なので7秒に切り抜いた画像を利用してみます。
- 1/4生成する画像の設定
今回は実写動画をアニメ動画に変換するのでモデルをイラスト系モデルAnything v5Ink_inkに設定します。
次にプロンプトを入力します。
Prompt: 1 girl, white clothes
Negative Prompt: EasyNegative
最後に動画の縦横比(アスペクト比)に合わせて画像のサイズを設定します。
- 2/4ControlNetのメニュー選択
ControlNetのメニューを開いてControlNetメニューを選択していきます。”Enable”にチェック、”Pixel Perfect”にチェックを入れます。
PreprocessorとModelは線画抽出を選択してみました。
Preprocessor: lineart_realistic
Model: control_v11p_sd15_lineart
他にもOpenPoseやTileなど選択肢はいくつかあります。なるべくちらつきを抑えるため輪郭をなるべく保持したほうが良いということでLineartにしてみました。
- 3/4ControlNet m2mのスクリプトのセット
txt2imgの画面下部のScriptにcontrolnet m2mを設定します。するとControlNet M2Mのメニュー画面が表示されます。動画をセットできるようになるので参照する動画である実写動画をセットしてみました。
- 4/4動画を生成する
あとは画像生成の時と同じで”Generate”ボタンをクリックすると動画が生成されます。かなりの時間を要します。私の環境(RTX 3080Ti 16GB)では7秒の動画で25分かかりました。
生成された動画は次の通りです。ちらつきが少し多いですがアニメーションに変換できているところがよくわかります。動画の品質についてですが色々と工夫をしてみましたが現状はこれが限界なようです。新しい動画生成の仕組みは日々、開発されているので今後に期待です。
FAQ
m2mの動画はどこに保存される?動画が読み込めない…
stable-diffusion-webui\outputs\txt2img-images\controlnet-m2m配下にファイルが保存されます。動画はgif画像として保存されるため、かなり巨大なファイルになります。再生ソフトを使っても正しく読み込まれないことがあります。そのため、別途ツール(windowsの場合はclipchampなど)を使って動画に変換するのをおすすすめします。
参照動画が反映されない。関係のない動画が生成される。
以下のようなエラーが発生したり、動画と関係ない画像が生成される場合は、“Allow other script to control this extension”の設定が有効になっていないです。”Apply settings”をクリックしないで再起動すると設定が反映されません。気を付けましょう。
ValueError: controlnet is enabled but no input image is given
推奨スペックは?
基本的には動画の各フレームに対してControlNetを適用しつつ画像を生成するので、ControlNetが動作するスペックであれば動作します。重要となってくるのがグラフィックボードのVRAMです。VRAMは6GBで動作することは確認しております。生成する画像の解像度にもよりますが、VRAMは4GBあたりが動作するかどうかの境目です。詳細は次の記事を参照ください。
実行時間は?
基本的にフレームごとに画像を生成するため膨大な時間がかかります。
以下目安です。
動画のFPS: 60
動画の長さ: 60秒
1フレームあたりの画像生成の速度: 4秒
とすると60×60×4=7200秒=4時間となります。
ちなみに私の環境では7秒の動画で25分かかりました。
コメント