BiRefNet for background removal をローカルマシンで実行する

BiRefNet for background removal をローカルマシンで実行する手順を紹介します。

概要

高性能な背景削除方式である、Bilateral Reference for High-Resolution Dichotomous Image Segmentation を実装した、BiRefNetがリリースされました。 (https://github.com/ZhengPeng7/BiRefNet)
BiRefNetをローカルで実行して画像の背景削除処理を実行します。

ローカルでの実行方法は複数ありますが、簡単にセットアップできるStable Diffusion WebUI Forge を利用する方法、 ComfyUIを利用する方法をこの記事では紹介します。

ComfyUIを利用する場合

事前準備

ComfyUIをインストールします。インストール手順はこちらの記事を参照してください。

ComfyUI-RMBGのインストール

ComfyUI-RMBGをインストールします。ComfyUIを起動し上部の[Manager]ボタンをクリックします。 ComfyUI Manager ダイアログが表示されます。[Custom Nodes Manager]ボタンをクリックします。
BiRefNet for background removal をローカルマシンで実行する:画像1

カスタムノードの一覧リストが表示されます。
BiRefNet for background removal をローカルマシンで実行する:画像2

ダイアログ上部の[Search]テキストボックスに"BiRefNet"を入力します。フィルタされたカスタムノードの一覧が表示されます。
BiRefNet for background removal をローカルマシンで実行する:画像3

[ComfuUI-RMBG]の項目の[Install]ボタンをクリックします。
BiRefNet for background removal をローカルマシンで実行する:画像4

バージョンの選択ダイアログが表示されます。今回は[latest]の項目を選択します。[Select]ボタンをクリックします。
BiRefNet for background removal をローカルマシンで実行する:画像5 BiRefNet for background removal をローカルマシンで実行する:画像6

インストールが始まります。
BiRefNet for background removal をローカルマシンで実行する:画像7

インストールが完了すると下図の画面になります。ダイアログ左下の[Restart]ボタンをクリックしてComfyUIを再起動します。
BiRefNet for background removal をローカルマシンで実行する:画像8

再起動すると各種ファイルのダウンロードがあります。長時間反応しなくなってしまった場合は一度ComfuUIを閉じて、再起動します。
BiRefNet for background removal をローカルマシンで実行する:画像9

再起動できました。
BiRefNet for background removal をローカルマシンで実行する:画像10

ライブラリの更新

次のコマンドを実行します。UTF-8モードにしないとエラーが発生する場合があります。

chcp 65001
set PYTHONUTF8=1
(ComfyUIの配置ディレクトリのパス)\python_embeded\python.exe -m pip install -r (ComfyUIの配置ディレクトリのパス)\ComfyUI\custom_nodes\comfyui-rmbg\requirements.txt

BiRefNetで背景を削除する

新規のワークフロー画面を作成します。

BiRefNet for background removal をローカルマシンで実行する:画像11

下図のワークフローを作成します。
BiRefNet for background removal をローカルマシンで実行する:画像12

[BiRefNet 背景削除(RMBG)]のノードは、[ノードを追加] > [AILab] > [RMBG] > [BiRefNet 背景削除(RMBG)] にあります。
BiRefNet for background removal をローカルマシンで実行する:画像13

[画像を読み込む (RMBG)]のノードは、[ノードを追加] > [AILab] > [IMAGE] > [画像を読み込む (RMBG)] にあります。
BiRefNet for background removal をローカルマシンで実行する:画像14

[画像プレビュー (RMBG)]のノードは、[ノードを追加] > [AILab] > [IMAGE] > [画像プレビュー (RMBG)] にあります。
BiRefNet for background removal をローカルマシンで実行する:画像15

[画像を保存]のノードは、[ノードを追加] > [画像] > [画像を保存] にあります。
BiRefNet for background removal をローカルマシンで実行する:画像16

設定ができたら、[画像を読み込む (RMBG)]のノードに入力画像を設定し[実行する]ボタンをクリックします。 実行後の結果は下図です。右側に背景が除去された画像が表示できています。
BiRefNet for background removal をローカルマシンで実行する:画像17

BiRefNetで背景を削除する (旧)

新規のワークフロー画面を作成します。
BiRefNet for background removal をローカルマシンで実行する:画像18

背景部分で右クリックし、[ノードを追加]>[AILab]>[RMBG]とたどり、[BiRefNet 背景削除 (RMBG)]の項目をクリックします。
BiRefNet for background removal をローカルマシンで実行する:画像19 BiRefNet for background removal をローカルマシンで実行する:画像20

[BiRefNet 背景削除 (RMBG)]のノードが追加できました。
BiRefNet for background removal をローカルマシンで実行する:画像21

続いて画像の読み込みと保存のノードを作成します。 背景部分で右クリックし、[ノードを追加]>[画像]とたどり、[画像を読み込む]の項目をクリックします。
BiRefNet for background removal をローカルマシンで実行する:画像22 BiRefNet for background removal をローカルマシンで実行する:画像23

画像を読み込むノードが追加できました。
BiRefNet for background removal をローカルマシンで実行する:画像24

背景部分で右クリックし、[ノードを追加]>[画像]とたどり、[画像を保存]の項目をクリックします。
BiRefNet for background removal をローカルマシンで実行する:画像25 BiRefNet for background removal をローカルマシンで実行する:画像26

画像を保存ノードが追加できました。
BiRefNet for background removal をローカルマシンで実行する:画像27

同じ手順で画像を保存ノードをもう一つ追加します。 [画像を読み込む]ノードの[画像]と[BiRefNet 背景削除 (RMBG)]のノードの左側の[画像]を接続します。 [BiRefNet 背景削除 (RMBG)]のノードの右側の[画像]と[画像を保存]ノードの[画像]を接続します。 [BiRefNet 背景削除 (RMBG)]のノードの右側の[MASK_IMAGE]ともう一つの[画像を保存]ノードの[画像]を接続します。(下図参照)
BiRefNet for background removal をローカルマシンで実行する:画像28

[画像を読み込む]ノードに背景を抜きたい画像を読み込みます。今回は下図の画像とします。
BiRefNet for background removal をローカルマシンで実行する:画像29

[実行する]ボタンをクリックします。BiRefNetによる背景の除去処理が始まります。
BiRefNet for background removal をローカルマシンで実行する:画像30

結果が[画像を保存]のノードに表示されます。また、出力ディレクトリに結果の画像が保存されます。
BiRefNet for background removal をローカルマシンで実行する:画像31

結果は下図です。
背景削除結果
背景削除結果 - BiRefNet for background removal をローカルマシンで実行する:画像32

マスク
マスク - BiRefNet for background removal をローカルマシンで実行する:画像33

元画像
元画像 - BiRefNet for background removal をローカルマシンで実行する:画像34

Stable Diffusion WebUI Forgeを利用する場合

事前準備

Stable Diffusion WebUI Forge をインストールします。インストール手順はこちらの記事を参照してください。

BiRefNetのインストール

Stable Diffusion WebUI Forge を起動します。画面上部のタブの[Spaces]のタブをクリックして選択します。 下図の画面に切り替わります。
BiRefNet for background removal をローカルマシンで実行する:画像35

[Image Processing: Matting, Saliency, and Background Removal]の枠の[BiRefNet for Background Removal]の項目の[Install]ボタンをクリックします。
(下図では上から2番目の項目です。)
BiRefNet for background removal をローカルマシンで実行する:画像36

クリックすると、BiRefNet のインストールが始まります。
インストールが完了すると、下図の画面になり、[Lauch]ボタンが有効になります。
BiRefNet for background removal をローカルマシンで実行する:画像37

BiRefNetのWebUIの起動

[BiRefNet for Background Removal]の項目の[Launch]ボタンをクリックします。
BiRefNet for background removal をローカルマシンで実行する:画像38

Webブラウザの新しいタブが開かれ、下図のページが表示されます。BiRefNetのWeb UIが起動できました。
BiRefNet for background removal をローカルマシンで実行する:画像39

背景を削除する

背景を削除します。左側の[ここに画像をドロップ -または- クリックしてアップロード] の枠に画像をドロップするか、 枠をクリックし、表示されるファイル選択ダイアログで画像を選択します。画像が選択できた状態が下図です。
BiRefNet for background removal をローカルマシンで実行する:画像40

[Submit]ボタンをクリックします。画像が処理され、背景が削除された画像が右側に表示されます。
BiRefNet for background removal をローカルマシンで実行する:画像41

右側のエリアで背景のある部分との境界をドラッグして背景がある画像との比較ができます。 一部の領域は背景が白いままとなっており、削除できなかった部分もあることがわかります。
BiRefNet for background removal をローカルマシンで実行する:画像42

背景を削除した画像を保存する場合は、右側のエリアで右クリックし、ポプアップメニューの[名前を付けて画像を保存]の項目をクリックします。 ファイル保存ダイアログが表示されますので、保存します。
(右側エリア右上のダウンロードボタンをクリックして保存した場合、背景が透過されない画像がダウンロードされます。)
BiRefNet for background removal をローカルマシンで実行する:画像43

保存したPNGファイルを画像編集アプリケーションで表示します。背景が透過状態であることが確認できます。
BiRefNet for background removal をローカルマシンで実行する:画像44

背景色を黒色にした状態です。きれいに背景が削除できていますが、若干もやのように、白背景が残ってしまっている部分もあります。
BiRefNet for background removal をローカルマシンで実行する:画像45

結果の比較

ほかの背景除去と比較します。
RemBG isnet-anime は境界部分がシャープに除去できていますが、細かい部分は消し過ぎて削れている印象があります。 Photsohopの選択ツールもアンチエイリアスがかかりますが、やや粗い部分が出てしまいます。
BiRefNetは境界のシャープさは若干落ちますが、消し過ぎて削れてしまっている部分が少ない印象です。 今回、白背景で背景を削除して黒背景に合成したことで、色の差が大きくなり境界部分の荒さが目立つ結果となりました。
実際の利用シーンで、より品質を高めるためには、最終イメージで使用する背景色に近い色で元の画像を生成すると良さそうです。

BiRefNet
BiRefNet - BiRefNet for background removal をローカルマシンで実行する:画像46
RemBG isnet-anime
RemBG isnet-anime - BiRefNet for background removal をローカルマシンで実行する:画像47
Photoshop自動選択ツール
Photoshop自動選択ツール - BiRefNet for background removal をローカルマシンで実行する:画像48

モデルの違い

ComfyUIの場合、BiRefNetのノードでBiRefNetのモデルを選択できます。種類がいくつかあるので違いを紹介します。
BiRefNet for background removal をローカルマシンで実行する:画像49

モデル 説明
BiRefNet-general 一般的な画像セグメンテーション向けの標準モデル。標準解像度(1024x1024)での利用を想定
BiRefNet_512x512 512x512の解像度でトレーニングされたモデル
BiRefNet-HR 高解像度(2048x2048)画像向けに最適化されたモデル
BiRefNet-portrait 人物ポートレート画像に特化したモデル。顔や髪の輪郭を精密に抽出できる
BiRefNet-matting マッティングモデル。マスクに透明度を含みます。
BiRefNet-HR-matting マッティングモデルの高解像度版。マスクに透明度を含みます。
BiRefNet_lite 軽量モデル
BiRefNet-lite-2K 高解像度(2560x1440)向け軽量モデル

マッティングモデル

マッティングモデルを利用するとマスクに透明度が入るため、境界が滑らかになります。一方で、境界のシャープ感は落ちます。

背景削除結果(マッティング)
背景削除結果(マッティング) - BiRefNet for background removal をローカルマシンで実行する:画像50
マスク(マッティング)
マスク(マッティング) - BiRefNet for background removal をローカルマシンで実行する:画像51
元画像
元画像 - BiRefNet for background removal をローカルマシンで実行する:画像52


別の背景と合成した結果です。毛先などマッティングモデルのほうが自然に合成できていることが確認できます。

BiRefNet-general
BiRefNet-general - BiRefNet for background removal をローカルマシンで実行する:画像53
BiRefNet-matting
BiRefNet-matting  - BiRefNet for background removal をローカルマシンで実行する:画像54
AuthorPortraitAlt
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。 最近は生成AIの画像生成の沼に沈んでいる。
作成日: 2024-08-28
Copyright © 1995–2025 iPentec all rights reserverd.