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
が動きます!