AIビデオスタイル変換:Stable Diffusion+EBSynth

今回変換した動画は比較的安定していますので、まずはその効果をご紹介します。

ビデオはここにアップロードできないため、ディスクに保存することをお勧めします:  https://www.aliyundrive.com/s/5mzfjLViyDa

前回の記事では、前回に引き続き、TemporalKitを使用して動画のキーフレーム画像を抽出し、次に安定拡散を使用して再描画し、次にTemporalKitを使用して再描画されたキーフレーム画像間の隙間を補完しました。そしてそれをつなぎ合わせて動画にしました。

この記事では、新しいツール EBSynth を使用して、再描画されたキーフレーム画像の間のシーケンス フレームを完成させます。他のステップでは、引き続き元の方法を使用しますが、関連するパラメーターをいくつか調整する必要があります。見てください。ゆっくり説明してください。

EBSynthツールを使いたい理由は、前回の記事で紹介した方法ではなく、この方法を導入している人が多いので試して比較してみようと思うからです。

プラグインのインストールについてはここでは触れませんので、前回の記事を読んでください。まずキーフレームを抽出します。

キーフレームの抽出

キーフレームを抽出する理由 キーフレームの抽出は、動画の中の比較的動きの変化が大きいシーンを絵に変換し、次にその絵を再描画する作業です。キーフレームを抽出せずにビデオの各フレームを再描画する場合、第一に作業負荷が大きくなり、第二に、再描画されたそれぞれの画像が少し異なり、画像がちらつく可能性があります。

SD WebUI のホーム タブで Temporal-Kit を見つけ、クリックして開きます。次に、「前処理」をクリックして、ビデオ領域に処理するビデオをアップロードします。これは、Douyin から傍受したセクションです (このビデオのダウンロード アドレスは記事の最後に記載されています)。すぐに「実行」をクリックしないでください。まだいくつかの設定があります。以下を読み続けてください。

ビデオの下に、画像を抽出するための設定が表示されます。

側面: 生成された画像の側面には、いくつかのビデオ フレームが含まれています。2 の場合、4 つのビデオ フレーム (2*2) を表し、3 の場合、9 つのビデオ フレーム (3*3) を表します。最小設定は 1、つまり、1 つのピクチャに 1 つのビデオ フレームが含まれます。これは後で高さの解像度と一緒に設定する必要があります。

高さの解像度: 画像の高さのピクセル値を生成します。提案は次のとおりです: ビデオの高さ * 側面。たとえば、私のビデオは 1080*720 で、単一のビデオ フレームの高さは 720 ですが、以前のビデオ フレームの高さは 720 です。辺の設定は 2 なので、720*2= 1440 となります。ただし、この計算式は絶対的なものではなく、720 や 2048 と書くこともできます。この値はグラフィック カードのパフォーマンスを考慮する必要があるため、グラフィック カードの性能が十分でない場合は、あまり高く設定しないでください。

キーフレームあたりのフレーム数: キーフレームを抽出するために使用されるビデオ フレームの数。キーフレームの密度が高いほど、アクションの接続はスムーズになります。ただし、再描画の変更が多く発生し、画面がちらつく可能性があります。

EBSynth モデル: 後で処理に EBSynth を使用するため、ここで確認すると、生成されるファイル名は特定の形式になります。

fps: ビデオには 1 秒あたり何フレームが含まれていますか? 通常、コンピュータでビデオの詳細を表示することで確認できます。

Target Folder: キーフレーム画像の出力先は、実際にはこのディレクトリ内に作成される入力フォルダに出力されます。以降の処理のための中間ファイルはすべてこのフォルダ内にあり、プロジェクトディレクトリに相当しますので、ビデオごとに入力フォルダーが作成され、プロセスごとに異なるフォルダーが作成されます。クラウドの場合、これはサーバー上のディレクトリである必要があることに注意してください。

バッチ設定: ここではビデオ全体を処理する必要があるため、このバッチ実行をチェックする必要があります。

EBSynth 設定: EBSynth が処理できるビデオ時間は比較的短いため、ビデオをいくつかのセグメントに分割して処理する必要があります。

パラメータを設定したら、ページ右側の「実行」をクリックします。

すべてのキーフレーム画像が抽出された後、抽出された最初の画像が画像のこの領域に表示されるはずですが、ここには表示されませんでした。通信上の理由によるものなのかはわかりません。注意してください。処理の進行状況。

  • ここに絵が表示されている場合は、「絵を描く」をクリックするだけで再描画できます。
  • ここに画像が表示されていない場合は、ファイル ディレクトリに移動して最初の画像を見つけてダウンロードし、[画像] に手動でアップロードします。

スタイルを変換する

次に、「Picture Drawing」インターフェイスに入ります。

前回の水彩画がぼやけていたので、今回は漫画風のモデル「toonyou」をそのまま使用し、Loraモデルに合わせる必要はありません。ダウンロードアドレスは記事の最後で入手できます。

私の即興の言葉は、簡単にコピーできるようにここに掲載されています。

プロンプトワード: 男、壮大なシーン、ポスター、フラットカラー、

逆プロンプト単語: easy_negative、beard

次に、いくつかのパラメータ設定がありますが、実際の状況に応じて調整してください。効果が良くない場合は、調整してください。

次の 2 つの点に注意してください。

  • 画像の幅と高さ: 通常は実際の設定に従って設定してください。数値が大きすぎる場合は、まず小さくしてから超高解像度を使用して拡大することをお勧めします。
  • 再描画強度: これを最大にオンにします。前回の記事であまり大きくしないようにと書きましたが、繰り返し範囲が大きいため、絵が大きく変化したり、合成した動画がちらつくことがあります。ただし、実測の結果、toonyou モデルでは再描画範囲の影響は比較的小さいようですので、全く同じである必要はなく、実際の状況に合わせて試していただければと思います。
  • シードの生成: 満足のいく画像が生成されるまで、最初は -1 に設定されます。

