画像の一部を高精度に消去できる「Lama Cleaner」をインストールした。
- これを
- こうできるソフトです
インストール方法を調べると標準的な手法がないようで、CUDAに対応させつつ仮想環境(venv)にインストールする方法はこれというページが見つからなかった。自分用も兼ねてここにまとめておきたい。
ついでにNVIDIAのGPUがない人(ノートパソコンの人とか)向けのインストール方法も適宜解説します。
(「Windows 1click Installer – Lama Cleaner」という、Lama CleanerのWindows用インストーラのページはあるが有料だそうだ)
インストールの手順
- Pythonのインストール
- CUDA Toolkitのインストール
- venvの仮想環境を作る
- PyTorchのインストール
- Lama Cleanerのインストール
順を追って解説します。
NVIDIAのGPUがあるパソコンならLama Cleanerの実行を早くできる。そのためにCUDAというライブラリをインストールする。
(NVIDIAのGPUがない人向けのインストール方法もあとで解説します。次の項へ進んでください)
現在最新のCUDA Toolkitは12.2.2だが、PyTorchが対応しているのは11.8まで。CUDAが入っていない、あるいはバージョンが11.8でない人はインストールする。
「CUDA Toolkit Archive | NVIDIA Developer」から「CUDA Toolkit 11.8.0」をダウンロード、インストールする。
CUDA Toolkitをインストールしたかどうかやバージョンを忘れちゃったときは、コマンドプロンプトを開き「nvcc -V[Enter]」。「-V」のVは大文字で。自分の環境ではこういうのが出た。
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
venvの仮想環境を作る
仮想環境とはフォルダ内に作る独立した環境のことで、OS全体に影響を与えずにライブラリやアプリケーションをインストールできる。使わなくなったらフォルダごと削除してしまってよい。
Lama Cleanerをインストールするフォルダを作り、その中をエクスプローラーで表示する。たとえば「c:\LamaCleaner」など。
アドレスバーに「cmd[Enter]」と入力すると、コマンドプロンプトのウィンドウが開く。
コマンドプロンプトに以下のコマンドを入力し[Enter]。このコマンドでは、「venv_lama」が仮想環境のフォルダ名となる。
python -m venv venv_lama
少し待つとコマンドが完了する。コマンドプロンプトのウィンドウはそのままにしておく。
エクスプローラーで「c:\LamaCleaner」を見ると「venv_lama」フォルダができている。
PyTorchのインストール
PyTorchは、Pythonを使った機械学習のライブラリである。これをvenv内にインストールする。
venvに入るには、先ほどのコマンドプロンプトのウィンドウで以下のように入力し[Enter]。
venv_lama\scripts\activate.bat
下の画像のように、コマンドプロンプトが「(venv_lama)c:\LamaCleaner>」という表示になる。ここから先の操作は「venv_lama」フォルダの仮想環境内で完結しており、OS本体とは別に扱われる。
このあと使う「pip」コマンドをアップデートしておく。以下のコマンドをコマンドプロンプトに入力し[Enter]。
python -m pip install --upgrade pip setuptools
PyTorchのインストールコマンドを取得するためにPyTorchの公式サイトへ行く。少し下に「INSTALL PYTORCH」というセクションがある。その中の表は、インストール時の条件を選ぶとそれに合ったインストールコマンドを作ってくれるというもの。
NVIDIAのGPUがある人は以下を選ぶ。
- PyTorch Build…Stable(2.0.1)
- Your OS…Windows
- Package…Pip
- Language…Python
- Compute Platform…CUDA 11.8
これで出てくるインストールコマンドは以下。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
NVIDIAのGPUがない人は、「Compute Platform」を「CPU」にする。その場合のインストールコマンドは以下。
pip3 install torch torchvision torchaudio
いずれかのコマンドを入力し[Enter]キーを押して3~4分待つ(ここから先は、[Enter]キーを押す操作は明記しない)。
Lama Cleanerのインストール
これで準備は完了で、いよいよLama Cleanerのインストールに進む。入力するコマンドは以下。
pip install lama-cleaner
また2~3分待ってコマンド入力できるようになったら、Lama Cleanerのインストールは完了である。インストール後の「c:\LamaCleaner」フォルダの容量は約5.3GBだった。
Lama Cleanerの起動
Lama Cleanerの起動コマンドは以下の通り。これはNVIDIAのGPUがある人向け。
lama-cleaner --model=lama --device=cuda --port=8080
NVIDIAのGPUがない人は下のコマンドでLama Cleanerを起動する。「--device=cuda」を「--device=cpu」にする。
lama-cleaner --model=lama --device=cpu --port=8080
上のように「Running on http://127.0.0.1:8080」と表示されたら、Webブラウザで「http://127.0.0.1:8080」へアクセスする。
あとは画像をドラッグ&ドロップして、消したい範囲を塗ればすぐに処理が始まる。
- 画像をドラッグ&ドロップ
- 消したい範囲を塗る
- 塗り終えるとすぐに処理が始まり、塗った範囲が消去される
イラストだけでなく写真の一部も消去できる。
- SDXLで出力したオウム
- 右端のオウムを消した
Stable Diffusionで出力した画像に意図せず入ってしまったシグネチャも。
- こんなふうに文字が入ってしまっているのも
- きれいに消してくれた
Lama Cleanerの操作のポイント
- 消したい範囲を塗るときはわりとはみ出ても大丈夫。むしろ塗り残しがあると「そこは消さないんですね」と判断される
- 消し残された範囲があったらそこをもう一度塗って消すとよい
- マウスのホイールで画像表示の拡大/縮小、ホイールボタンのドラッグまたはスペースキーを押しながらのドラッグでパンする。[Esc]キーを押すと元の表示サイズで中央に戻る
- 複数の範囲を塗りたいときやブラシの太さを変えつつ塗りたいときなどは、[Ctrl]キーを押している間は消す処理が始まらない。[Ctrl]キーを押すのをやめると処理が始まる
- [S]キーを押すか右上の歯車アイコンで設定メニューを出し「Manual Inpainting Mode」を選んでもよい。下部ツールバーに出てくる消しゴムアイコンをクリックすると消去する処理が始まるようになる
- 消去の処理が完了したあと、目玉のアイコンを押すか[Tab]キーを押すとオリジナルの画像を見ることができる
- [H]キーを押すか右上のキーボードのアイコンをクリックするとショートカットキーが表示される
Lama Cleanerを終了する時はコマンドプロンプトのウィンドウで[Ctrl]+[C]を押す。コマンドを入力できる状態に戻ったらコマンドプロンプトのウィンドウは閉じてよい。
Lama Cleaner起動用のバッチファイルを作る
Lama Cleanerを使おうとするたびにコマンドプロンプトを開いてvenvに入って…とやるのは効率が悪い。起動用のバッチファイルを作っておく。
Lama Cleanerをインストールしたフォルダで右クリックし、「新規作成」-「テキストドキュメント」としてファイル名を「LamaCleaner.bat」などとする。「LamaCleaner」の部分は任意である。
バッチファイルの中身はこのようにする。NVIDIAのGPUがない人は「--device=cuda」を「--device=cpu」にする。
call .\venv_lama\scripts\activate.bat
lama-cleaner --model=lama --device=cuda --port=8080
これで、バッチファイルを実行するとLama Cleanerが起動するようになる。
バッチファイルから起動したLama Cleanerを終了させようとコマンドプロンプトのウィンドウで[Ctrl]+[C]を押したとき、「バッチジョブを終了しますか(Y/N)」と表示されるようになる。「Y」を押す(実は「N」でも結果は同じ)。
Lama Cleanerのアップデート
上で「LamaCleaner.bat」を置いたフォルダに、以下のバッチファイルを「upgrade.bat」のような名前で保存し実行する。
call .\venv_lama\scripts\activate.bat
pip install lama-cleaner --upgrade
pause
Lama Cleanerのアンインストール
Lama Cleanerをインストールしたフォルダをそのまま削除すればよい。
なお、このフォルダは別の場所に移動するとlama-cleanerを見つけられず起動しなかった。
Lama Cleanerをインストールしたのは、こういうアニメーションを作りたかったから。
Stable DiffusionにControlNetとAnimateDiffをインストールし、出力したGIFアニメーションのタイミングをGiamで調整して動きをダイナミックにした。
参考にした記事
Lama Cleanerのインストールで参考にしたのは以下。ありがとうございます。というより、この3つの記事を読んで1つにまとめたようなものである。