lama-clearnerをdockerで動かす
lama-clearnerをローカルで動かしたい

画像からいらないものを消してくれる lama-cleaner 。
便利なのですが、インストール記事が意外と少なくて環境構築に困ったりしていました。
Stability Matrix から Stable Diffustion Web UI をインストールして lama-cleaner タブからインストールするのが簡単です。
ですが、 起動するのに Stable Diffusion を経由するのもめんどくさい。
そこで、エンジニアならみんな使っている Docker でささっと立ち上げてみました。
docker コマンドで起動する
難しいことはなく、 lama-cleaner 公式サイトの Install > Dockerを参照すればやり方は載っています。
docker run -p 8080:8080 \
-v /path/to/cache_dir:/root/.cache/ \
--rm cwq1913/lama-cleaner:cpu-1.2.5 \
lama-cleaner --device=cpu --port=8080 --host=0.0.0.0
このスクリプトの/path/to/cache_dirを適当に書き換えて、 lama-cleaner.sh に貼り付けて実行するだけ。
上記はcudaが動作するGPUがない場合のCPUバージョンです。
RTXのVGAあるなら cpu を cuda に書き換えてあげると高速です。
初回起動はモデルのダウンロードなどがあり時間がかかりますが、2回目以降はさっと立ち上がるのでおすすめです。
python環境や依存ライブラリも解決済みで、他の環境汚さないので楽ちんです。
上記、無事起動すると http://localhost:8080 からWeb UIにアクセスできます。
範囲選択をAIに手伝ってもらいたい
基本はマウスで消したいところをなぞっていくのですが、これがけっこうめんどくさい。
lama-cleaner には Interactive Segmentationというプラグインがあり、有効化することで選択範囲をある程度AIが補佐してくれるようになります。
起動オプションに以下をつけるだけです(RTXな人はcpuをcudaに変えてください)
--enable-interactive-seg --interactive-seg-model=vit_l --interactive-seg-device=cpu
実際のsh ファイル
と、上記を踏まえて作ってみたshファイルがこちら。
キャッシュディレクトリを最初に作るのも追加しました。
mkdir -p ./cache_dir
docker run -p 8080:8080 \
-v cache_dir:/root/.cache/ \
--rm cwq1913/lama-cleaner:cpu-1.2.5 \
lama-cleaner --device=cpu --port=8080 --host=0.0.0.0 --enable-interactive-seg --interactive-seg-model=vit_l --interactive-seg-device=cpu
これだけあれば、GPUがなくても docker 上で lama-cleaner が動きます!