【Stable Diffusion】AIイラスト生成時の途中経過を各ステップ毎に保存できる拡張機能「sd_save_intermediate_images」の紹介!

こんにちは!悠です!

 

今回は「Stable Diffusion WebUI」で、AIイラスト生成時の途中経過を各ステップ毎に保存できる拡張機能「sd_save_intermediate_images」について紹介していきます。

中間画像を保存することで、自分が生成したいイラストに最適なステップ数の考察に役立てることができますよ!

下のRedditのスレッドのように、イラストの生成工程を動画化することも可能です!

 

Watch your creation come to live with "Save intermediate images" extension for Automatic1111
by u/vs3a in StableDiffusion

 

アイキャッチ画像はモデルに「MomijiMix」、LoRAに「flat2」を使用しています。
スポンサーリンク
スポンサーリンク

「sd_save_intermediate_images」の導入方法

GitHub - AlUlkesh/sd_save_intermediate_images: Save intermediate images during the sampling process
Save intermediate images during the sampling process - GitHub - AlUlkesh/sd_save_intermediate_images: Save intermediate images during the sampling process

 

Google Colaboratory版の場合

下記の方法で紹介している「maintained by Akaibu」のノートブックを使って、拡張機能「sd_save_intermediate_images」を導入していきます。

まだご覧になっていない方は、まず最初にこちらを準備しておいてください。

【Stable Diffusion】AUTOMATIC1111のWebUIをGoogle Colaboratory上で使う方法!【maintained by Akaibu】
「Stable Diffusion」で、「AUTOMATIC1111」が用意しているノートブック「maintained by Akaibu」を使って、Google Colaboratory上で自分の好きなモデルデータやLoRAを使用する方法についてまとめた記事です。
【Stable Diffusion】AUTOMATIC1111のColab版でLoRAを使う方法について紹介!【maintained by Akaibu】
AUTOMATIC1111のColab版「maintained by Akaibu」でLoRAを使う方法についてまとめた記事です。2.5D風AIコスプレイヤーを作成できる「KoreanStyle2.5D」も紹介しています。

 

Google Driveからモデルデータを読み込むセルの下に新しくセルを作成し、下記のコードを入力します。

#sd_save_intermediate_imagesをインストール
%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/AlUlkesh/sd_save_intermediate_images /content/stable-diffusion-webui/extensions/sd_save_intermediate_images

%cd /content/stable-diffusion-webui

 

WebUIを起動して、txt2imgタブに「Save Intermediate Images」が表示されていれば導入成功です。

 

ローカル版の場合

「Extensions」→「Install from URL」の「URL for extension’s git repository」に下記のURLを入力しInstallをクリックしましょう

https://github.com/AlUlkesh/sd_save_intermediate_images

 



「sd_save_intermediate_images」の使い方

 

中間画像を保存する方法

まずSettingsタブにあるLive previewsを開き、Image creation progress preview modeFullに設定します。

初期設定のApprox NNのままだと、中間画像のサイズが128×96程度に縮小されてしまうので注意してください。

 

ちなみにShow live previews of the created imagesはオフにしておいて構いません。

この機能を無効化しておくことで、若干ですがAIイラストの生成速度が速くなります。

 

txt2imgタブにあるSave intermediate imagesの項目を開いて、Save intermediate imagesにチェックを入れ、Save every N imagesに任意の数(全ステップの画像を保存したい場合は1)、ModeをStandard operationに設定します。

 

これでGenerateボタンを押すと、中間画像が「~\outputs\txt2img-images\2023-xx-xx\intermediates」の中に保存されます。

 

中間画像を繋げて動画に変換する方法

ffmpegというツールを使うことで、上で紹介したRedditのスレッドのように中間画像を繋げて1つの動画にすることができます。

後述するffmpegのパスを通した後、拡張機能内のmodeをMake a video fileにすることでも動画を生成できるようなんですが、私の場合はどうやっても無理でした。おそらく「venv内にパスを通す必要があるのかな?」と考えていますが詳しくは不明です。もしやり方をご存知でしたらコメント欄で教えてください!

 

なおこの項はローカルPC専用のやり方になっています。Colabでffmpegを使えるのかどうかは試していません。

下記のGithubのページにアクセスし、右端のReleasesにあるlatest buildをクリックします。

 

「ffmpeg-master-latest-win64-gpl.zip」をダウンロードして解凍し、任意の場所に配置します。

私はCドライブ直下に置きました。

 

ffmpegを使うにはパスを通す必要があります。binフォルダ内の3つのexeファイルがある部分のパスです。

 

Windowsキーをクリックして「env」と入力し、「システム環境変数の編集」をクリックします。

 

「環境変数」をクリックします。

 

ユーザーの環境変数にあるPathを選択し、「編集」をクリックします。

 

「新規」をクリックして、ffmpegの3つのexeファイルが保存されているbinフォルダのパスを貼り付けます。

 

これでffmpegを使う準備はOKです。

 

中間画像が保存されているフォルダ内の検索欄にcmdと入力してコマンドプロンプトを起動し、

 

下記のコマンドを入力します。(参考記事

ffmpeg -r 5 -i 00003-%03d-3386530125.png -vcodec libx264 -pix_fmt yuv420p out.mp4

 

「00003-%03d-3386530125.png」の部分は、中間画像の名前に応じて適宜調整してください。

-rの後の数は出力動画のフレームレートです。25程度がおすすめです。

 

参考までに私が出力した動画をご紹介いたします。

 

まとめ

以上が「Stable Diffusion WebUI」で、AIイラスト生成時の途中経過を各ステップ毎に保存できる拡張機能「sd_save_intermediate_images」の紹介でした。

中間画像を繋げて動画にしてみると、AIがどんな感じでイラストを生成しているのかがわかって面白いですよ!

ぜひ皆さんも試してみてくださいね!

 

では、ここまで読んでいただきありがとうございました。

コメント