【AI】画像の背景除去ができる拡張機能やツールまとめ
画像生成AIのhow to記事です。
今回は背景切り抜きができる拡張機能やツールをまとめて紹介します。
■プロフィール
自サークル「AI愛create」でAIコンテンツの販売・生成をしています。
クラウドソーシングなどで個人や他サークル様からの生成依頼を多数受注。
実際に生成した画像や経験したお仕事から有益となる情報を発信しています。
詳細はこちら(🔞コンテンツが含まれます)
➡️lit.link
メンバーシップ(月額500円)に加入して頂くと、メンバー限定記事と300円以下の有料記事は読み放題です。
Rembg
おそらく一番メジャーなツールです。
u2netモデルを使用した背景処理が可能で、さまざまなプラットフォームで使えます。
WebUI(A1111・reforge)
新Forgeはなんかエラーが出て使えませんでした。
・インストール
Extensions→Install from URL→URL for~にgithubのURLを入力してinstallをクリックします。
https://github.com/AUTOMATIC1111/stable-diffusion-webui-rembg.git
再起動してExtrasにRemove backgroundがあればインストール完了です。
・使い方
Extrasタブで何らかの画像をセットします。
Remove backgroundにチェックを入れてタブを開きます。
Remove backgroundからモデルを選択してGenerateを実行すると背景が切り抜けます。
またモデルによって処理速度や精度、服だけ抜いたりなど用途が異なります。
・u2netで処理した画像
Return maskにチェックを入れるとマスクだけ返してくれます。
Alpha mattingにチェックを入れると切り抜き度合いを調整できます。
・Erode size:切り抜きの境界部分を「削る」量
被写体の周りに背景が残っている場合、値を調整すると上手く抜けるかもしれません。
・Foreground threshold:アルファ値(透明度)が高い部分をどの程度「前景」として扱うかを指定
値を高くすると、被写体の境界付近や半透明部分が「背景」として認識されやすくなる。
・アルファ値(透明度)が低い部分をどの程度「背景」として扱うかを指定
値を低くすると、背景として認識される部分が減り、前景と混ざった部分が背景から外れる可能性がある。
ComfyUI
ComfyUIはシンプルなrembg-comfyui-nodeやrembg-comfyui-node-betterというカスタムノードがあったのですが、現在のバージョンに対応していない?のかnodeが使えません。
現状rembgで処理できるものだとComfyUI-GeekyRemBがあります。
ComfyUI-Managerをインストールしている方は、Manager→Custom Nodes Manager→検索にComfyUI-GeekyRemBと入力してinstallしてください。
手動の場合はターミナルを開き、カスタムノードのパスに移動してからクローンします。
cd C:\ComfyUI_windows_portable_nvidia\ComfyUI_windows_portable\ComfyUI\custom_nodes
git clone https://github.com/GeekyGhost/ComfyUI-GeekyRemB.git
インストール後はリスタートしてください。
あとはLoad image、Geeky RemB、Preview Imageのノードを追加します。
右クリック、または空白部分をダブルクリックしてキーワード入力すると該当のノードを追加できます。
あとはこんな感じで繋げれば背景処理が可能です。
基本的にはA1111の拡張機能と同じく、モデルを切り替えればさまざまな用途で使用できます。
パラメータの使い方など詳細は公式で確認してください。
Python
ターミナルを開いてrembgをインストールします。
pip install rembg[cli]
あとは「rembg i 元画像のパス 出力先のパス」で実行可能です。
rembg i "C:\sample.jpg" "C:\sample1.jpg"
これで実行するとCドライブにあるsample.jpgに背景処理が行われ、sample1.jpgとして保存されます。
pythonファイルやnotebookでも使用可能です。
from rembg import remove
from PIL import Image
input_path = 'input.jpg' #ここに元画像のファイル
output_path = 'output.png' #ここに出力先のファイル
with open(input_path, 'rb') as i:
with open(output_path, 'wb') as o:
o.write(remove(i.read()))
ABG Remover(拡張機能)
ABG Removerもu2netモデルで背景処理ができます。
anime-remove-backgroundをWebUIで使えるようにしたもので、名前の通りアニメキャラの切り抜きに適している?ようです。
ただ個人的にあまり精度の違いはわかりませんでした。
あとABG Removerは新forgeでも使えます。
・インストール
Extensions→Install from URL→URL for~にgithubのURLを入力してinstallをクリックします。
https://github.com/KutsuyaYuki/ABG_extension.git
再起動してimg2imgタブを開き、scriptにABG Removerがあればインストールは完了です。
・使い方
img2imgに画像を取り込みます。
Resize toで画像サイズを同じにします。
Denoising strengthを0.1にします。
あとはScriptでABG Removerを選んで、実行するだけです。
デフォルトのままだと3つ(元画像・マスク・背景処理)が出力されます。
背景処理されたものだけで良ければ「Only save background free pictures」にチェックを入れてください。
Custom Backgroundにチェックを入れると、Background Colorで指定した色を背景にできます。
Random Custom Backgroundはランダムで背景が設定されます。
BiRefNet
BiRefNetはu2netより高精度処理が可能なモデルです。
u2netの方が動作は軽いですが、BiRefNetの方が切り抜き精度は良いと言われています。
WebUI(A1111・forge・reforge)
・インストール
Extensions→Install from URL→URL for~にgithubのURLを入力してinstallをクリックします。
https://github.com/dimitribarbot/sd-webui-birefnet.git
再起動してExtrasタブを開き、「Remove background with BiRefNet」のタブが追加されていればインストール完了です。
・使い方
Extrasタブで画像を取り込みます。
Remove background with BiRefNetにチェックを入れてタブを開きます。
処理に使用するモデルを選択します。基本のモデルはGeneralです。
これで実行すると背景を切り抜けます。
rembgの処理と並べて見ると精度の違いが分かりやすいです。
左:rembg
右:BiRefNet
オプションでリサイズしたり、出力画像を選択できるので、用途に合わせて使い分けてみてください。
ComfyUI
ComfyUI-Managerをインストールしている方は、Manager→Custom Nodes Manager→検索にBiRefNetと入力してください。
基本のBiRefNetや派生したものが出てきますが、私の環境だとComfyUI_BiRefNet_llしか動きませんでした。
なのでこの記事ではComfyUI_BiRefNet_llを使った処理を紹介します。
ComfyUI_BiRefNet_llをインストールしてください。
手動の場合はターミナルを開き、カスタムノードのパスに移動してからクローンします。
cd C:\ComfyUI_windows_portable_nvidia\ComfyUI_windows_portable\ComfyUI\custom_nodes
git clone https://github.com/lldacing/ComfyUI_BiRefNet_ll.git
インストール後はリスタートしてください。
以下のパスにworkflowがあるのでComfyUIに取り込みます。
C:\ComfyUI_windows_portable_nvidia\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_BiRefNet_ll\example
githubからダウンロードも可能。
https://github.com/lldacing/ComfyUI_BiRefNet_ll/blob/main/example/workflow_base.png
なお、取り込むと画像処理と動画処理に分かれており、下の動画処理はノードが一部使えずに動きませんでした。
画像の切り抜きだけで良ければ下のGroupは削除してください。
Ctrl+範囲選択でノードを選択後、Deleteで削除可能です。
あとはLoad imageに画像を取り込んで実行するだけです。
モデルは初回使用時に自動的にダウンロードされます。
Transparent-Background
こちらはRembgやBiRefNetとも異なる「InSPyReNet」というモデルを使用して背景除去ができます。
スタンドアローン
まずリポジトリをローカルにクローンします。
git clone https://github.com/plemeri/transparent-background
transparent-backbroundに移動します。
cd transparent-backbround
仮想環境を作成してアクティベートします(任意)
python -m venv venv
venv/scripts/activate
依存関係をインストールします。
pip install --extra-index-url https://download.pytorch.org/whl/cu118 .
インストールが終わったら以下のコマンドでGUIが起動できます。
transparent-background-gui
GUIのopen filesから切り抜きたい画像を取り込みます。
Open destinationで出力先を指定できます。
あとはProcessをクリックすれば実行可能です。
Typeで出力する形式を変えられます。
rgba:背景除去
map:マスクのみ
green:グリーンバック
white:白背景
blue:背景をぼかす
overlay:マスクを重ねて出力
custum:任意の色を指定(RBG)
なお、動画も取り込んで処理が可能です。
ただrgbaは使えないのでgreenなどで出力し、編集ソフトのクロマキーで抜くとかが一般的かもしれません。
・お借りした動画
https://www.pexels.com/ja-jp/video/3959704/
・greenで処理した動画
ComfyUI
ComfyUI-Managerをインストールしている方は、Manager→Custom Nodes Manager→検索にComfyUI-Inspyrenet-Rembgと入力してinstallしてください。
手動の場合はターミナルを開き、カスタムノードのパスに移動してからクローンします。
cd C:\ComfyUI_windows_portable_nvidia\ComfyUI_windows_portable\ComfyUI\custom_nodes
git clone https://github.com/john-mnz/ComfyUI-Inspyrenet-Rembg.git
インストール後はリスタートしてください。
workflowはgithubのbasic workflowにある「inspyrenet-rembg-basic-workflow.json」からダウンロードできます。
ComfyUIに取り込んでください。
https://github.com/john-mnz/ComfyUI-Inspyrenet-Rembg?tab=readme-ov-file#basic-workflow
あとはLoad imageに画像をセットして実行すれば背景除去とマスクで出力できます。
オンラインツール
photoroom
無料で使える背景除去ツールです。
上記のような方法が面倒な場合は、画像を取り込むだけで簡単に処理できます。
ただ処理後は元の画像サイズでダウンロードはできず、リサイズされます。
remove.bg
こちらも同じオンラインで使える背景除去ツールです。
ほぼphotoroomと同じですが、こっちはphotoroomより解像度が小さくなります。
以上画像の背景除去ができる拡張機能やツールをまとめて紹介しました。
他にもいっぱいあるのですがうまく使えなかったり、試せてないものがあるので、触れたら徐々に追加してこうと思います。
当サークルではこのようなAIに関するさまざまな情報を発信しています。
メンバーシップに加入して頂くと一部の有料記事は読み放題です。
AI技術の向上、マネタイズ方法などに興味がある方は、ぜひご検討ください。
もしこの記事が少しでも役に立った場合は、いいねやフォローして頂けると励みになります。
最後まで読んでいただき、ありがとうございました。