画像生成技術をベースにした画像補正ツールLama Cleanerのインストール

画像生成技術をベースにした画像補正ツールLama Cleanerのインストール ツール

「写真から余計なモノを違和感なく消し去りたい」
「画像生成で失敗した箇所を除去したい」

このような場合には、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.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月
3.112022年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の画像サイズでの処理時間は以下となります。

デバイス処理時間
CPU2434ms
GPU3322ms

なんと、CPUの方が速いのです!!
しかし、画像サイズが大きくなる(1920 x 1305)と結果は異なります。

デバイス処理時間
CPU15766ms
GPU1233ms

サイズが小さいとCPUとGPUのデータ転送に無駄なコストがかかるのでしょうかね?
その辺はよくわかりませんが、このような結果はよく目にする事象です。

以上、Lama Cleanerの動作確認を説明しました。

タイトルとURLをコピーしました