2024/11/11(月) [n年前の日記]
#1 [gimp][cg_tools] GIMPからrembgを呼び出したい
無料で利用できる画像編集ソフト GIMP上で、AIを使って画像の背景を消去することができないものかなと思えてきた。ググってみたところ、Python から利用できる rembg というツールを GIMP から呼び出すことで実現できそうだと知った。
環境は、Windows10 x64 22H2 + Python 3.10.11。GIMP 2.10.34 Portable。
環境は、Windows10 x64 22H2 + Python 3.10.11。GIMP 2.10.34 Portable。
◎ rembgを利用できる状態にする :
GIMP から rembg を利用するためには、どこからでも rembg.exe が呼び出せないといけない。つまり、Python の仮想環境を作ってそこにインストールするのではなく、システムに入っている Python に rembg をインストールしないといけない気がする。たぶん。
実は、仮想環境に rembg をインストールする形でも利用できることが後になって分かったのだけど…。それについては後で書く。
rembg だけ python -m pip install rembg でインストールしてみたものの、rembg --help すら動いてくれなかった。filetype、gradio、asyncer 等々、とにかく色々なモジュールが見つからないと言われてしまう。
ダメ元で、エラーが出るたびに、無いと言われてしまったモジュールをインストールしていった。
その結果、おそらく rembg CPU版は動いたけれど…。せっかくだからと rembg GPU版をインストールしたら、なんだかよく分からない大量のエラーが出て動かない。
過去の日記のメモを参考にして、以下のバージョンで揃えてインストールしたら、動いてくれた。
以下のように打ってインストールした。
この状態なら rembg --help も動いてくれた。
これでようやく、rembg をどこからでも呼び出して使えるようになった。とりあえず、以下のように打てば、in.png の背景を削除して out.png を作ってくれる。
それにしても、足りないモジュールをこうやって安易にインストールしていいのだろうか…? 不安に思ったけれど、どうやらそういうものらしい。
_GIMPで背景の消去を自動化!電脳はさみの代わりにrembgをインストールして綺麗に背景を消去してみた! | 文化東京生活
ちなみに、rembg が使うモデルデータ(.onnx)は、C:\Users\(USERNAME)\.u2net\ 以下に保存される模様。1ファイルあたり170MB前後だった。
実は、仮想環境に rembg をインストールする形でも利用できることが後になって分かったのだけど…。それについては後で書く。
rembg だけ python -m pip install rembg でインストールしてみたものの、rembg --help すら動いてくれなかった。filetype、gradio、asyncer 等々、とにかく色々なモジュールが見つからないと言われてしまう。
ダメ元で、エラーが出るたびに、無いと言われてしまったモジュールをインストールしていった。
その結果、おそらく rembg CPU版は動いたけれど…。せっかくだからと rembg GPU版をインストールしたら、なんだかよく分からない大量のエラーが出て動かない。
過去の日記のメモを参考にして、以下のバージョンで揃えてインストールしたら、動いてくれた。
> pip list | grep -E "rembg|onnx|proto|open-clip-torch" onnx 1.13.0 onnxruntime 1.14.1 onnxruntime-gpu 1.14.1 open-clip-torch 2.16.0 protobuf 3.20.3 rembg 2.0.59
以下のように打ってインストールした。
python -m pip install onnx==1.13.0 onnxruntime==1.14.1 onnxruntime-gpu==1.14.1 open-clip-torch==2.16.0 protobuf==3.20.3 rembg[gpu,cli]
この状態なら rembg --help も動いてくれた。
> which rembg.exe "D:\Python\Python310-64\Scripts\rembg.exe" > rembg --help Usage: python -m rembg [OPTIONS] COMMAND [ARGS]... Options: --version Show the version and exit. --help Show this message and exit. Commands: b for a byte stream as input d download all models i for a file as input p for a folder as input s for a http server
これでようやく、rembg をどこからでも呼び出して使えるようになった。とりあえず、以下のように打てば、in.png の背景を削除して out.png を作ってくれる。
rembg i -m u2net -a -ae 15 in.png out.png
それにしても、足りないモジュールをこうやって安易にインストールしていいのだろうか…? 不安に思ったけれど、どうやらそういうものらしい。
_GIMPで背景の消去を自動化!電脳はさみの代わりにrembgをインストールして綺麗に背景を消去してみた! | 文化東京生活
ちなみに、rembg が使うモデルデータ(.onnx)は、C:\Users\(USERNAME)\.u2net\ 以下に保存される模様。1ファイルあたり170MB前後だった。
◎ 仮想環境を作ってrembgをインストールしてみた :
試しに、venv で仮想環境を作ってから rembg をインストールしてみたところ、特に何もせず、すんなり実行できる状態になった…。今回は X:\aiwork\gimp_plugins\RemoveBG\ 以下にインストールしてみた。
batファイル removebgcall.bat を書いて呼び出せるようにしてみた。これならシステムのPython環境を汚さずに rembg が使える状態にできそう。
以下のような感じで呼び出して使う。
python -m venv venv venv\Scripts\activate python -m pip install rembg[gpu,cli] rembg --help rembg i -m u2net -a -ae 15 in.png out.png deactivate
batファイル removebgcall.bat を書いて呼び出せるようにしてみた。これならシステムのPython環境を汚さずに rembg が使える状態にできそう。
@set REMBGPATH=X:\aiwork\gimp_plugins\RemoveBG cd /d %REMBGPATH% call %REMBGPATH%\venv\Scripts\activate.bat @echo on rembg %1 %2 %3 %4 %5 %6 %7 %8 %9 deactivate
以下のような感じで呼び出して使う。
removebgcall.bat i -m u2net -a -ae 15 in.png out.png
◎ GIMPから呼び出す :
GIMPから呼び出すPythonプラグインについては以下から入手させてもらった。
_GIMPに生成AIを導入するには -Stable Diffusion, remBG- | nhabitslog
RemoveBG.py を入手して、aiExe のパスを、rembg.exe のある場所に変更。大体は、Pythonインストールフォルダ\Scripts\rembg.exe にあるのではないかと…。
RemoveBG.py を、GIMPユーザーフォルダ内の plug-ins/ あたりにコピーしてインストールする。GIMPを起動すると、上のメニュー内に remBG という項目が増えているので、それを選べばダイアログが表示されて背景削除ができるようになる。
RemoveBG.py 内の aiExe のパスを、前述のbatファイルに置き換えてみたところ、そちらでも処理できることが確認できた。つまり、システムの Python にわざわざインストールしなくても、仮想環境を作って、そこに rembg をインストールして利用することは可能、と分かった。
_GIMPに生成AIを導入するには -Stable Diffusion, remBG- | nhabitslog
RemoveBG.py を入手して、aiExe のパスを、rembg.exe のある場所に変更。大体は、Pythonインストールフォルダ\Scripts\rembg.exe にあるのではないかと…。
RemoveBG.py を、GIMPユーザーフォルダ内の plug-ins/ あたりにコピーしてインストールする。GIMPを起動すると、上のメニュー内に remBG という項目が増えているので、それを選べばダイアログが表示されて背景削除ができるようになる。
RemoveBG.py 内の aiExe のパスを、前述のbatファイルに置き換えてみたところ、そちらでも処理できることが確認できた。つまり、システムの Python にわざわざインストールしなくても、仮想環境を作って、そこに rembg をインストールして利用することは可能、と分かった。
◎ 参考ページ :
_rembg - PyPI
_danielgatis/rembg: Rembg is a tool to remove images background
_rembg のインストールと動作確認(画像の背景除去)(Python を使用)(Windows 上)
_簡単に背景除去する (Background remove) #Python - Qiita
_Rembgを使って画像を切り取ってみた - Minerva
_【背景自動透過ツール】Rembgを利用してみた - 環境立ち上げと動作確認 - しーさん
_【remove.bgレベル】画像の背景透過ツールRembgのインストール | ジコログ
_[Windows×Python] バッチファイルで仮想環境をアクティベートしてPythonファイルを実行する #コマンドプロンプト - Qiita
_Tech-Archive/gimp-rembg-plugin: Remove Backgrounds With AI & GIMP
_GIMPに生成AIを導入するには -Stable Diffusion, remBG- | nhabitslog
_GIMPで背景の消去を自動化!電脳はさみの代わりにrembgをインストールして綺麗に背景を消去してみた! | 文化東京生活
_How to Install the rembg Plugin in GIMP for AI-Powered Background Removal | by Tech Archive | Sep, 2024 | Medium
_danielgatis/rembg: Rembg is a tool to remove images background
_rembg のインストールと動作確認(画像の背景除去)(Python を使用)(Windows 上)
_簡単に背景除去する (Background remove) #Python - Qiita
_Rembgを使って画像を切り取ってみた - Minerva
_【背景自動透過ツール】Rembgを利用してみた - 環境立ち上げと動作確認 - しーさん
_【remove.bgレベル】画像の背景透過ツールRembgのインストール | ジコログ
_[Windows×Python] バッチファイルで仮想環境をアクティベートしてPythonファイルを実行する #コマンドプロンプト - Qiita
_Tech-Archive/gimp-rembg-plugin: Remove Backgrounds With AI & GIMP
_GIMPに生成AIを導入するには -Stable Diffusion, remBG- | nhabitslog
_GIMPで背景の消去を自動化!電脳はさみの代わりにrembgをインストールして綺麗に背景を消去してみた! | 文化東京生活
_How to Install the rembg Plugin in GIMP for AI-Powered Background Removal | by Tech Archive | Sep, 2024 | Medium
[ ツッコむ ]
以上、1 日分です。