「EBsynth」と「Stable diffusion」で動画を作る方法をわかりやすく解説ー背景変更についても|ControlNET&拡張機能講座18回目
Stable diffusionの「ControlNET&拡張機能講座」第18回目。以前に「mov2mov」を使った動画作成をやりましたが、今回は「EBsynth」を使った動画作成です。以前の「mov2mov」は以下のリンクを参照してください。

「mov2mov」はStable diffusion内で完結しますが、今回の「EBsynth」は外部アプリを使う形になっています。
「mov2mov」はすべてのフレームを画像変換しますが、「EBsynth」を使えば、いくつかのキーフレームだけを画像変換し、そのあいだの部分は自動的に補完してくれます。

ただ正直覚えるまで時間がかかりますし、そこそこ面倒くさいです。
注意点もあるのでそこはしっかり読んでください。とくに「mov2mov」を入れているばあい、「img2img」変換でバグが発生するので、拡張機能からチェックマークを外して再起動しておいたほうがいいでしょう。
苦労した結果うまくいかない可能性もあるため、興味のない人はざっとどんなものか読んで知識だけつけて、この記事の最後のリンクから次回の講座へ行ってください。
そんなわけで細かい話は抜きで、やり方をさくっと説明していきましょう。前回の「「Stable Diffusion」のプロンプト入力補助機能「tag complete」をわかりやすく解説」は以下のリンクから。
「FFmpeg」の導入
手順としては、まず動画編集の環境づくりために「FFmpeg」の導入を行います。
https://github.com/BtbN/FFmpeg-Builds/releases
のサイトから「ffmpeg-master-latest-win64-gpl.zip」をダウンロードしてください。
解凍して、CドライブやDドライブの直下に置いてください。というのも、あとの作業でエラーが出やすいからです。またフォルダ名も「ffmpeg」など短くしておいてください。
そののち、フォルダ内の「bin」フォルダの位置へパスを通します。

パスの通し方ですが、ウインドウズマークを右クリックして出てくる一覧から「ファイル名を指定して実行」を選びます。
それから出てきたウインドウに「sysdm.cpl」と入力してEnterキーを押します。
そうすると「システムのプロパティ」というウィンドウが出てきますので、「詳細設定」タブから「環境変数」を選びます。
するとまたウィンドウが出てくるので、「〇〇のユーザー環境変数」というところにある「Path」を選択します(青色になります)。そしてその下の「編集」ボタンを押してください。
またウィンドウが出てきますので、右側の「新規」ボタンを押してから「参照」ボタンを押して、先ほどの「bin」フォルダのある位置を選択して「OK」ボタンを押します。
終わったらPCを再起動します。これで導入されます。

「EBsynth」の導入
次にイラスト動画を動かすための「EBsynth」を導入します。
で「Download」ボタンをクリック。メールアドレスの入力を求められますので、入力してダウンロードしましょう。
それから解凍します。作業は以上です。

「Ebsynth Utility」の導入
「Stable diffusion」で「EBsynth」をつかった動画作成を補助する「Ebsynth Utility」を導入します。
「Stable diffusion」を起動し、「Extensions」タブ→「Install from URL」タブに移動し、「URL for extension’s git repository」に、
https://github.com/s9roll7/ebsynth_utility
を貼り付けて、「Install」ボタンをクリックします。しばらく待つと「Install」ボタンの下の方にいろいろ文字が出てきてインストール終了。
つぎに「Extensions」タブ→「Installed」タブで「Apply and restart UI」 ボタンをクリックして再起動します。これでインストール完了です。
もととなる動画の用意
「mov2mov」同様、無から動画が生み出されるわけではなく、なにかの動画の人物を「Stable Diffusion」で生成した画像にすり替えます。
そのためもとになる動画が必要です。フリー素材の動画とかGifアニメとかを、適当に検索して利用するといいとは思います。
一番いいのは、自分で適当に踊ったのをスマホで録画してもいいでしょう。

それと長い動画は作成にも時間がかかるため、最初は5秒ぐらいの動画をつくるのがいいでしょう。
今回は「mov2mov」でつかった著作権フリーの動画を利用します。
それと素材を置く場所は、CドライブかDドライブの直下に「sozai」とか適当なフォルダをつくってそこに入れてください。そのほうがエラーが出なくてすみます。フォルダ名には日本語やスペースを入れないでください。
作業用フォルダの作成
作業用フォルダを作ります。
フォルダの位置はCドライブかDドライブ直下とかにしたほうがうまくいきます。
このフォルダの中に、これからの作業で出力されるファイルが入ります。
今回は「Test」というフォルダを作りました。フォルダ名はなんでもいいですが、日本語にしたりスペースを入れたりしないでください。
それと注意として、このフォルダは完全に空にしてください。元動画も入れないでください。
なにか入れるとうまくいかない場合が多いです。

