はじめに
以前から画像内の不要物を消すことはいろいろ挑戦してきました。touch-sp.hatenablog.com
今回は「Inpaint-Anything」というのに含まれる「Remove Anything」を試してみました。
github.com
環境構築
Ubuntu 20.04 on WSL2 CUDA 11.6 Python 3.8
1行で環境構築できるように「requirements_cu116.txt」を作成しました。
pip install -r https://raw.githubusercontent.com/dai-ichiro/myEnvironments/main/Inpaint-Anything/requirements_cu116.txt
モデルのダウンロード
git clone https://github.com/geekyutao/Inpaint-Anything cd Inpaint-Anything/pretrained_models wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth curl -L $(yadisk-direct https://disk.yandex.ru/d/ouP6l8VJ0HpMZg) -o big-lama.zip unzip big-lama.zip
実行
cd app python app.py
結果
用意した画像
このような画像を用意しました。犬を消したいと思います。
犬を選択
犬のところでマウスをクリックして「Predict Mask」ボタンを押します。そうすると自動的に犬がマスクされます。
Inpaint
最後に「Inpaint Image」ボタンを押すと犬が消えた画像ができました。感想
今まで自分でMask画像を作成していたのが不要になるので便利です。Google製スマホ Pixel の「消しゴムマジック」みたいなものですね。Windows環境
以下の環境で問題なく動作しました。Windows 11 CUDA 11.7 Python 3.10
pip install -r https://raw.githubusercontent.com/dai-ichiro/myEnvironments/main/Inpaint-Anything/requirements_cu117_win.txt