「EBsynth」と「Stable diffusion」で動画を作る方法をわかりやすく解説ー背景変更についても|ControlNET&拡張機能講座18回目

2023年7月9日Stable diffusionAI, ControlNet

title

Stable diffusionの「ControlNET&拡張機能講座」第18回目。以前に「mov2mov」を使った動画作成をやりましたが、今回は「EBsynth」を使った動画作成です。以前の「mov2mov」は以下のリンクを参照してください。

「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キーを押します。

kankyou

そうすると「システムのプロパティ」というウィンドウが出てきますので、「詳細設定」タブから「環境変数」を選びます。

するとまたウィンドウが出てくるので、「〇〇のユーザー環境変数」というところにある「Path」を選択します(青色になります)。そしてその下の「編集」ボタンを押してください。

またウィンドウが出てきますので、右側の「新規」ボタンを押してから「参照」ボタンを押して、先ほどの「bin」フォルダのある位置を選択して「OK」ボタンを押します。

終わったらPCを再起動します。これで導入されます。

まじで面倒くさいニャ。

 

「EBsynth」の導入

次にイラスト動画を動かすための「EBsynth」を導入します。

https://ebsynth.com/

で「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」タブが追加されていますので、そこに移動。

step1

project setting」タブの「Project directory」に作業用フォルダの場所を、「Original Movie Path」に元動画の場所を記入します。手打ちでもいいですが、パスをコピペするのが早いでしょう。動画ファイルは右クリックで「パスのコピー」という選択欄が出てきます(ないばあいは「shift+右クリック」で)。

もしくは、動画は「ここに動画をドロップ」のところに放り込んでもOKです。

width

configuration」タブをクリックし、動画の「Frame Width」(横幅)と「Frame Height」(縦幅)を設定します。今回は「768×512」で。

generate

つぎに画面を下の方にスクロールさせると、右下に「Generate」ボタンがあるのでこれを押してください。

しばらく待つと、作業用フォルダ内に「video_frame」「video_mask」というフォルダがつくられ、中に大量の画像ファイルが出力されているでしょう。

この時点でうまくいっていない場合(マスクが作成されていないなど)は、この記事を最初から読み直して注意点に気をつけてください。

とくにフォルダの位置・名前などは注意です。作業フォルダもかならず中を空にしてください。

キーフレームの抽出

stage2

次は上に戻って「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」を起動してください。

ebs

上の「Open」を押して、先ほど出力した「Ebsynth」用ファイル(.ebs)を読み込ませます。

advance

必要であれば真ん中あたりにある「Advanced」をクリックして、「De-glicker」(ちらつき防止)をいじったりもできます。今回はそのままで。

最後に一番下の緑色ボタンの「Run All」をクリックしてください。これでフレーム間の足りない画像を自動的につくってくれます(作業用フォルダに大量のフォルダがつくられてます)。

すごい機能ニャ。

もし「Ebsynth」用ファイル(.ebs)が複数あるばあいは、Openファイルからおなじことを繰り返してください。

画像の結合

さいごに「Ebsynth Utility」タブの「Stage7」ボタンを押して「Generate」してください。

これで作業用フォルダに「音声あり(_with_snd.mp4)」「音声なし」の2種類の動画が作成されます。

おつかれさまでした。

本当に疲れるニャ。

 

背景を変更する(オプション)

背景マスクをつかっているので、背景を変更することができます。

stage8

「Ebsynth Utility」タブの「configurationタブから「Stage8」タブを選択し、「Background source(mp4 or directory containing images)」のところに背景の場所を指定してください。

・画像の場合:画像のあるフォルダを指定(画像を指定してはいけない)。
・動画の場合:mp4動画を指定。

画像はフォルダを指定するのニャ。

画像フォルダには複数の画像を入れてもOKです(パラパラ漫画のようになります)。1枚だけならそれ以外は入れないでください。

それから「Stage8」ボタンを押して「Generate」してください。

これで背景を入れ替えた動画が生成されます。

 

まとめ

面倒さで考えれば「mov2mov」のほうがいろいろと楽です。

ただこちらは、キーフレームだけを変換して、のこりは「EbSynth」で補完するので、処理が速いという利点がありますね。

あと背景をマスクしてくれるので、画像変換によって変化することがないのも便利ですね。

1から10まで全部やってくれるわけではないので、いろいろと面倒かもしれませんが、つかえるようになるといろいろと便利とは思います。

便利になるまでが苦痛なのニャ。

ただ正直なところ、「mov2mov」でつくったほうがきれいな動画ができる感じでした。

そんなわけでまた次回の講座でお会いしましょう。【追記】次回「「Latent Couple」の使い方をわかりやすく解説ー複数の人物を描き分ける」出来ました。以下のリンクから。