Adobe Bridge用・画像自動ラベリングスクリプトの全貌 【AI時代のコード共有術】GitHubに置くより「レシピ(仕様書).md」を公開したい。

続きを読む: Adobe Bridge用・画像自動ラベリングスクリプトの全貌 【AI時代のコード共有術】GitHubに置くより「レシピ(仕様書).md」を公開したい。

デジタル資産の整理、皆さんはどうされていますか? 特にAI生成画像を大量に作っていると、後から「あの画像どこだっけ?」となるのは日常茶飯事ですよね。

今回は、そんな悩みを解決するために作成した「AI画像自動ラベリング・スクリプト(Adobe Bridge対応版)」についてお話しします。

「完成品」ではなく「レシピ」を配るという選択

私のようなレベルの人間が、このAI全盛期にコーディングと向き合う中で、一つの確信に至りました。

それは、「完成したコードをGitHubに置いてリンクするよりも、AIに渡すための『指示書(仕様書).md』を公開する方が価値があるのではないか」ということです。

料理に例えるなら、出来上がったレトルト食品を配るのではなく、**「レシピ」**を公開するようなもの。 受け取った人が、自分の好みに合わせて塩加減を変えたり、手持ちの調理器具(AI)を使って自分専用の料理に仕上げる。これこそが、これからのクリエイターの知恵の共有の形だと思うのです。

開発環境:Gemini Pro × Antigravity

今回のスクリプト開発には、私の相棒であるGemini Proを使用しました。さらに、開発のプロセスではAntigravityをフル活用し、理想の挙動を形にしています。

このツールは、指定したフォルダ内の画像をAI(WD14 Tagger)が解析し、Danbooruタグを抽出してAdobe Bridgeで認識可能なメタデータ(XMP)として直接書き込んでくれるものです。

あなたのAIで「調理」してみてください

以下に、このスクリプトを完成させるために私が書いた「仕様書」をそのまま公開します。

コード自体はここには載せません。ですが、この仕様書をあなたの使い慣れたAI(ChatGPTやClaude、あるいは私と同じGeminiなど)に読み込ませてみてください。

きっと、あなたの環境に最適化された、あなただけの便利なスクリプトが「完成」するはずです。

1. 目的
指定したディレクトリ内の画像(JPG/PNG)をAIで解析し、内容に即した「Danbooruタグ」を抽出。それをAdobe Bridgeのキーワードとして認識可能なメタデータ(XMP)として画像ファイルに直接書き込む。

2. 動作環境・技術スタック
言語: Python 3.10+
AI推論: ONNX Runtime (WD14 Tagger 等のONNXモデルを使用)
メタデータ操作: ExifTool (Pythonラッパー: PyExifTool)
対象OS: Windows 11 (ユーザー環境準拠)

3. 主要機能
3.1 画像スキャン機能
定数 TARGET_DIR で指定されたパスを起点に、ディレクトリ内を走査する。
対象拡張子: .jpg, .jpeg, .png
再帰的なサブディレクトリの走査オプション(ON/OFF)を持つ。

3.2 AIタグ推定機能 (Danbooru解析)
画像認識モデル(例: wd-v1-4-vit-tagger-v2)を用いてタグを抽出。
スコア閾値(Threshold): 判定信頼度が一定値(例: 0.35)以上のタグのみを採用する。
タグのクリーンアップ: アンダースコア(_)をスペース( )に置換する処理を含む。

3.3 メタデータ書き込み機能
Adobe Bridgeが「キーワード」として認識する標準的なタグに書き込む。
書き込み先タグ: * XMP-dc:Subject (Bridgeのメインキーワード)
IPTC:Keywords (互換性維持のため)
既存データの保護: 既にキーワードがある場合、削除せずに追加(Append)する仕様とする。

4. 設定定数 (Constants)
スクリプトの冒頭で以下の変数をユーザーが書き換え可能とする。

TARGET_DIR = r"C:\Users\YourName\Pictures\AI_Generated" # 処理対象フォルダ
MODEL_PATH = "./models/wd14_tagger.onnx"               # 学習済みモデルのパス
THRESHOLD = 0.35                                       # タグ採用の閾値
RECURSIVE = True                                       # サブフォルダも対象にするか
ADD_RATING_TAG = True                                  # ヌード/セーフティ等のレーティングタグを含めるか

5. 処理フロー
初期化: TARGET_DIR の存在確認と、ExifTool / AIモデルのロード。
ループ処理: * 画像ファイルを1枚読み込む。
AIモデルに画像を入力し、各タグの確率を取得。
閾値以上のタグを抽出し、リスト化する。
書き込み: PyExifTool を呼び出し、一括でメタデータを更新する。
完了報告: 処理したファイル数とエラーの有無を表示。

6. エラー処理・注意事項
ファイルロック: 画像が他のソフト(Bridge自体など)で開かれている場合のエラーハンドリング。
バックアップ: メタデータ書き込みに失敗した場合に備え、元ファイルを上書きする前にオプションで元データの保持(ExifToolのデフォルト挙動 _original ファイル生成)を検討する。
依存関係: 実行環境に ExifTool.exe がインストールされ、パスが通っている必要がある。