2023年6月現在、画像生成AIを使った動画作成が流行しはじめています。
Stable Diffusionを使って動画を生成する方法はいくつかありますが、生成方法によっては動画から動画を作る技術(v2v, m2m)特有のブレや「カクカク」としたコマ落ち感が生じることがあります。
しかし、Stable Diffusion web UI(AUTOMATIC1111)の「TemporalKit」という拡張機能と「EbSynth」というソフトウェアを使うと滑らかで自然な動画を作ることができます。
この記事では「TemporalKit」と「EbSynth」を使用した動画の作り方を詳しく解説します。
動画生成の流れ
全体の流れを説明します。
はじめにTemporalKitの拡張機能をStable Diffusion web UI(以下、web UI)にインストールします。
インストールが完了したら動画生成の元となる動画を用意して、フレーム(1コマごとの画像)に分割します。
分割したフレーム画像をimg2imgで変換します。
EbSynth(イービーシンス、エブシンス)を使って、変換した画像のフレームの間を補完する画像を生成します。
これによって完成した動画が滑らかにつながります。
最後に生成したすべての画像をTempral Kitで動画としてまとめ上げます。
複雑な流れに見えるかもしれませんが、順を追ってやれば難しくありません。
わかりやすく説明するのでひとつひとつ丁寧に作業を進めてください。
TemporalKitのインストール
まずはTemporalKitをインストールします。
TemporalKitの拡張機能は、web UIのExtensionsタブから簡単にインストールできます。
web UIを開いて、Extensionsタブ → Install from URL と進み URL for extension’s git repository に以下のURLを入力してInstallをクリックします。
https://github.com/CiaraStrawberry/TemporalKit.git
インストール完了後、ExtensionsタブのInstalledタブを開いてApply and restart UIをクリックしUIを更新します。
UIが更新されるとTemporal-Kitタブが新規に追加されています。
Temporal-Kitタブを開くと以下の画面になります。
TemporalKitの設定(Pre-Pocessing)
次にTemoralKitの設定をします。
Pre-Processingタブを開き、画面左上のInputエリアに元となる動画をドラッグドロップします。
今回はzepetoというアプリ(iOS版, Android版)で作成したアバターのダンス動画を使用しました。
アバターのダンス動画でなくても、自分で撮影した動画でも構いません。
ただし、他者の創作物については著作権や肖像権が発生するため避けましょう。
使用する場合は、商用利用をしても問題がないか、動画を加工して問題がないかなど、十分に確認したうえで使用しましょう。
動画をドラッグアンドドロップしたら、以下の設定をします。
- Sides … 1
- Height Resolution … 512
- frames per keyframe … 2
- fps … 30
- EbSynth Mode … チェックを入れる
- Target Folder … Cドライブ直下に「Temporal-Kit-Out」というフォルダを作成してパスを追加(C:\Temporal-Kit-Out)
- Batch Setting … Batch Runにチェックを入れる。MaxKeyFramesを-1にする。Border Key Framesを2にする
- EbSynth Settings … 両方の項目にチェック
以上で設定は完了です。設定をしたら画面右上のRunをクリックします。
Runをクリックすると、Target Folder(Cドライブ直下に作成したTemporal-Kit-Outフォルダ)に次にようなフォルダやファイルが作成されます。
inputフォルダに動画からフレームに分割された画像たちが入っています。
img2imgで画像をバッチ生成する
次にimg2imgを使用して、元動画を構成するフレームから新しい動画のフレームを生成します。
img2imgタブを開きましょう。
プロンプトとネガティブプロンプトの欄に自由にプロンプトを入力してから「C:\Temporal-Kit-Out」(先ほど作成したTarget Folder)を開き、inputフォルダの「0and0.png」を選んで、img2imgのアップロードエリアにドラッグアンドドロップします。
さらに、以下の設定をします。
- Denoising Strength … 0.4
- Control Net … Enableにチェックを入れます。Canny、Depth、SoftEdgeなど元の画像の構造を維持できるようなControlNetを設定します。好きなものを選んでください。ここではsoftedge_hedを使用しました。
以上を設定したうえで、確認のためにGenerateをクリックし1枚の画像を生成します。
何度か画像を生成してみて、いい感じの変換ができたらSeed値を固定します。
Seedを固定したらimg2imgのBatchタブを開きます。
Batch機能を使うと動画から分割したたくさんのフレーム画像を一括変換できます。
BatchタブのInput directoryには「C:\Temporal-Kit-Out\input」を、Output directoryには「C:\Temporal-Kit-Out\output」を設定します。
Generateをクリックすると「C:\Temporal-Kit-Out\output」に画像が生成されます。
これが新しい動画のフレームになります。
EbSynth用に画像を自動整理
変換した画像をEbSynth(エブシンス)用に整理します(EbSynthについては後述します)。
整理するとはいっても、TemoralKitの機能で自動的に整理できます。
web UIのTemporal-KitタブにあるEbsynth-Processタブを開きます。
ここでInput FolderにTemproal-KitのTarget Folder(C:\Temporal-Kit-Out)を入力し、read_last_settingsをクリックします。
その後、画面左下にあるprepare ebsynthをクリックします。
これでEbSynth用の画像が整理されます。
EbSynthのインストール
続いてEbSynthをインストールします。
EbSynth(イービーシンス、エブシンス)は動画のスタイルを変えるためのソフトウェアです。
実写の動画をアニメーション風に変えることができるツールですが、今回は動画のフレーム間の動きを滑らかに見せるために使用します。
以下のURLにアクセスしましょう。
Downloadをクリックします。メールアドレスを聞かれるので入力します。
「名前を付けて保存のダイアログが開く」ので好きな場所に保存してください。
zipファイルがダウンロードされます。 これを任意の場所に展開します。
ここではCドライブ直下に保存しました。
EbSynth.exeをダブルクリックして開きます。
こんな画面が開けばOKです。
EbSynthでフレーム間を滑らかにする
EbSynthをインストールできたら、先ほど生成した動画をEbSynthに入力して処理します。
TemporalKitのTarget Folder(C:\Temporal-Kit-Out)を開いて「0」のフォルダを開きます。
keysフォルダを選択してEbSynthのKeyframesにドラッグアンドドロップします。
次にframesフォルダをEbSynthのVideo欄にドラッグアンドドロップします。
最後にEbSynthの画面下にあるRun Allをクリックします。
これでフォルダ「0」に含まれるフレーム画像が処理されます。
処理が完了するとフォルダ「0」に「out_00xxx」という名前のフォルダがたくさん作られます。
処理が完了したら、EbSynthを一度閉じます。
それからまたEbSynthを開いて、残りのフォルダ1~6も同じように処理します。
EbSynthで作った画像を動画にまとめる
ここまでくればもう少しです。
最後に、もう一度web UIのTemporal-Kitタブに移動します。
先ほどのままInput Folederも設定されていると思うので、画面下のrecombine ebsynthをクリックします。
これでEbSynthで作成した画像たちが動画として結合されます。
画面右のOutputにoutput.mp4というファイルが表示されれば完成です。
Downloadボタンをクリックして動画をダウンロードして見てみましょう。
以下がもとの動画と生成された動画を比較したものです。
もとのアニメ顔からリアルに近い顔になり、滑らかに動いています。
しかし、ちらつきはやや気になりますね。
img2imgで処理するときにDenoising Strengthを下げて元の動画からの変化を減らしたり、TemoralKitのPre-Processingの設定でSidesの値を上げることによってちらつきを減らせる可能性があります。
ちらつきを改善する方法については後ほど記事をアップする予定です。今回はここまでにします。
記事の内容にわからないことがある方は以下のアカウントに気軽にDMしてください!
また、最新の技術の活用方法など役に立つツイートを心がけているので、ぜひフォローしてもらえると嬉しいです!
まとめ
この記事では、Stable Diffusion web UIのTemporalKit拡張とEbSynthを使って滑らかな動画を生成する方法を紹介しました。
手間がかかる手法ではありますが、動きの滑らかな動画を作ることができます。
ぜひ一度チャレンジしてみてください。