本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
NX Studioが重いので、キーボードでRAWを選別できる軽量ビューアを作った | UNIX Cafe

これまで、RAWで撮影した写真の確認には主に「NX Studio」を使っていました。
しかし、大量のRAW画像が格納されたフォルダを開くと、プレビューの読み込みにかなりの時間がかかります。フォルダを開いた瞬間に中の画像をまとめて読み込みにいく仕様のようで、最初の待ち時間がどうしても長く感じられていました。
サムネイルの一覧表示や画像情報の取得、さらには編集可能な状態にする必要がある現像ソフトの仕組みを考えれば、こうした挙動は当然なのかもしれません。
ですが、撮影したRAW画像をすべて現像するわけではありません。
実際に現像するのは、撮影した画像のごく一部です。ブレているもの、似たような構図のもの、明らかに使わないものは、現像ソフトに読み込ませる前に減らしておきたいところです。
つまり、欲しかったのは高機能なRAW現像ソフトではなく、現像する候補を選ぶための軽いプレビュー環境でした。
選別の段階で必要なのは、もっと単純な操作です。
- RAW画像を表示する
- 前後の写真へ移動する
- フォルダを切り替える
- 不要な写真をゴミ箱へ送る
それなら、現像ソフトに読ませる前の一次選別に特化したビューアを作った方が使いやすいはずです。そう考えて、ローカルで動く小さなビューアを作りました。
市販のRAW現像ソフトのように、高機能な編集ができるわけではありません。その代わり、「画像を送る」「戻る」「捨てる」という選別作業を極限まで軽くし、すべての操作をキーボードだけで完結できるようにしています。
この記事では、そのために作った RAW画像選別ツール、RAW Cull Viewer を紹介します。
作ったもの:RAW画像選別ビューア『RAW Cull Viewer』
今回作ったのは、RAW写真の選別作業を劇的にスピードアップさせるための専用ビューア「RAW Cull Viewer」です。
GitHubリポジトリはこちらです。
https://github.com/k1117n-cmyk/raw-cull-viewer
このツールは Node.js でローカルサーバーを立ち上げ、ブラウザからアクセスして使用します。NikonのNEFファイルをはじめとするRAWデータから、表示用の軽量なJPEGをバックグラウンドで自動生成し、それをブラウザ上でサクサク確認していく仕組みです。
目的は、現像ソフトを開く前に、現像する候補を軽く絞り込むことです。そのため、現像機能や細かい編集機能は入れていません。
その代わり、次の画像へ移動するまでの待ち時間や、不要な画像を捨てるまでの手数を減らすことを優先しています。
RAW Cull Viewerでざっと見て、不要なものを減らす。そのあとで、残したい写真だけをNX Studioなどの現像ソフトで開く、という使い方を想定しています。
主な機能は以下の通りです。
- RAWファイルのプレビュー表示
- 下層フォルダの選択
- キーボードで前後の画像へ移動
DキーでmacOSのゴミ箱へ移動Uキーで直前の削除を取り消し- RAWの縦横向き補正
- 表示用JPEGキャッシュの自動生成
- 次の画像を先読みして、移動時の待ち時間を減らす
動作環境・前提条件
このツールは、いまのところ、macOSで使う前提で作っています。動かすためには、次の環境やツールが必要です。
- OS: macOS
- 実行環境: Node.js
- 依存ツール:
- ImageMagick(
magickコマンド:表示用JPEGの生成に使用) - ExifTool(
exiftoolコマンド:画像の縦横向きの判定情報などに使用)
- ImageMagick(
画像処理やメタデータの解析には、定評のある外部ツール(ImageMagick / ExifTool)を採用しています。
依存ツールのインストール方法
パッケージ管理システムの Homebrew を使って以下のコマンドで、簡単にインストールできます。
brew install imagemagick exiftool使い方と起動方法
ツールの起動は非常にシンプルです。ターミナルから確認したいRAW画像が格納されているフォルダ(ディレクトリ)のパスを指定して実行します。
npm start -- "/path/to/raw-folder"起動するとローカルサーバーが立ち上がり、ターミナルにアクセス用URLが表示されます。
http://127.0.0.1:5173これと同時に自動でブラウザが開き、画像ビューアの画面が表示されて選別作業を始められます。
起動用のスクリプトを用意するとさらに便利
毎回コマンドを打つのは面倒なので、起動用のスクリプトを用意しておくと便利です。
スクリプトの中身は以下のようになっています。
#!/bin/zsh
set -e
SCRIPT_DIR="${0:A:h}"
cd "$SCRIPT_DIR"
RAW_FOLDER="${1:-${RAW_FOLDER:-}}"
if [[ -z "$RAW_FOLDER" ]]; then
echo 'Usage: ./start-d4.sh "/path/to/raw-folder"'
echo ' or: RAW_FOLDER="/path/to/raw-folder" ./start-d4.sh'
exit 1
fi
PORT="${PORT:-5173}"
(
sleep 1
open "http://127.0.0.1:${PORT}"
) &
npm start -- "$RAW_FOLDER"このスクリプトを使うと、引数としてパスを渡すだけでなく、次のように環境変数で写真フォルダを指定して起動することができます。
RAW_FOLDER="/path/to/raw-folder" ./start-d4.sh応用:カメラや用途ごとにスクリプトを分ける
もし複数のカメラを使い分けていたり、撮影用途ごとに保存先フォルダが決まっていたりする場合は、このスクリプトをコピーして専用の起動ファイルを作っておくとさらに快適になります。
# 機種ごとの専用スクリプトとしてコピー
cp start-d4.sh start-camera-name.sh
# 環境変数を固定したスクリプトにしておけば、次回から叩くだけで起動
RAW_FOLDER="/path/to/raw-folder" ./start-camera-name.shこのように用途に合わせてカスタマイズしておけば、日々の写真の取り込みから選別までの動線がスムーズになります。
キーボード操作でサクサク選別する
選別中は、できるだけマウスを使わずに進められるようにしています。
ここは一番重視したポイントです。大量の写真を見ていると、マウスでボタンを押したり、サムネイルを選んだりする操作が少しずつ負担になります。
「画像を見て、次へ送る。戻る。不要ならその場で捨てる。」
この一連の流れを、ホームポジションから手を離さずに淡々と続けられる環境こそが、市販のRAW現像ソフトとは別に欲しかった機能でした。
ショートカットキー一覧
割り当てているキーボード操作は次の通りです。
j: 次の画像k: 前の画像→: 次の画像←: 前の画像]: 次のフォルダ[: 前のフォルダD: 表示中の画像をmacOSのゴミ箱へ移動U: 直前の削除を取り消しR: 一覧を再読み込み
写真を見ながら、残すか消すかを判断して、不要なら D を押す。次へ進むなら j を押す。基本的にはこの繰り返しなので、何百枚ものRAW画像をざっとチェックするときでも手が止まらず、軽快に一次選別を終わらせることができます。
RAW表示の仕組み
ブラウザはRAWファイルをそのまま表示できません。
そこで、サーバー側で表示用JPEGを生成し、それをブラウザに渡しています。
処理の流れは、おおよそ次のようになっています。
RAW / NEF
→ ExifToolで埋め込みJPEGを抽出
→ ImageMagickなどで向き補正とリサイズ
→ .viewer-cache に保存
→ ブラウザで表示生成したJPEGは、起動ルート直下の .viewer-cache に保存します。
一度生成したプレビューは再利用するので、同じ画像をもう一度見るときは軽く表示できます。表示がおかしくなった場合は、サーバーを止めて .viewer-cache を削除すれば再生成できます。
rm -rf "/path/to/raw-folder/.viewer-cache"プレビュー画像は最大900px程度にリサイズしています。
ここも、軽さを優先した部分です。
選別用なので、等倍確認や細かい画質チェックは目的にしていません。ピントや構図を大まかに確認し、不要な写真を減らすためのサイズです。
画面のチラつきゼロにする「プレビューの先読み」
大量の写真を選別していると、次の画像へ切り替えたときに「待たされる」ことが大きなストレスになります。特に、画像が切り替わる瞬間に一瞬黒い画面が見えたり、画面がチカチカしたりすると、目への負担も馬鹿になりません。
市販のRAW現像ソフトで感じていた重さを避けるために作ったビューアなので、ここで同じように待たされると意味がありません。
そこでこのツールでは、現在表示している画像の「少し先」にある数枚を、裏側であらかじめ読み込むようにしました。
ただし、すべての画像を一気に読み込むと、今度はビューア自体が重くなります。そこで、現在位置から先の10枚程度を対象にし、裏側では同時に読み込みすぎないようにしています。
このおかげで、jキーで次々に送っていくときの待ち時間がなくなりました。現像ソフトに読み込ませる前の一次選別としては、この軽さが一番大きいメリットだと感じています。
削除は完全削除しない
D キーで削除するといっても、いきなりディスクから完全に消去するわけではありません。
安全のために、macOSのゴミ箱へ移動します。
外付けボリューム上のファイルであれば、そのボリュームの .Trashes 配下へ移動します。ゴミ箱への移動に失敗した場合は、起動ルート直下の trash フォルダへフォールバックします。
また、直前の削除だけなら U キーで取り消せるようにしています。
選別作業では勢いでキーを押すことがあるので、完全削除にしないのは大事です。
使ってみた感想
このビューアは、NX Studioの代わりに現像まで行うためのものではありません。
現像や細かい調整は、これまで通りNX Studioや別のソフトで行います。このビューアの役割は、その前段階です。
しかし、その前段階が軽くなるだけで、撮影後の選別作業に向かう気持ちが楽になりました。
最初からすべてのRAWを現像ソフトに読ませるのではなく、まずRAW Cull Viewerでざっと見て、明らかに不要なものを減らす。その用途に絞ると、ブラウザで軽く開けて、キーボードだけで進められる環境は快適です。
日付別や撮影場所別にフォルダを分けている場合も、サイドバーからフォルダを切り替えられるので、大量のデータを扱う際にもストレスがありません。
特に、j / k で画像移動、D でゴミ箱へ移動、U で取り消し、という流れに慣れると、マウスに手を伸ばす必要がなくなります。
「現像する画像を選ぶ」ためだけなら、これくらい割り切った道具の方が、かえって手に馴染む場面があると感じています。
まとめ
NX Studioで大量のRAW画像を開くと、最初のプレビュー読み込みに長い待ち時間が発生することがあります。
しかし、撮影したすべてのRAWデータを現像するわけではありません。実際に現像処理に進めるのはごく一部だからこそ、その前段階で「サクッと軽く選別できる道具」が欲しいと感じていました。
そこで、RAW画像の選別作業に必要な最小限の機能だけを詰め込んだ、ローカル環境で動く軽量なビューアを自作しました。
ブラウザから手軽にアクセスでき、裏側でRAWから表示用JPEGを自動生成。あとはキーボードだけで前後の移動や削除をサクサク進められます。
- RAW画像を表示する
- 前後の画像へ移動する
- フォルダを切り替える
- 不要な画像をゴミ箱へ送る
- 直前の削除を取り消す
実際に作ってみて、一次選別に必要な機能はこれくらいでした。不要な画像はmacOSのゴミ箱へ移動し、U キーでUndoもできるため、いきなり完全削除されてしまう心配もありません。
色調の調整や本格的な現像はNX Studioなどの専用ソフトにすべて任せ、このビューアは「選別」だけに徹する。この役割分担によって、大量のRAW画像をざっと確認して不要なコマを間引く作業が、驚くほど快適になりました。
同じように「現像ソフトを開く前の選別をもっと軽くしたい」と感じている方は、ぜひ試してみてください。
