「写真から余計なモノを違和感なく消し去りたい」
「画像生成で失敗した箇所を除去したい」
このような場合には、Lama Cleanerがオススメです。
この記事では、Lama Cleanerのインストールについて解説しています。
本記事の内容
- Lama Cleanerとは?
- Lama Cleanerのシステム要件
- Lama Cleanerのインストール
- Lama Cleanerの動作確認
それでは、上記に沿って解説していきます。
Lama Cleanerとは?
Lama Cleanerとは、SOTA AIモデル搭載の画像補正ツールのことです。
SOTAは、State-of-the-Artのことを表しています。
つまり、Lama Cleanerは最先端AIモデルを搭載していることになります。
ただし、開発元の自己アピールに過ぎないということは理解しておきましょう。
しかし、そんなアピールができるほどに機能的にレベルは高いです。
Sanster/lama-cleaner
https://github.com/Sanster/lama-cleaner
上記ページにある動画で、その様子を確認することができます。
画像補正には、Stable Diffusionが利用されています。
確かに、画像を一部で新たに生成しています。
これは、画像生成技術の上手い活用方法と言えます。
また、公式では以下の特徴が記載されています。
- 完全無料、オープンソース、完全セルフホスティング、CPUとGPUをサポート
- Windows 1-クリックインストーラ
- cv2による古典的な画像処理アルゴリズム
- 複数のSOTA AIモデル
- 様々なインペインティング戦略
- デスクトップアプリケーションとして実行
- あらゆるオブジェクトのインタラクティブなセグメンテーション
Lama Cleanerは、Pythonで開発されたWebアプリです。
Flaskというフレームワークを用いて開発されています。
そのWebアプリをデスクトップアプリケーション化したということです。
そのインストーラーの使い方は、次のページで説明されています。
Windows 1-click installer – Lama Cleaner
https://lama-cleaner-docs.vercel.app/install/windows_1click_installer
個人的には、なるべくOS環境は汚したくありません。
OSに影響のあるインストールはしたくないということです。
Pythonであれば、基本的には仮想環境で何とでもなります。
Python仮想環境であれば、基本的にOSは汚れません。
そして、そのようなインストール方法がGithubの公式ページでも公開されています。
この記事では、そのインストール方法に基づいてLama Cleanerをインストールします。
以上、Lama Cleanerについて説明しました。
次は、Lama Cleanerのシステム要件を説明します。
Lama Cleanerのシステム要件
現時点(2023年1月末)でのLama Cleanerの最新バージョンは、0.34.0となります。
更新履歴を見ると、頻繁に更新が実施されています。
おそらく、今後も頻繁に更新されていくでしょう。
このように更新され続けているLama Cleanerのシステム要件は、以下となります。
- OS
- Pythonバージョン
- PyTorch
- xFormers(オプション)
それぞれを以下で説明します。
OS
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
基本的には、Pythonが動けばどこでもOKという感じに見えます。
サーバーにインストールして、みんなで共有して利用することも可能です。
Lama Cleanerの実体は、Webアプリですからね。
Pythonバージョン
サポート対象となるPythonのバージョンは、以下となっています。
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10
理想としては、Python公式開発サイクルに準じることです。
バージョン | リリース日 | サポート期限 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
3.11 | 2022年10月25日 | 2027年10月 |
ただ、依存するライブラリが多いとなかなか難しい場合もあるようです。
そのこともあり、個人的には3.10系がオススメになります。
PyTorch
Lama Cleanerのインストール時に、PyTorchもインストールされます。
そのため、事前にインストールしておくことは必須ではありません。
しかし、Lama CleanerをGPUで動かしたい場合は事前にインストールする必要があります。
インストールするのは、GPU版のPyTorchです。
xFormers(オプション)
GPU版PyTorchをインストールした場合のみ、対象となります。
ただし、必須ではありません。
さらに高速に動かしたいなら、インストールしておきましょうというレベルです。
xFormersのインストールは、基本的にはビルド環境が必要になります。
macOSやLinuxなら、比較的簡単にビルドできます。
でも、Windowsでのビルドはかなり難易度が高いです。
そうは言っても、方法は存在しています。
あくまで、xFormersはオプションです。
そのため、難しそうならインストールしなくてもよいでしょう。
以上、Lama Cleanerのシステム要件を説明しました。
次は、Lama Cleanerのインストールを説明します。
Lama Cleanerのインストール
Lama Cleanerのインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
そして、システム要件としてGPU版PyTorchとxFormersをインストール済みかもしれないという状況です。
では、まずはpipとsetuptoolsの更新しておきましょう。
python -m pip install --upgrade pip setuptools
では、Lama Cleanerのインストールです。
Lama Cleanerのインストールは、以下のコマンドとなります。
pip install lama-cleaner
インストールは、結構時間がかかります。
処理が終わったら、Lama Cleanerのインストールは完了です。
以上、Lama Cleanerのインストールを説明しました。
次は、Lama Cleanerの動作確認を行います。
Lama Cleanerの動作確認
Lama Cleanerを起動するには、以下のコマンドを実行します。
ポートが他のアプリで使用中なら、空いているポートに変更すればよいでしょう。
lama-cleaner --model=lama --device=cpu --port=8080
詳細は、ヘルプで確認することができます。
lama-cleaner -h
一つ注意点があります。
GPU版のPyTorchをインストールした場合は、deviceの値を「cuda」とする必要があります。
lama-cleaner --model=lama --device=cuda --port=8080
そうしないと、CPUで起動してしまいます。
折角のGPUが活かされないということになります。
起動コマンドを実行すると、初回時にはモデルのダウンロードが行われます。
正確には、キャッシュに以下のファイルが存在していない場合です。
コマンド実行後、コンソールに以下のように表示されれば起動は成功しています。
* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
ブラウザで表示されたアドレスにアクセスします。
あとは、適当に触ればよいと思います。
それぐらいシンプルなUIです。
画像をアップロードしたら、消したい対象をブラシで塗りたくります。
このとき「ctrl」を押しながらであれば、複数の箇所を塗ることができます。
影もちゃんと消しておきましょう。
あと、オーブとか言われている光の玉みたいなモノを消しておきます。
ブラシの処理が終わると、自動的に編集処理が実行されます。
結果的には、自転車を持った高齢者とオーブ(光の玉)が綺麗に消え去りました。
なお、640 x 435の画像サイズでの処理時間は以下となります。
デバイス | 処理時間 |
CPU | 2434ms |
GPU | 3322ms |
なんと、CPUの方が速いのです!!
しかし、画像サイズが大きくなる(1920 x 1305)と結果は異なります。
デバイス | 処理時間 |
CPU | 15766ms |
GPU | 1233ms |
サイズが小さいとCPUとGPUのデータ転送に無駄なコストがかかるのでしょうかね?
その辺はよくわかりませんが、このような結果はよく目にする事象です。
以上、Lama Cleanerの動作確認を説明しました。