次に、引き続き ControlNet を使用して描画を制御し、再描画時の過度の変更を避け、画像を安定させます。ここではタイルモデルを選択しましたが、SoftEdge、Canny、Lineart などの線画モデルを試すこともできます。

次に、カードを引いて、満足するまで画像を生成し続けます。

満足のいく画像の生成シードを記録することに注意してください。これはすぐにバッチ生成で使用されます。

Tushengtu を「バッチ処理」に切り替え、2 つのディレクトリに入力します。

  • 入力ディレクトリ: キーフレーム抽出ステップの出力画像のディレクトリ。
  • 出力ディレクトリ: 再描画した画像が保存されるディレクトリ、固定値出力、入力するだけです。

ここに満足のいく絵を生成するための種を埋めていきますが、絵の中の様々な要素を一つの種で安定して出力するのは難しいので、実際に体験してみてください。

最後のステップは、[生成] ボタンをクリックし、バッチ処理が完了するまで待つことです。

画像出力エリアの下にこの文が表示されれば、基本的に処理は完了です。WebUI の進行状況の更新が間に合わない場合がありますので、コンソールやシェルの出力に注意してください。

EBSynth の処理

前処理

以前にビデオのキー フレームを抽出したとき、元のビデオをいくつかのサブビデオに分割しました。前処理では、各サブビデオの元のビデオ フレームとキー フレームを個別に抽出し、関連するフォルダーに配置します。

SD WebUIのホームタブでTemporal-Kitを見つけて、「Ebysynth-Process」をクリックします。ここでの操作の順序に注意してください。画像の指示に従ってください。

「入力フォルダー」にプロジェクトディレクトリを入力し、「read_last_settings」をクリックすると、ビデオとほとんどのパラメーターが自動的にロードされます。

「出力解像度」にビデオの解像度を入力します。これは自動的には読み込まれません。

最後に「ebsynth の準備」ボタンをクリックして処理します。

サブビデオのフォルダーは次のとおりです。

サブビデオ フォルダーを開くと、これらの内容が表示されます。フレームおよびキー ディレクトリ内の画像は、この処理後に書き込まれます。次のステップでは、EBSynth を使用してこれらの画像の処理を続けます。

SD WebUI がクラウドで実行されている場合は、EBSynth ツールをローカルで実行する必要があるため、最初に SD WebUI をローカルにダウンロードする必要があります。次のコマンドを使用して、最初に zip ファイルにパッケージ化できます (独自のプロジェクト ディレクトリに置き換えることに注意してください)。

zip -q -r dehua2.zip /root/autodl-tmp/webui_outputs/temporal-kit/dehua2

次に、プラットフォームでサポートされている方法でダウンロードします。

シーケンスフレームの生成

この手順にはEBSynthというソフトが必要で、正式版にはWIndows版とMac版が用意されていますが、Macで実行するとすぐに終了してしまい、原因を調べていなかったのでそのままWindows環境に切り替えました。

ソフトウェアのダウンロード アドレス: EbSynth - Transform Video by Painting Over a Single Frame をクリックし、[ダウンロード] ボタンをクリックして、ポップアップ ウィンドウの下部にある [いいえ、ダウンロードを開始してください] をクリックします。Web サイトはオペレーティング システムを自動的に識別し、対応するバージョンのプログラム ファイルをダウンロードします。

EBSynth を起動した後は、次のことを行うだけです。

サブビデオのフレーム ディレクトリをビデオ入力ボックスにドラッグします。

サブビデオのキー ディレクトリをキーフレーム入力ボックスにドラッグします。

このとき処理する画像タスクがソフト下部に自動的に表示されます。

最後に、ソフトウェアの下部にある「すべて実行」をクリックして、このサブビデオの処理を開始します。

このプロセスには時間がかかりますので、しばらくお待ちください。各サブビデオはこのように処理する必要があります。

すべてのサブビデオの処理が完了したら、ビデオの合成段階に入ることができます。

SD WebUI がクラウドで実行されている場合は、それをアップロードする必要があります。まずローカルで zip ファイルにパッケージ化し、クラウド プラットフォームによって提供される方法でアップロードし、解凍してプロジェクト ディレクトリにコピーします。次のコマンドを参照してください。

unzip -o /root/autodl-tmp/root.zip -d /

-o の後に zip ファイルのディレクトリが続き、-d の後に解凍するディレクトリが続きます。zip ファイルの第 1 レベルのディレクトリは root であるため、ここではスラッシュが使用されています。パスの置き換えに注意してください。 zip ファイルと解凍するディレクトリ。

合成ビデオ

ここで再びエキサイティングなビデオ合成フェーズに入り、SD WebUI の Temporal-Kit ページに戻ります。

この手順は非常に簡単で、「ebsynth を再結合」ボタンをクリックしてビデオが生成されるのを待つだけです。通常の状況では、ビデオに必要なすべてのフレームが処理されているため、速度は非常に速くなります。

以前 Batch-Warp を使用したときは、大量のフレーム画像を生成する必要があり、その時点では処理が遅かったのですが、この記事の方法では、この作業を EBSynth に引き継ぎます。

ダウンロード

この記事で紹介した関連モデル、プラグイン、素材は、記事内の方法に従ってご自身でダウンロードしてインストールすることもできますし、公開アカウント「Yinghuo Walk AI (yinghuo6ai)」をフォローして私が用意したものを使用することもできます。返信: ビデオ スタイルを変換してダウンロード アドレスを取得します。

おすすめ

転載: blog.csdn.net/bossma/article/details/131915719