メインコンテンツまでスキップ

lama-clearnerをdockerで動かす

· 約3分
NEKOHA
ネコ派のフリーランスエンジニア

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あるなら cpucuda に書き換えてあげると高速です。

初回起動はモデルのダウンロードなどがあり時間がかかりますが、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ファイルがこちら。
キャッシュディレクトリを最初に作るのも追加しました。

lama-cleaner-cpu.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 が動きます!

参考サイト