Ubuntu22.04DesktopでLama Cleanerのインストール記録

AI・機械学習 コンピュータ
AI・機械学習
Lama Cleanerをインストールしたのでその作業ログを残しておきます。

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

消去する方法としていくつかの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不足の回避

Stabel-Diffusion系のModelを使うとCUDA Out Of Memoryが発生しやすいです。回避策として512×512程度にクリッピングする方法がありますが、画像の全体像を含めることが出来ないので修正が上手く行かないことが多いです。
画像ををResize(縮小)することでVRAM不足を回避しながら画像全体を対象とした修正を行うことが出来るらしいです。(画質が落ちそうですが、Real-ESRGANなどでアップスケールすると思われます。)

感想

使ってみた感じ比較的小さな傷やノイズの修正はlamaやldmを使うと高確率で一発修正が出来ました。(対象画像にもよると思いますが…)ただ比較的大き目の領域や長い線などの修正は苦手らしく、曖昧な仕上がりなります。まだ試していませんが、大き目の領域向けにmat modelが使えるようなので、そちらを期待したいと思います。

また、Stable-Diffusion系のModelの場合、文字を入力するプロンプトが現れ、そちらに修正部分の内容を文字で指示することが出来るようです。とりあえず動作する環境は構築出来ましたが、上手に使えたためしがありません。多分VRAM不足を回避するため画像をクリッピングしているのが原因ではないかと推測しています。まだ試していませんがResizeに期待したいと思います。

Pix2Pix(馬をシマウマに置き換える)やControl-Net(Stable-Diffusionの生成画像の構図などを指示する。)なども使えるようですが、インペインティング処理にどのように活用するのか、今のところ理解が追い付いていない状態です。

使い方を学ぶにために時間が掛かりそうですが、使いこなせればからりパワフルなツールだと思います。

コメント