見出し画像

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

Lama-Cleanerは、Adobe Fireflyにほぼ近い機能を持つ画像修正用のオープンソースAIで、今ではStable Diffusionによる画像生成と組み合わせて使用することが一つの定番といってもいいAIと言えます。

実際、SD A1111用の拡張機能(https://github.com/aka7774/sd_lama_cleaner
)も公開されており、この拡張機能を使用すればA1111に統合した形で、Lama-Cleanerをインストールすることも可能です。

しかし、この拡張機能にはいくつか弱点もあります。

Lama-CleanerもまたA1111と同様にPytorchを使用して動作するAIである為、当然CUDAを使用した方が高速に動作しますが、A1111用のLama-Cleanerはデフォルト設定ではCUDAを使用しないdevice=cpuモードで起動します。
(但し、拡張機能そのものの設定を弄ればdevice=cudaモードで起動させることは可能です)

更に、これが大きいのですが、拡張機能を介してLama-Cleanerを使用する場合には「A1111を起動させてからLama-Cleanerを別途立ち上げる」という条件が付くために、Lama-Cleaner単体を起動させることが出来ません。

確かにLama-CleanerはSDと組み合わせて使用することが多いAIですが、SDとは無関係に画像修正にも使えるツールであり、出来うれば単体で起動できるようにしておきたいところです。

また、Lama-Cleanerが使用できるPythonライブラリーに関しても、初期状態では不足している部分があるので、それらの問題を解決する形でLama-CleanerをA1111に統合する形でインストールする方法について記述していきます。

...

その前に何故「統合」に拘るかと言いますと、A1111とLama-Cleanerを別個に仮想環境を構築してインストールした場合、それだけでストレージ消費が数GB単位で増加してしまうからです。

PytorchだけでもCUDA用ならば約3GBある訳で、A1111もLama-Cleanerも使用しているPythonライブラリーは共通の部分が多いのであれば、統合してしまった方が合理的だからです。

...

それでは本題に入っていきますが、A1111はインストールが完了している前提で以下解説します。かつForgeでも、以下の手法は完全に適用可能です。
(但し、venv環境にインストールしている場合に限ります。venv環境を使わずインストールパッケージを使用している場合も統合は可能と言えば可能ですが、統合の方法が下記とは異なります)

また、この手法においてはA1111乃至はForgeにLama-Cleaner用の拡張機能をインストールする必要はありません。

まず下図のように、powershellを起動してA1111の仮想環境をアクティベートし、「pip install lama-cleaner」と入力して実行します。

次に下図のように、「pip install -U diffusers」と入力して実行します。

次に下図のように「pip install -U transformers==4.30.2」と入力して実行します。

Lama-Cleanerをインストールした際に、tansformersとdiuffusersは強制的に古いバージョンに置き換わってしまう為、ここで元のバージョンに戻す作業をする訳です。

次に下図のように、「pip install realesrgan」と入力して実行します。

次に下図のように、「pip install rembg」と入力して実行します。

次に、起動用のバッチファイルを下図のようにSDのインストールフォルダ「stable-diffusion-webui」に作成していきます。

作成するバッチファイルの記述は以下の通り。

@echo off
start http://localhost:7870/
call venv\Scripts\activate
echo http://localhost:7870/
lama-cleaner --model=lama --port=7870 --device=cuda
popd

作成したバッチファイルをダブルクリックすると、下図のようにWebUIが起動し、Lama Cleanerを使用できるようになります。

A1111の仮想環境に統合する形でありつつも、A1111を起動せずとも単独でLama-Cleanerが利用できるようになります。

この記事が気に入ったらサポートをしてみませんか?