LamaCleanerをChromebookのLinux環境にインストールして使ってみた

 Niji JourneyやMidjourneyのような画像生成AIを利用していると、手が3本とか指が6本というような不自然な画像が頻繁に生成される。

何度生成しても納得のいく画像にならない事が多い。

それで以前の記事ではApplePencilを使って手で描き変えてしまえばすぐに解決することを記した。

手で描き変えるのは細かな調整も出来るし良いのだけど、もっとお手軽な方法はないものかと調べていたらLamaCleanerというプログラムが存在していることを知った。

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

こちらの記事にはLinuxだと簡単にインストールできること、pythonの実例が載っている。

先にUbuntu(linux)で試すと簡単に起動して動作を確認できた。

Chromebookの場合、直接インストールするよりクラウド上の環境にインストールしてアクセスするほうがOSの思想に合っているとは思うのだけど、まぁせっかくストレージとCPUに余裕のある機種を使っているのでChromebookのLinux環境にインストールしてみることにした。

注意点としてはChromebookのLinux環境ではpythonはpython3と打つ必要があることくらい。

インストールは pip install lama-cleanerで、あっけなく完了した。

ヘルプの表示などは問題ないが、例のとおりにlama-cleaner --model=lama --device=cpu --port=8080とするとエラーになる

$ lama-cleaner --model=lama --device=cpu --port=8080
- Platform: Linux-5.15.112-19404-g55fe7e355056-x86_64-with-glibc2.35
- Python version: 3.11.2
- torch: 2.0.1
- torchvision: 0.15.2
- Pillow: 10.0.0
- diffusers: 0.16.1
- transformers: 4.27.4
- opencv-python: 4.8.0.76
- xformers: N/A
- accelerate: N/A
- lama-cleaner: 1.2.3
- rembg: N/A
- realesrgan: N/A
- gfpgan: N/A

Traceback (most recent call last): File "/home/linuxbrew/.linuxbrew/bin/lama-cleaner", line 8, in <;module>; sys.exit(entry_point()) ^^^^^^^^^^^^^ File "/home/linuxbrew/.linuxbrew/opt/python@3.11/lib/python3.11/site-packages/lama_cleaner/__init__.py", line 16, in entry_point from lama_cleaner.server import main File "/home/linuxbrew/.linuxbrew/opt/python@3.11/lib/python3.11/site-packages/lama_cleaner/server.py", line 15, in <;module>; import cv2 File "/home/linuxbrew/.linuxbrew/opt/python@3.11/lib/python3.11/site-packages/cv2/__init__.py", line 181, in <;module>; bootstrap() File "/home/linuxbrew/.linuxbrew/opt/python@3.11/lib/python3.11/site-packages/cv2/__init__.py", line 153, in bootstrap native_module = importlib.import_module("cv2") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/linuxbrew/.linuxbrew/opt/python@3.11/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

これ、なんか色々エラー出ているなぁと思ったけど、ちょっと調べた上で見直すと必要なプログラムが列挙されていて、入っている場合バージョン表記、入っていないとN/Aと表示されている。

なので、入っていないとわかったxformers等はpip install xformersとしてインストールする。すると問題なく起動するようになった。

使ってみる

先のコマンドでpythonがWebサーバーを立ち上げてくれているのでブラウザでhttp://localhost:8080/ にアクセスすればすぐに使える。

この画像はNiji Journeyで生成した画像で、左側の女性の顎の部分になんだかよくわからない物体がある。それ以外は大きな問題はない。
これはまさにLamaCleanerを使うに好都合な画像であり、顎の部分のなんだかよくわからない物体をドラッグでマークしてみると、さっと消してくれた。

背景や、輪郭線など、推定して自動的に補完してくれる。
勿論、手で直せばもっときれいに描くことは出来る。しかし、この加工にかかる時間はわずか数十秒。
手で描き直すとなると色々と下準備をしたりして10分以上は確実にかかる。
目的が自作スクリプトのイメージ画像なので時間はあまりかけたくない。
なので、削除するだけでまともに見えそうな画像であればLamaCleanerを積極的に活用するのは良い手段であると思った。

手で補正する場合には削除以外のあらゆる補正が可能であり、例えば指が6本あった時に1本削除しただけではバランス的に不自然になる時、手描きで補正するなら指の間隔を調整したりして自然な感じにすることは出来る。
LamaCleanerでは、そうした事は出来ない。
しかし、指を削って5本にする→再度Niji Journeyのソース画像に指定して生成させるといった手順を踏めば指が5本に補正された上でまともそうな画像は出来そうである。

検証

Niji Journeyで6本指で生成されてしまった画像を元にする
LamaCleanerで1本削除指定

そして以下の画像が生成される

この不自然な指の間隔の画像をNiji Journeyのソース画像指定して再生成


どれも5本指で間隔も調整された画像が生成された!

この中なら左下が良い感じかな
Niji Journey → LamaCleaner → Niji Journey でほとんど手間を掛けずにイラスト補正完了

LamaCleanerで気になるところを削除して再生性は活用できる手応えがあった








コメント

このブログの人気の投稿

Googleスプレッドシートの正規表現置換で改行文字

名作と定評のあるスーパーファミコンの『ザ・モノポリーゲーム2』を今更ながら遊んでみた

Googleスプレッドシートのimportxml関数をhtmlに使う