mieki256's diary



2024/06/29() [n年前の日記]

#1 [cg_tools] Lama CleanerをWindows10にインストールしてみた

画像の一部を消去/除去できるツール、Lama Cleaner を、Windows10 x64 22H2にインストールしてみた。

Webブラウザ上で、以下のような画面が表示される。エクスプローラ等から画像をドラッグアンドドロップすれば画像を操作できる状態になる。

lamacleaner_ss01.png


以下のような感じで、画像の一部を除去/消去できる。

lamacleaner_ss02.gif

lamacleaner_ss03.gif


動作確認環境は以下。

スタンドアローン版をインストール :

以下を参考にして、単体で動作する版をインストールしてみた。

_邪魔な部分を簡単除去 - Lama Cleaner|るぺったん

git と Python 3.10 が必要らしい。自分の環境は以下を入れていた。
> git --version
git version 2.45.1.windows.1

> python --version
Python 3.10.10

インストールと起動を容易にするためのbatファイルが公開されていたので利用させてもらうことにした。ありがたや。

_SdWebUiTutorial/LamaCleaner.bat at main - Zuntan03/SdWebUiTutorial

LamaCleaner.bat を入手。DOS窓を開いて、LamaCleaner.bat を実行。今回は、C:\aiwork\lama-cleaner\ を作成して、その中に入れた。

やってることは、カレントディレクトリ内にToolディレクトリを作成して、中に Python の仮想環境を作成して、そこに色々インストールしていくらしい。最終的には 4.7GB ぐらいになった。

NumPyでエラーが出る :

インストールできたように見えたのだけど、LamaCleaner.bat を実行すると、以下のエラーが出て使えない。
A module that was compiled using NumPy 1.x cannot be run in NumPy 2.0.0 as it may crash.
To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.
If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

NumPy 1.x用のモジュールは、2.x で使えない、と言ってきてるっぽい。ググってみたら、2024/06 に NumPy 2.0.0 が公開されたようで…。

解決策をググったら、以下のページに遭遇。

_Python で numpy を使おうとして使えない場合の対処策(Windows 上)

Python の仮想環境に入って、NumPy を一度アンインストールしてから、バージョンを指定して再インストールすればいいのかな。2024/06/029現在の、NumPy 1.x の最終バージョンは 1.26.4 らしいので、ひとまずそのバージョンをインストールしてみることにする。

仮想環境に入る。
cd Tool\lama-cleaner
venv\Scripts\activate

pipでアンインストールと再インストールをする。
python -m pip list
python -m pip uninstall numpy
python -m pip install numpy==1.26.4

仮想環境から抜ける。
deactivate

これでエラーが出ないようになった。

実行してみる :

LamaCleaner.bat を実行すると、以下のメッセージが表示される。
http://localhost:7859/
- Platform: Windows-10-10.0.19045-SP0
- Python version: 3.10.10
- torch: 1.13.1+cu117
- torchvision: 0.14.1+cu117
- Pillow: 10.3.0
- diffusers: 0.16.1
- transformers: 4.27.4
- opencv-python: 4.10.0.84
- xformers: N/A
- accelerate: N/A
- lama-cleaner: 1.2.5
- rembg: N/A
- realesrgan: N/A
- gfpgan: N/A

2024-06-29 03:13:06.485 | INFO     | lama_cleaner.helper:load_jit_model:102 - Loading model from: C:\Users\USERNAME\.cache\torch\hub\checkpoints\big-lama.pt
Running on http://127.0.0.1:7859
Press CTRL+C to quit
  • Webブラウザで、http://localhost:7859/ にアクセスすれば、Lama-Cleanerを利用できる画面が表示される。
  • 終了は、DOS窓上で Ctrl + C でいいらしい。

デフォルトで、ブラウザを起動して件のURLを開いてくれるようではあるけれど、最初のアクセス時は、まだ色々準備ができてないのにブラウザがアクセスしてしまうようで、「アクセスできない」と言ってくる。DOS窓上で「Press CTRL+C to quit」が表示された後、ブラウザの更新ボタンを押して再読み込みすればアクセスできる。

