見出し画像

Deforumを使用して、video2video的な方法で一貫性の高いアニメーションを作成する設定の紹介(Stable diffusion Web UI Automatic 1111、paperspace使用)


この記事では、Stable diffusion Web UI Automatic 1111で使用できるDeforumという拡張機能で、video2video的な方法で一貫性の高いアニメーションを作成する設定について紹介します。
内容はリンクの貼ってある動画を参考に作成しました。

この記事で紹介しているDeforumの機能は、video2video的な方法なので、基本的に元動画の変換についての内容になります。
この方法を使用する場合は、必要なコントロールネットのモデルの数が多いため、特にクラウドで運用している方などは注意して使用してください。
今回はpaperspaceで使用する場合について説明しますが、ローカルでも同様かと思いますので参考にしてください。

必要な容量


コントロールネットのモデル 合計 5.073GB
①tile:1.45GB
②hed:1.45GB
③openpose:1.45GB
④temporalnet: 723MB

※私のpaperspaceのストレージを確認したところでは、チェックポイントをmeina mixのみで、4つのコントロールネットを入れた状態で14GBでしたので、ぎりぎりで達成可能な状況と思われます。

元動画の作成について


自分が撮影した動画などでも良いと思いますが、背景などが入ると基本的に一貫性が低くなる傾向がありますので、「zepeto」などのアプリでシンプルな背景でアバターを動かして作成した動画を使用するのが良いと思います。
zepetoで作成した動画については、ユーザーに著作権があるとの記載がありますので、それを使用することで著作権侵害が発生しない点は重要です。

今回使用する動画 zepetoで作成しました。

使用した動画の最初の画像

動画は13秒ぐらいですが、必要なサイズにして(1:1に編集した)、paperspaceの適当なところにアップロードしておきます。
ここで、重要なのが動画の長さとFPSになります。
最初のテストには1-2秒程度のものを準備しておくと良いです。
FPSは、outputに設定するものと同じにすると良いです。
私は最初に間違えてそのままの長さの動画を使用したので、中止して短いのに設定しなおしました。

モデルのインストールとデータ容量の調整


使用するチェックポイントは、1つに絞っておきます。前述した容量からわかるように、2つだと容量制限(15GB)を超えます。今回はMeina mixにしています。
拡張機能の「model downloader」で、コントロールネットに上記のモデルをインストールします。
また、temporalnetについては、youtube動画ではコントロールネットのモデルのフォルダにyamlファイルをアップロードして追加するとありますが、最近のコントロールネットはyamlファイルがなくなっているので、追加せずに使用しました。特に問題はないようです。

Deforumの設定について


参考にした動画の概要欄に、サンプルの設定テキストファイルへのリンクが張ってあります。各自でアクセスしてダウンロードしてください。
それをpaperspaceの適当なところにアップロードして、そのpathをコピーして、「Load All Settings」を押すと、書いてある設定がDeformに反映されます。そこから、必要な部分を修正していくのが最も近道かと思います。

今回は、その設定を一部変更しつつ動画作成していく過程を示します。
そのため、どの部分がデフォルトの状態から変更されているか全て記載出来ていないので(かつ把握出来ていない)、下記の部分だけだとおそらくうまくいきません。

Run設定部

Run設定

赤枠の所は、自分の好きなものに変更して問題ないものと思われます。
私の場合は、大きさを768x768に変更しました。

Keyframeの設定


Keyframe設定

初期だとフレーム数が非常に多いため、まずは減らしておくことをお勧めします。20-30ぐらいから始めるのが適当かと思います。
今回は動画を使用しているため、ここは反映されず、動画の長さに対応した画像が作製されます。
Cadenceがデフォルトと異なり「1」になっています。このため、デフォルトの設定と比較して時間がかかるようになりますが、画像のフリックが改善されています。「2」でもフリックは結構出ます。
また、お気づきの方もいるかもしれませんが、アニメーションモードが「2D」で、「video input」ではありません。

プロンプトの設定

プロンプト設定

今回はデフォルトのものを提示しています。基本的には変更するものにたいして一貫した内容になるようです。ポジティブプロンプト部に変更したい人物のプロンプトを入れています。
ここで使用されているLoraはいくつか使用していないので省きました。

Ini設定


Ini設定

今回は、動画を利用するため、video initのタブを選ぶ必要があります。
使用する動画をpaperspaceにアップロードして、そのpathをコピペします。

コントロールネット1設定

コントロールネット1

オープンポーズの設定です。赤枠部は、アップロードした動画のpathに変更します。Low VRAMも必要に応じて入れます。

