Lama Cleanerは画像の一部をいい感じに消去してくれるソフトです。
adobeのPhotoShopのコンテンツに応じた塗りつぶしやGIMPのプラグインのスマート消去、OpenCVのInPaintなどと同じジャンルだとおもいます。それらは同じ画像の内から似たような部分をコピーして貼り付けることで消去をしている感じですがLamaCleanerは画像生成系のAIのモデルが選べるようなので、消去したい部分を生成していると思われます。
pythonの仮想環境を作成
cd ~/git
python3 -m venv lcvenv
環境名をlcvenvにしました。
仮想環境の開始
source ~/git/lcvenv/bin/activate
仮想環境の終了要確認
deactivate
必要なパッケージをインストール
python -m pip install --upgrade pip
python -m pip install -U --ignore-installed pip
python -m pip install -U torch torchvision torchaudio numpy --index-url https://download.pytorch.org/whl/cu115
python -m pip install -U opencv-python
python -m pip install -U lama-cleaner
実行用のシェルスクリプト
#!/bin/bash
cd ~
venvFile=`pwd`'/git/lcvenv/bin/activate'
source $venvFile
lama-cleaner --model=ldm --device=cuda --port=8080 --host=0.0.0.0
deactivate
cd ~
外部PCのブラウザで操作を想定したスクリプトになって言います。
スクリプトを起動したらウェブブラウザで以下のアドレスにアクセス。
http://LamaCleanerをインストールしたPC名.local:8080/
追記:20240612
Model
- lama
- 動作は若干重め。2Kクラスの高解像度向け
- ldm
- 動作はlama重め。lamaより優れた結果を期待できるらしい
- zits
- 未調査
- mat
- 大きな領域を消去することに向いているらしい
- fcfc
- 未調査
- manga
- マンガの修復に最適なモデルらしい
- sd1.5
- Stable-Diffusion 1.5
- sd2
- Stable-Diffusion 2.0?
- anything4
- Stable-Diffusionのモデルanything-v4.0。アニメ風画像を生成。
- realisticVision1.4
- Stable-DiffusionのモデルRealistic_Vision_V1.4。リアル画像を生成
- InstructPix2Pix
- Pix2Pixを使って画像を置き換える。例、馬をシマウマに。マスク無しでも動作
- paint_by_example
- 未調査
- ローカルの ckpt/safetensor をロードすることが可能らしい
--model sd1.5 --sd-local-model-path /path/to/model-inpaint.ckpt
- 特定のControlNetも実行できるらしい
--sd-controlnet-method
ResizeによるVRAM不足の回避
画像ををResize(縮小)することでVRAM不足を回避しながら画像全体を対象とした修正を行うことが出来るらしいです。(画質が落ちそうですが、Real-ESRGANなどでアップスケールすると思われます。)
感想
また、Stable-Diffusion系のModelの場合、文字を入力するプロンプトが現れ、そちらに修正部分の内容を文字で指示することが出来るようです。とりあえず動作する環境は構築出来ましたが、上手に使えたためしがありません。多分VRAM不足を回避するため画像をクリッピングしているのが原因ではないかと推測しています。まだ試していませんがResizeに期待したいと思います。
Pix2Pix(馬をシマウマに置き換える)やControl-Net(Stable-Diffusionの生成画像の構図などを指示する。)なども使えるようですが、インペインティング処理にどのように活用するのか、今のところ理解が追い付いていない状態です。
使い方を学ぶにために時間が掛かりそうですが、使いこなせればからりパワフルなツールだと思います。
コメント