適当な画像をドラッグアンドドロップして、ロゴを消す処理をしてみたけれど、AMD Ryzen 5 5600X + NVIDIA GeForce GTX 1060 6GB の環境では、数秒で処理が終わってくれた。

Stable Diffusion web UIのファイルを使う方法もあるらしい :

Stable Diffusion web UIのPython仮想環境に、lama-cleaner をインストールしてしまうことで、ファイルを重複させずに済む方法もあるらしい。以下で解説されていた。

_Lama-CleanerをSD A1111に統合してインストールする方法について - Qiita

Stable Diffusion web UIの拡張としてインストールしてみた :

Stable Diffusion web UIの拡張機能として、Lama Cleaner をインストールする方法もあるらしい。試してみた。

_Lama-cleanerをWebUIの機能拡張タブに追加する|juno
_aka7774/sd_lama_cleaner: Lama Cleaner 1111 Extension for Windows

Extensions タブの、Install from URL を選んで、以下を入力してインストール。
https://github.com/aka7774/sd_lama_cleaner.git

インストール後、Stable Diffusion web UI を再起動すると、「LamaCleaner」というタブが増えている。クリックして選択。

初回時は、「Install / Update」をクリックして、仮想環境のPythonに対して lama-cleaner モジュールをインストールしないといけない。失敗する時があるらしいので、何度か挑戦。Stable Diffusion web UI を再起動。

次回からは、「Start」を押せばDOS窓が開いて、Lama Cleaner が待ち受け状態になるはずなのだけど、「venv/Scripts/lama-cleanerが見つからない」とエラーを出してきた。

自分の環境では、以下の場所に Stable Diffusion web UI をインストールしてあるので…。
C:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\

lama-cleaner.exe は以下の場所にあった。
C:\aiwork\stable-diffusion-webui-forge\webui_forge_cu121_torch21\system\python\Scripts\lama-cleaner.exe

Stable Diffusion web UI の画面の、LamaCleanerタブの中に、「Start Command」という欄があるので、前述のパスで一部修正。
# CPUを使う場合。--device=cpu を指定。

start C:/aiwork/stable-diffusion-webui-forge/webui_forge_cu121_torch21/system/python/Scripts/lama-cleaner.exe --model=lama --device=cpu --port=7870

# NVIDIA製GPUを使う場合。--device=cuda を指定。

start C:/aiwork/stable-diffusion-webui-forge/webui_forge_cu121_torch21/system/python/Scripts/lama-cleaner.exe --model=lama --device=cuda --port=7870

これで、「Start」をクリックするとDOS窓が開いて、Lama Cleaner が待ち受け状態になった。下の「Open」をクリックすれば、Lama Cleaner を操作するための領域がWebブラウザ上で表示される。

さて、この Start Command の指定を永続化したいのだけど…。以下のファイルに、設定した内容は残っているようではある。
(Stable Diffusion web UIインストールフォルダ)\webui\extensions\sd_lama_cleaner\start_cmd.txt

webui\extensions\sd_lama_cleaner\scripts\lama_cleaner_tab.py を眺めた感じでは、start_cmd.txt がある場合は、そちらを参照してコマンド文字列を取得しているように見えるのだけど…。関数 get_start_command() 内で読み込んでるように見える。

しかし、いくら試しても、Webブラウザ(Google Chrome, Firefox)上では反映されない…。おかしい。

lama_cleaner_tab.py を書き換えて、Webブラウザ上でのウィジェット(?)の並びが変化することは確認できたし、print() を入れまくって、こちらが指定したい文字列を読み込んでいることも確認できた。しかし、Start Command の入力欄の文字列は、ずっと変わらない…。何故。

何度も何度も、lama_cleaner_tab.py を書き換えて動作確認してみたり、Webブラウザ上のUIを再起動してみたりしているうちに、何かの拍子に件の入力欄が書き換わってくれた。ただ、何が絡んでいて更新されたのか分からない…。

以上です。

過去ログ表示

Prev - 2024/06 - Next
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