コントロールネット2設定


コントロールネット2

Tileの設定です。先ほどと同様の変更をします。

コントロールネット3設定

コントロールネット3

Hedの設定です。先ほどと同様の変更をします。

コントロールネット4設定

コントロールネット4設定

temporalnetの設定です。先ほどと同様の部分を変更します。

Hybrid video設定

Hybrid video設定

特に変更する必要はないと思います。

Output設定

Output設定

FPSはデフォルトは23.98になっていますが、最初は低めではじめると良いと思います。私は10にしました。
また、サウンドについてはファイルを用意していませんので、変更する必要があります。

これで設定は終了したので、「Generate」で作成開始をします。

作成された最初の画像


最初の画像の比較

最初の画像の比較

最初の画像の比較をします。背景は若干の変更ありますがおおむね元画像と配置は同じです。人物は手の位置が変わりましたがおおむねのポーズは同じで、服装と顔が変化したことが分かります。

動画については、張り付け方が分からないので、元画像と比較した動画を最後にファイルを添付しておきました。
文章として記載しておくと、元動画の動きに合わせて比較的一貫性が高めではありましたが、ひげが出たり出なかったり、ところどころで髪の色が変わったりと顔回りに関しては変化が出ていました。このあたりはLoraで改善できるところかと思います。
ただ時間がかなりかかるため、時間的にはmov2movでの使用とあまり変わらない可能性がありますが、今回はLoraを使用せずに作成出来た画像である点は個人的に重要だと思っています。
mov2movだと、Denoising stressを低くしないと一貫性の高い画像が出来ないため、Loraなどである程度変化させる方向を決めておかないと元画像と変わらない動画が出来たりしていました。Denoising stressが低いと、顔だけ変わって服が変わらないなどよく経験します。
そういった中では、プロンプトで変更を反映出来ている今回の方法は元画像を変える方法としては優秀な部類になると思いました。

動画作成にかかった時間について


私が使用した環境では、この設定で、6秒の動画が完成するまでおよそ1時間20分程度かかりました。
元動画は2秒の動画だったのですが、なぜか6秒ということで3倍の長さになっていました。これは、元画像のFPSが30だったので、3倍になったということのようです。。。。
FPSの変更についてはffmpegを使用して変更することが出来ます。
60枚の画像作成だとかなり時間がかかることになりますので、時短のため設定を変更しましょう。
コントロールネットを使用しない状態でのDeformだと5秒程度の動画だと数分で作成出来ますが、マルチコントロールネットだとかなり時間がかかるようです。これは先ほどのcadenceの違いも影響しています。
Sound trackを付けるとより伸びる可能性もあります。
再度強調しましが、元の動画の長さ分のものが作製されますので、Keyframeで少なく設定したとしても、それは反映されないので注意してください。

コントロールネットの設定について補足


今回は4つのコントロールネットを使用しましたが、参考にした動画では、3つのコントロールネットのバージョンも紹介しています。
4つの場合に比べると一貫性は低下しますが、上記だと時間がかかりすぎる印象がありますので、求める結果と合わせて調整していく必要があると思います。
個人的に試したところでは、Hed、Tile、Temporalnetの3つでも十分な効果が得られそうです。3つだと2秒の動画が20分なので、若干の時短になります。

個人的感想と考察


アニメーション設定の所でも言及していますが、video2videoと同じことをしているのに、設定では「video input」ではなく出来てしまうのが面白いと思いました。
ただ、「video input」でも若干の設定変更が必要ですが、近い結果が得られますが、若干フリックが目立つようになります。
今回の設定では「stremgth」が0になっていたので、Desnoising stressが1.0の状態で行っていると思われます。それがプロンプトの反映が大きい要因かと感じました。


参考までに使用した動画と、出来上がった動画の比較した動画のリンクを作成したので置いておきます


下の動画は、別の元画像(2秒)とHed,Tile, Temporalnetの3コントロールネット、Hed,Temporalnetの2コントロールネットの3つを並べています。短いですがイメージが付きやすいかと思います。
こちらは短いこともあり、動画内での変化が少ないものになりました。繰り返しで再生される形にしています。

追加でやや長い動画も作成してみました。

セーラームーンのLoraを使用して作成したものですが、img2imgで初回に作成したものを見て、プロンプトを追加したものを比較しています。
服装の変化があるも、フリックはそれほどありません。
これは別記事で紹介しているiP-adapterも使用しています。

この記事が気に入ったらサポートをしてみませんか?