mieki256's diary



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。

rembgを利用できる状態にする :

GIMP から rembg を利用するためには、どこからでも rembg.exe が呼び出せないといけない。つまり、Python の仮想環境を作ってそこにインストールするのではなく、システムに入っている Python に rembg をインストールしないといけない気がする。たぶん。

実は、仮想環境に 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\ 以下にインストールしてみた。
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 をインストールして利用することは可能、と分かった。

参考ページ :


以上です。

過去ログ表示

Prev - 2024/11 -
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project