「Ebsynth Utility」を使う
準備はととのいましたので、動画を作成します。
元動画から画像・マスクを抜き出す
「Stable diffusion」に「Ebsynth Utility」タブが追加されていますので、そこに移動。
「project setting」タブの「Project directory」に作業用フォルダの場所を、「Original Movie Path」に元動画の場所を記入します。手打ちでもいいですが、パスをコピペするのが早いでしょう。動画ファイルは右クリックで「パスのコピー」という選択欄が出てきます(ないばあいは「shift+右クリック」で)。
もしくは、動画は「ここに動画をドロップ」のところに放り込んでもOKです。
「configuration」タブをクリックし、動画の「Frame Width」(横幅)と「Frame Height」(縦幅)を設定します。今回は「768×512」で。
つぎに画面を下の方にスクロールさせると、右下に「Generate」ボタンがあるのでこれを押してください。
しばらく待つと、作業用フォルダ内に「video_frame」「video_mask」というフォルダがつくられ、中に大量の画像ファイルが出力されているでしょう。
この時点でうまくいっていない場合(マスクが作成されていないなど)は、この記事を最初から読み直して注意点に気をつけてください。
とくにフォルダの位置・名前などは注意です。作業フォルダもかならず中を空にしてください。
キーフレームの抽出
次は上に戻って「Stage2」にセットします。
そしてまた下の「Generate」ボタンを押してください。
すると作業用フォルダ内に「video_key」というフォルダができ、その中にキーフレーム(動きのある部分)が入ります。「Ebsynth」はこのキーフレーム間を補完してくれるアプリです。
キーフレームを画像変換
つぎはキーフレームから適当な画像を一枚選び、「Img2img」で好きなように画像変換してください。
たとえば元動画が実写なら、「Img2img」でイラスト調にするなどですね。「Denoising strength」をいじりつつ(0.4ぐらいからスタートして増やしていくとよいでしょう)、不自然にならないようにしてください。
スクリプトは適当にそれっぽいことを書いたり、taggerを使って抽出したものをつかったりしてもよいです。
とにかく自分が気に入るような1枚をつくってください。
「ControlNET」を利用してもよいでしょう。「reference_only」や「lineart」などを組み合わせたりして、人物を固定しておくのもいいとは思います。「opne pose」で動きをトレースするのもいいですね。
それと「mov2mov」をインストールしている場合、エラーが出る可能性があるので、拡張一覧から「mov2mov」のチェックマークを外して再起動してください。
うまくできたらシード値を固定。
そののちに一番下の「Script」で「Ebsynth Utility」を選択し、下の「Project directory」に作業用フォルダの場所を記入します。
さらに下の「ControlNet option」の「Control Net Weight」「Control Net Weight For Face」はControlNETの一括指定なので、どちらも1.0にしておけばいいでしょう。
あとは「Generate」ボタンを押してしばらく待つと、作業用フォルダの中に「img2img_key」フォルダができて、変換された画像がそのなかに出力されます。
「Ebsynth」用ファイルを作成
「Ebsynth Utility」タブに戻り、今度は「Stage5」ボタンを押して「Generate」してください。
これで「Ebsynth」用ファイル(.ebs)が作成されます。
「Ebsynth」の利用
ここから外部アプリを使います。
さきほど解凍した「Ebsynth」のなかにある「EbSynth.exe」を起動してください。
上の「Open」を押して、先ほど出力した「Ebsynth」用ファイル(.ebs)を読み込ませます。
必要であれば真ん中あたりにある「Advanced」をクリックして、「De-glicker」(ちらつき防止)をいじったりもできます。今回はそのままで。
最後に一番下の緑色ボタンの「Run All」をクリックしてください。これでフレーム間の足りない画像を自動的につくってくれます(作業用フォルダに大量のフォルダがつくられてます)。

もし「Ebsynth」用ファイル(.ebs)が複数あるばあいは、Openファイルからおなじことを繰り返してください。
画像の結合
さいごに「Ebsynth Utility」タブの「Stage7」ボタンを押して「Generate」してください。
これで作業用フォルダに「音声あり(_with_snd.mp4)」「音声なし」の2種類の動画が作成されます。
おつかれさまでした。

背景を変更する(オプション)
背景マスクをつかっているので、背景を変更することができます。
「Ebsynth Utility」タブの「configuration」タブから「Stage8」タブを選択し、「Background source(mp4 or directory containing images)」のところに背景の場所を指定してください。
・画像の場合:画像のあるフォルダを指定(画像を指定してはいけない)。
・動画の場合:mp4動画を指定。

画像フォルダには複数の画像を入れてもOKです(パラパラ漫画のようになります)。1枚だけならそれ以外は入れないでください。
それから「Stage8」ボタンを押して「Generate」してください。
これで背景を入れ替えた動画が生成されます。
まとめ
面倒さで考えれば「mov2mov」のほうがいろいろと楽です。
ただこちらは、キーフレームだけを変換して、のこりは「EbSynth」で補完するので、処理が速いという利点がありますね。
あと背景をマスクしてくれるので、画像変換によって変化することがないのも便利ですね。
1から10まで全部やってくれるわけではないので、いろいろと面倒かもしれませんが、つかえるようになるといろいろと便利とは思います。

ただ正直なところ、「mov2mov」でつくったほうがきれいな動画ができる感じでした。
そんなわけでまた次回の講座でお会いしましょう。【追記】次回「「Latent Couple」の使い方をわかりやすく解説ー複数の人物を描き分ける」出来ました。以下のリンクから。