こんにちは!悠です!
自作LoRAの素材画像を集めている時、学習用に白背景で統一したいことってありますよね。
手作業で1枚1枚行うのは非常に大変ですが、これを一括で処理してくれる拡張機能「sd_katanuki」について今回は紹介していきます。

白背景化だけでなく、背景の透明化や深度マップの作成まで可能です!
背景の透明化ができる拡張機能としては「Rembg」が有名ですが、「sd_katanuki」はその発展版といった感じですね!
「sd_katanuki」の導入方法
Google Colaboratory版の場合
下記の方法で紹介している「maintained by Akaibu」のノートブックを使って、拡張機能「sd_katanuki」を導入していきます。
まだご覧になっていない方は、まず最初にこちらを準備しておいてください。


Google Driveからモデルデータを読み込むセルの下に新しくセルを作成し、下記のコードを入力します。
#sd_katanukiをインストール
%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/aka7774/sd_katanuki /content/stable-diffusion-webui/extensions/sd_katanuki
%cd /content/stable-diffusion-webui
WebUIを起動して、「Katanuki」タブが追加されていれば導入は完了です。
ローカル版の場合
「Extensions」→「Install from URL」の「URL for extension’s git repository」に下記のURLを入力しInstallをクリックしましょう。
https://github.com/aka7774/sd_katanuki
「sd_katanuki」の使い方
拡張機能「sd_katanuki」はReadmeが日本語でわかりやすいため、まずはこちらに目を通しておくことをおすすめします。
画像の単体処理
まずは1枚の画像を指定して背景の処理を行う方法です。
Katanukiタブに移動し、どの機能を使用するかを選択しましょう。
- Transparent:素材画像の背景を透明化
- White:素材画像を白背景化
- Mask:素材画像からdepthの深度マップを作成
Use FP32(for 16X0)は、GTX16X0のGPUを使っている方のみチェックを入れましょう。
Alt modeは基本的にチェックを入れたままで構いませんが、白背景化した際に色がおかしくなる場合は外してみるといいそうです。
利用する機能を選択して、Single Imageタブに素材画像をドラッグアンドドロップするだけで背景の処理が行われます。
【Transparent】
【White】
【Mask】
Maskで作った画像はControlNetのdepthで使用することができます。下の画像はその例です。
モデルにはYuzuを使用しています。
【Mask画像】
【Depthで生成した画像】
画像の複数処理
次に複数枚の画像の背景を一括で処理する方法を紹介します。
素材に使う画像を任意のフォルダ内に格納します。
Readmeによるとwebui直下に保存フォルダを作成するのが良いそうですが、デスクトップ上に配置しても問題なく機能しました。
Directoryタブを開き、Input directoryに素材画像を保存したフォルダのパス、output directoryに背景を処理した画像の出力先フォルダのパスを指定します。
最後にオレンジ色のRunボタンをクリックすると、一括処理が開始されます。

出力画像の例
Layer
Layerタブに関しては、おそらく背景の画像とキャラの画像を用意しておくことで、その2枚を合成することができる機能だと思います。
ただ私の環境ではエラーで動きませんでした(涙)
エラーを解消して利用できるようになったらまた追記します。
おそらく合成した画像をimg2imgで処理することで、かなり自然な仕上がりになるのではないかと思っています。
まとめ
以上が「Stable Diffusion WebUI」で、複数の素材画像の背景を一括で透明化・白背景化してくれる拡張機能「sd_katanuki」の紹介でした。
LoRAの学習に使う素材画像の枚数が少ない(10枚程度の)場合は、背景を白で統一した方が品質が上がるという話もあるのでぜひ試してみてくださいね!
では、ここまで読んでいただきありがとうございました。
コメント