写真アプリを開くたびに、なぜか「ピンボケ写真」がどんどん増えていく…。そんな悩みを抱えていませんか?
僕も「D:\Picture」フォルダに約8万枚の写真が散乱しており、今から整理なんて絶対無理。見て見ぬふりを決め込んでいました。考えただけでぞっとするような作業になる。

「全部見る時間なんてない…でも放置すると気持ち悪い」
そんなワガママな悩みを解決するために僕が導入したのが、**n8n**と**Google Gemini API**を組み合わせた「ピンボケ写真自動検出ワークフロー」です。
毎日1回バッチ処理を回すだけで、ピンボケ写真を自動的にピックアップし、Excel一覧として出力してくれるようになりました。
今回は、僕が試行錯誤して作ったワークフローの構成や設定ポイントを紹介します。写真整理に悩んでいる方は、ぜひ参考にしてください。
1.なぜピンボケ検出が必要なのか
僕が使っているCanonのミラーレスカメラM200は、一応「顔認証AF」がついていますが、動きの速い子供やペットを撮ると確実に外れます。しかも「よそ見」「ぼーっとしてた」写真も大量に残ってしまうのです。
結局、ピンボケ写真は「後で消そう」と思っても、いつの間にか放置。気づけば数万枚の写真の中に埋もれている…という状態でした。
2.解決策:n8n + Gemini APIの自動化
以前にもPythonのOpenCVでピンボケ写真の自動検出を試みましたが、精度がイマイチでそのままに。こういうのはAIが優秀そうだな。
まずは n8n です。ワークフローをGUIで組めるノーコード自動化ツールで、Dockerでセルフホストすれば無料で使い放題。
そこにGoogleの画像解析AI「Gemini」を組み合わせることで、「この写真はピンボケしているか?」を自動判定させることができるのです。
Geminiの無料枠は1日あたり約500枚の制限があります。 8万枚 ÷ 500枚/日 = 160日 ≒ 約5.3ヶ月。半年ちょっとかかりますが、自動で動くので待っているだけでOKです。
3.ワークフローの構成
僕が作ったワークフローは、主にこの流れで動いています。
1.トリガー:実行ボタンをクリック
2.処理済みログ読み込み:過去に処理した写真リストを取得
3.写真フォルダ一覧取得:対象フォルダ内の全写真を取得
4.未処理写真の抽出:処理済みリストと照合し、未処理の写真のみを抽出
5.ループ処理:写真を1枚ずつ処理
6.Geminiによる判定:画像をAIに送り、ピンボケかどうかを判定
7.Excel出力:ピンボケ写真のみを一覧でExcelに出力
8.ログ保存:処理済みリストを更新し、次回以降の重複処理を防止
スクリーンショットを見ると、こんな感じにノードが接続されています。

4.Docker Composeの設定例
Dockerでn8nを動かす場合の `docker-compose.yml` はこんな感じです。
gist58d959be0df4b74396b6a252b094eb81
ポイントは、**写真フォルダと出力フォルダをマウント**すること。これにより、n8nから直接写真にアクセスできます。
5.実行結果
ピンボケ写真のリストが理由とともに、Excel形式で出力されます。写真はハイパーリンクから開く事ができ、すぐに不要な写真を削除することができます。

手作業:毎日200枚ずつ確認に約1時間。約400日(1年以上)必要
自動化:Gemini APIを使えば、毎日1回のバッチ処理で約1時間でExcel出力。
Excelのハイパーリンク確認に約5分
6.まとめ
n8nとGemini APIを組み合わせることで、大量の写真整理を効率化できました。Dockerでセルフホストすることで、サブスクリプションの月額費用も不要です。
写真整理は後回しにしがちですが、自動化ツールを活用すれば、大切な時間を他の作業に充てられます。ぜひ試してみてください。
以下のURLからワークフローJSONファイルをダウンロードできます。









