・GPU はあるが、cuda が使えない (NVIDIA 以外の GPU もしくは、NVIDIA の GPU があっても cuda が使えるようにセットアップされていないなど) Linux 環境、もしくは、まったく GPU がインストールされていない各 OS 環境
→ RawForge Onnx cpu バージョン
Rawforge Onnx の cuda バージョンもあるのですが、PyTorch の cuda バージョンを使う通常版より実行時間が 2 倍程度かかります。また Mac OS ARM チップ環境では、やはり Onnx cpu バージョンは、PyTorch バージョンより、1.5 倍程度時間がかかります。ただし、後述の ART をスキップするモードでは、PyTorch 版 rawforge が使えないので Onnx 版を使う必要があります。
また Mac OS ARM チップ環境を除く、非 NVIDIA GPU 環境で、通常版を使うと、バックエンドとして PyTorch CPU 版がインストールされてしまいますが、これだとめちゃめちゃ処理時間がかかります (数十分から 1 時間以上)。この場合、Onnx 版の使用を強く推奨します。
当プラグインは、Nikon の HE Compress Raw ファイルを扱えますが、そのためには Adobe DNG Converter と Exiftool (ただし Mac OS のみ) のインストールが必要になります。Mac OS に Exiftool をインストールするには、Homebrew を使うのが良いでしょう。インストールしたら、後で config.ini に設定するために、インストールパスを控えておいてください。
Linux では DNG Converter は Wine を使ってインストールしてください。Bottlesなども使えるかもしれませんが、試していません。もし試した方がいればご報告いただけると幸いです。
[ART directory path on Windows]
COMMAND_NT;C:\\Program Files\\ART\\1.26.1
# Do not add ".exe" for COMMAND_NT
[ART directory path on Linux]
COMMAND_LINUX;/home/username/Programs/ART
# If your ART is Flatpak version...
#COMMAND_LINUX;flatpak run us.pixls.art.ART
[ART directory path on Mac OS]
COMMAND_DARWIN;/Applications/ART.app/Contents/MacOS
[Python path for rawforge]
# for Linux
PYTHON;/home/username/scripts/rawforge/.venv/bin/python
# for Linux onnx version
#PYTHON;/home/username/scripts/rawforgeonnx/.venv/bin/python
# for Windows
#PYTHON;C:\\Users\\username\\scripts\\rawforge\\.venv\\scripts\\python.exe
# for Windows onnx version
#PYTHON;C:\\Users\\username\\scripts\\rawforgeonnx\\.venv\\scripts\\python.exe
# Attention! When you use onnx version, python path name must contain the string "onnx".
[model for rawforge]
MODEL;TreeNetDenoise
#Deblur,DeepSharpen,TreeNetDenoise,TreeNetDenoiseHeavy,TreeNetDenoiseLight,TreeNetDenoiseSuperLight
[device for rawforge]
DEVICE;cuda
# cuda, mps, cpu
[lumi noise for rawforge]
LUMI;0.0
# 0.0 - 1.0
[chroma noise for rawforge]
CHROMA;0.0
# 0.0 - 1.0
[Temp file format]
TMP_FILE_FORMAT;png
# The value of TMP_FILE_FORMAT must be tiff or png
[Temp file bit depth]
TMP_FILE_BITDEPTH;16
# The value of TMP_FILE_BITDEPTH must be 8, 16 or 32
[Acceptable file extensions]
EXTENSIONS;.dng .DNG .cr .CR .nef .NEF .nrf .NRF .arw .ARW .sr .SR .raf .RAF .orf .ORF .rw2 .RW2 .rwl .RWL .pef .PEF .x3f .X3F
[Editing with ART]
USEART;True
# If you set this False, rawforge exports edited image directly to GIMP
# However it is only available when you use onnx version.
[Decode Nikon HE Raw]
NIKON_HE;False
# The value of NIKON_HE must be True or False
# Following parameters are needed if only NIKON_HE=True
[Exiftool path on Mac OS]
EXIF_DARWIN;/opt/homebrew/bin/exiftool
[DNG Converter path on Windows]
DNG_NT;C:\\Program Files\\Adobe\\Adobe DNG Converter\\Adobe DNG Converter.exe
[DNG Converter path on Linux]
DNG_LINUX;/home/username/.wine/drive_c/Program Files/Adobe/Adobe DNG Converter/Adobe DNG Converter.exe
[DNG Converter path on Mac OS]
DNG_DARWIN;/Applications/Adobe DNG Converter.app/Contents/MacOS/Adobe DNG Converter
[Delete temp. dng file]
DELETE_DNG;True
# The value of DELETE_DNG must be True or False
少なくとも仮想環境下の Python インタプリタのパスと、ART のインストールパスの設定は必要です。仮想環境に関しては、そもそもホームディレクトリのユーザ名が必ず異なりますし、また、Windows では、ART のインストールディレクトリがバージョンごとに異なっていることが多いと思いますので。またモデル名もデフォルトを変更するなら変更が必要です。デバイス名は、cuda (NVIDIA GPU で cuda が使える場合), cpu, mps (Mac ARM チップ) のどれかから選択します。
[Decode Nikon HE Raw] 以下の項目は、Nikon の HE 圧縮ファイルを扱うかどうかです。ここを True にした場合、その下の DNG コンバーターなどのインストールパスなどを設定する必要があります。Exiftool は Mac OS 以外は ART インストールディレクトリ傘下のものを使う前提となっていますので、Mac OS 以外はインストールパスを設定する必要はありません。
[Editing with ART] は、デフォルトで True になっていますが、これはデノイズした画像を一旦 ART に読み込んで編集したあと GIMP にエクスポートする設定です。これを False にすると、デノイズ済み画像を ART を経由せず GIMP に直送します。ただし、ART をスキップするには、rawforge Onnx 版を使う必要があります。通常の PyTorch 版だと、ここを False に設定しても ART の起動は無効になりません。これは PyTorch 版だと TIFF 出力した時に正しい画像が出力されないためです。この点改善されれば将来見直す可能性があります。
なお、ART を Linux 上の Flatpak 版を使っている場合は、[ART directory path on Linux] パラメータで、Flatpak 版用の記述をコメントアウトを取り消し、デフォルト値はコメントアウトしてください。
終わると ART が立ち上がり削減された画像が読み込まれます。なお、ART スキップモードで使うと、下の GIMP 読み込み画面に直行します。
ART で読み込み
ART での編集を終え、ART を閉じると GIMP に読み込まれます。
GIMP で読み込み
実行結果
再掲になりますが...
実行前
実行後
使ってみて
同じ GPU であるならば、Windows + Direct X 環境と、Linux (Kubuntu) + cuda 環境よがほぼ互角というのは意外でした。OS自体としては最近の Windows はいろいろ持っていてもっさりしつつあるのに対し、Linux は軽いというイメージですので。24M の Nikon NEF ファイルを処理すると、TreeNetDenoise モデルと GTX1650 環境で rowforge[directml] 版だと、25 sec.、Linux rawforge PyTorch cuda オプションで 26 sec. でした。また、RTX3050 のモデルでは、rowforge[directml] 版で、12 sec. PyTorch cuda 版では、10 sec. でした。ニューラルネットワーク処理 (AI) では cuda がもてはやされていますが、Direct X はひょっとすると cuda に勝るとも劣らないのかもしれません。これは Onnx と PyTorch のどちらが効率的にプログラミングできているかという問題なのかもしれませんし、よりハードウェア的に高性能な GPU だと変わるかもしれませんが、Linux における cuda 版の Onnx と PyTorch では、Onnx 版が2倍程度遅いのを考えるとやはりそもそも Direct X と cuda の差のような気がします。
ちなみに、Windows + Onnx 版において NDIVIA GPU + Direct X 環境は、外付け GPU を使わない cpu 版に対し、5 倍程度早いです。先の GTX1650 + Windows 環境では、Direct X 使用で 25 sec. cpu 版使用で 75 sec. でした。 RTX3050 + Windows 環境では、12 sec. vs 61 sec. 程度でした。
Mac OS に関しては ARM M2 の MacBook Air (メモリ 16G) で検証していますが使用実感としては、エントリークラスの GPU の GTX1650 よりも遅いので (PyTorch 版 mps オプション使用で、同じファイルで 39 sec. 程度、Onnx 版で 65 sec. 程度)、Mac の記事では、Mac のパフォーマンスはすごいという話がかなり出ていますが、話はかなり盛っているのではと思わされます。ARM M2 チップの内蔵 GPU のハードウェア的能力が、NVIDIA の GPU に比べてどの程度の差があるかはわかりませんが。ただ、消費電力はかなり少ないのかもしれません。Mac は画像処理に優れているという話もありますが、Windows でもカラーマネジメントをしっかりやっていれば、もはやそれも神話のような気がします。Air だからしょぼくて、Pro だともっと高性能だという話なのかもしれませんが。ただ Mac OS はカラーマネジメントを OS レベルで行っていますので、カラーマネジメントって何、という人にとっては、お勉強しなくても、変な結果が出にくいということはあるとは思います。