Stable Diffusionで生成した画像の背景部分を切り抜いて透過させたい。そんなお悩みありませんか。
Stable Diffusionは画像生成ならなんでもできそうに見えますが、Stable Diffusionは最初から背景が全くないものを生成することはできないのです。
仕様だから仕方ありませんが、抜け道があります。
いちど生成した画像から背景を削除するという技です。これを実現してくれる拡張機能「ABG Remover」をご紹介します。
Stable Diffusionで背景が透過した画像を作る方法
ABG Remover の使い方は簡単です。
拡張機能である[ABG Remover]をインストールした上で[Generate]するだけです。
まずはStable Diffusionを起動しましょう。
Stable Diffusionの使い方がわからない方は別記事をご覧ください。
ABG Removerとは
ABG Removerとは生成画像から背景を消し、人物だけを切り抜くことができるツールです。
txt2imgで生成した画像だけでなく、img2imgで読み込んだ元絵を使った画像生成にも対応しています。
背景なし画像にしたい場合、単色無地の『simple background』や白地の『white background』などのプロンプトが使えます。
拡張機能のインストール
まずは拡張機能をインストールしましょう。
[ABG Remover]はGitHub – KutsuyaYuki/ABG_extensionからダウンロードできます。自前のPCにStable Diffusionをインストールしている場合は、操作画面を開きます。
画面右上の[Extension]のタブをクリック
https://github.com/KutsuyaYuki/ABG_extension.git
[Install from URL]の枠内に上のURLをコピペしてください。
[Install]ボタンをクリックするだけで自動でインストールが始まります。
[installed]のタブに移動し、[Apply and restart UI]ボタンをクリックするとStable Diffusionが再起動され、拡張機能が追加されます。
再起動後、操作画面の左下にある『script』の中にABG Removerという項目が追加されていれば導入完了です。
Google ColabからStable Diffusionを利用している人は、起動時に下記をコピペして実行すれば「ABG Remover」インストールした状態で立ち上がります。
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
!git clone https://github.com/KutsuyaYuki/ABG_extension /content/stable-diffusion-webui/extensions/a1111-sd-webui-tagcomplete
%cd /content/stable-diffusion-webui
!wget https://huggingface.co/Kotajiro/yayoi_mix/resolve/main/yayoi_mix_v20.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/yayoi_mix_v20.safetensors
!python launch.py --share --xformers --enable-insecure-extension-access
背景なしにする手順
txt2imgで画像を生成する場合は、[Script]欄で[ABG Remover]を指定した上で[Generate]ボタンをクリックします。
img2imgで読み込んだ元絵から新たに画像を生成する場合も同様です。
操作画面の[Script]欄から[ABG Remover]を選択して[Generate]ボタンをクリックします。
境界線部分のディテールにこだわりたい場合は、[Denoising strength(ノイズ除去の強さ)]の値を0.01くらいの低い値に設定してみましょう。
Denoising strengthが高い値に設定されていると、イメージが異なる画像が生成されやすくなります。
ABG Removerには以下の4つの設定があります。
- Only save background free pictures
- Do not auto save
- Custom Background
- Random Custom Background
「Only save background free pictures」にはチェックを入れます。
こうすることで背景削除済みの絵だけが保存されます。
Stable Diffusionはこの作業で、[ABG Remover]を使ってマスク画像も含めて複数枚の画像を作成します。
- 生成画像(背景付き)
- マスク画像:生成した人物と背景の境目を判別するために生成した[深度マップ]画像
- 人物だけが切り抜かれた画像
背景を削除したいだけなら、背景付きもマスク画像も不要なので、切り抜き画像だけ保存すればいいというわけです。
単色の背景を生成する方法
ABG Removerでは、背景透過だけでなく、背景の色を黒や白などの他の単色にすることもできます。
ABG Removerの設定項目を調整することで背景色を変えることができます。
Custom Background
削除した背景を透明にする代わりに、指定した色で塗りつぶします。
Random Custom Background
削除した背景を透明にする代わりに、ランダムな色で塗りつぶします。
例えば、背景を白色に設定したい場合は『Custom Background』にチェックを入れた状態で『Background Color』で白を選択しましょう。
まとめ
背景を完全にきれいに削除できない場合は、Photoshopなどの画像編集ソフトを使うことでよりクリアな透過画像を作ることができます。
able Diffusionで背景なしにする拡張機能は、このほかに
- rembg
- sd_katanuki
- u2netp
などがあります。
https://github.com/AUTOMATIC1111/stable-diffusion-webui-rembg.git
Stable Diffusionの拡張機能『Rembg』の使い方!簡単に背景透過しよう | Romptn Magazine
https://github.com/aka7774/sd_katanuki
WebUIのsd_katanuki導入方法と使い方!~簡単背景透過&白背景化!?~ | あきとのぶろぐ
一長一短があるようなので、興味のある人は参考にしてみてはいかがでしょうか。
こんにちは、フルタニです。放送局で番組作りをしてました。 ABG Remover を書きます。