Stable Diffusionで動画生成。Controlnet M2Mで実写動画をアニメーションに変換

今回は動画を変換して、新しい動画を生成する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にインストールされてない場合は以下の記事を参考にインストールしてください。

GitHub - Mikubill/sd-webui-controlnet: WebUI extension for ControlNet
WebUI extension for ControlNet. Contribute to Mikubill/sd-webui-controlnet development by creating an account on GitHub.

m2mはControlNetにデフォルトで搭載

m2mは過去には別の拡張機能でしたが現在ではContronNetの拡張機能の中に含まれているので特に追加でインストールする必要はありません。

ControlNetの設定が必要

ControlNet m2mですがControlNetの設定が必要となります。

ContronNetでm2mを利用できるようにする
  • 1/3
    ControlNetの設定画面を開く

    ControlNetの設定画面を開きます。

  • 2/3
    追加スクリプトを利用できる設定をする。

    m2mの追加スクリプトを有効かするように”Allow other script to control this extension”にチェックを入れます。

  • 3/3
    設定を反映して再起動

    設定を反映して再起動します。Apply settingsは忘れがちなので注意してください。再起動の可否については記載はないですが念のため再起動しておきます。

ControlNet m2mの利用方法

それではControlNet m2mの利用方法を具体例を交えて紹介していきます。今回は実写動画をアニメーションに変換する例で使い方を紹介します。参照する動画である実写画像はPixabayのフリー素材を利用してみます。少し長い動画なので7秒に切り抜いた画像を利用してみます。

Just a moment...
ContronNetでm2mの利用方法
  • 1/4
    生成する画像の設定

    今回は実写動画をアニメ動画に変換するのでモデルをイラスト系モデルAnything v5Ink_inkに設定します。

    次にプロンプトを入力します。

    Prompt: 1 girl, white clothes

    Negative Prompt: EasyNegative

    最後に動画の縦横比(アスペクト比)に合わせて画像のサイズを設定します。

  • 2/4
    ControlNetのメニュー選択

    ControlNetのメニューを開いてControlNetメニューを選択していきます。”Enable”にチェック、”Pixel Perfect”にチェックを入れます。

    PreprocessorとModelは線画抽出を選択してみました。

    Preprocessor: lineart_realistic

    Model: control_v11p_sd15_lineart

    他にもOpenPoseやTileなど選択肢はいくつかあります。なるべくちらつきを抑えるため輪郭をなるべく保持したほうが良いということでLineartにしてみました。

  • 3/4
    ControlNet 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分かかりました。

コメント