省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

GIMP3 プラグイン: run SMART (SAM2 基盤の AI マスク作成ツール)

 先日 ART の作者、A. Griggio 氏が作成した、メタの開発した SAM2 エンジンを使った AI によるマスク作成ツールとそのインストール方法を紹介しました。今回、GIMP3 から、この SMART を起動して、SMART で作成したマスク画像を自動的にマスクとして取り込んでレイヤーとして貼り付けるプラグインを作成しました。これで GIMP3 上で AI マスクを簡単に作成することができます。

 今まで、対象物を苦労して囲んでマスクを作成したのに比べて、大幅に編集時間が節約できますので、強くおすすめします。

 

■ インストール方法

1. SMART のインストール

 インストール方法は以下の拙稿を見てください。なおインストールの難易度ですが、易しい順に Windows > Mac OS > LInux で、Windows が一番確実にインストール可能かと思います。Linux は運が良ければ簡単ですが、悪いと色々苦闘させられます。

Windows

yasuo-ssi.hatenablog.com

Mac OS

yasuo-ssi.hatenablog.com

Linux

yasuo-ssi.hatenablog.com

以下、SMART のインストール場所、および Pythonインタープリタが、それぞれの OS で次のようになっていることを前提とします。異なる場所の場合は適宜読み替えてください。

Windows

C:\Program Files\SMART

Mac OS

$HOME/SMART/

$HOME/.pyenv/shims/python

 ※ pyenv で仮想環境をセットアップしている前提

Linux

$HOME/scripts/SMART/

$HOME/.venv/ART-AI-venv/bin/python

 ※ venv で .venv/ART-AI-venv に仮想環境をセットアップしている前提

※ $HOME は各ユーザのホームディレクトリ。実際には、Linux の場合は、例えば、/home/yourname Mac OS の場合は、/Users/yourname などになっている。

 

2. 当プラグインをダウンロードしてインストールする。

 こちらから当プラグインをダウンロードします。GIMP3 におけるプラグインのインストール方法は以下をご覧ください。

yasuo-ssi.hatenablog.com Windows ではこれでインストールが完了ですが (ただし上の SMART のインストール方法の説明と同じディレクトリにインストールしたことが前提)、LinuxMac OS ではまだ作業が残っています。

3. プラグインの設定を編集する

 当プラグインの # --- command args --- 以下の記述で、

 

elif platform.system() == "Linux":
    command = "/home/%USERNAME%/src/ART-AI-venv/bin/python"
    command1 = "/home/%USERNAME%/src/SMART/src/main.py"
elif platform.system() == "Darwin": #Mac OS
    command = "/Users/%USERNAME%/src/ART-AI-venv/bin/python"
    command1 = "/Users/%USERNAME%/src/SMART/src/main.py"

 

の部分をあなたの環境に応じて書き換えます。Linux の方は、上の、elif platform.system() == "Linux": の下の2行、Mac OS の方は、elif platform.system() == "Darwin": 以下の2行を書き換えます。

 

 例えば、あなたのユーザ名が、myname で、Pythonインタープリタおよび SMART のインストール位置が、上の前提通りだった場合、以下のように書き換えます。

Linux ユーザ

    command = "/home/myname/.venv/ART-AI-venv/bin/python"
   ※ venv を使って仮想環境をセットアップ
    command1 = "/home/myname/scripts/SMART/src/main.py"

 

Mac OS ユーザ

    command = "/Users/myname/.pyenv/shims/python"
   ※ pyenv を使って仮想環境をセットアップ
    command1 = "/Users/myname/SMART/src/main.py"

 

 仮想環境のディレクトリがどこにあるか、更にどのツールを使って仮想環境をセットアップしたかによって、書き換え方が変わりますのでご注意ください。

 

4. 実行可能プロパティを設定する。

 上の、GIMP3 プラグインのインストール方法にも書いてありますが、当プラグインPython スクリプトに対して chmod コマンドを使って実行可能に設定します。Linux だと GUI から実行可能にすることもできませんが、Mac OS ではターミナルから chmod コマンドを使う必要があります。

 

■ Flatpak 版を使うときの注意

 Linux 上で、Flatpak 版の GIMP3 を使っている場合は、GIMP3 を以下のコマンドで起動して下さい。さもないと、SMART の起動に失敗します。

 

$ flatpak run --socket=session-bus org.gimp.GIMP --verbose

 

 エラーメッセージを表示しない場合は、最後の --verbose は省略可能です。上のコマンドは desktop ファイルとして作成しておくと、GUI から起動できます。私は以下の内容で、desktop ファイルを作成しました。

------------------------

[Desktop Entry]
Version=3.0
Type=Application
Categories=Graphics;
Name=GIMP3 (session-bus)
Comment=
Exec=flatpak --system --socket=session-bus run org.gimp.GIMP --verbose
Icon=org.gimp.GIMP
Path=/var/lib/flatpak/app/org.gimp.GIMP/
Terminal=false
StartupNotify=false

------------------------

■ 使い方

1. run SMART の起動

 メニューの以下の位置から、[SMART で AI マスクを作成...] を選んで本プラグインを起動します。

メニュー上の位置

2. SMART が起動

 以下のように SMART が起動します。元画像を一時 TIFF ファイルとしてエクスポートするので、起動までにちょっと時間がかかります。

SMART が起動

 なお、Windows および Linux の場合は、SMART のウィンドウが一番前面に来ますが、Mac OS の場合は、GIMP のウィンドウに隠れます。そこで、GIMP のウィンドウを最小化して、SMART のウィンドウを手前に表示してください

 

3. SMART 上でマスクを作成する

SMART 上でマスクを作成

 Shift + 左クリックボタンを押すと、マスクが作成されます。

4. マスク画像を保存する

 マスクの作成が終わったら、フロッピーマークをアイコンをクリックして保存します。すると以下のようにマスク保存ダイアログが出ますが、マスクの保存場所、およびデフォルトの保存名を絶対に変更せずに、そのまま OK ボタンを押します。

マスク画像を保存

 保存すると、もし、SMART.json 設定で適切に exiftool が設定されていない場合、マスク保存エラー: exiftool が見当たらないというエラーメッセージが出ますが、無視して構いません。また、Windows の場合も似たようなエラーメッセージが出ます。Windows の場合は exiftool の指定が特殊なので、上の SMART のインストール説明をご確認ください。

exiftool 設定不備によるエラーメッセージ

Windows 上のエラーメッセエージ

 終わったら、ウィンドウの上の隅にある閉じるアイコン( ✕ )を押して閉じます。しかし、これも、先程警告メッセージが出ていると、変更が保存されていないという警告メッセージが出ますが、これも無視して No ボタンを押して終了します。1回目の警告メッセージが出ていなければ、こちらも警告なく正常に SMART が終了します。

警告メッセージがあるときの SMART 終了方法

5. 終わると、以下のように元のレイヤーがコピーされ、SAM2 mask と名前が付き、そのレイヤーにマスクが付加されます。

マスクが貼り付く

 ただ、境界線の微調整などは SMART ではサポートしていないので、マスク編集などで工夫する必要があります。