mcpField
P
photo-dedup

photo-dedup

github.com/tivojn生産性056 回インストール37 週間前に更新
リポジトリ

photo-dedup について

photo-dedupは、フォルダー内の重複・類似写真を検出し、選択した画像を確認用に整理するスキルです。知覚ハッシュで分類し、元の写真は移動も削除もしません。

主な機能

  1. 01知覚ハッシュによる画像照合
  2. 02類似度に基づく写真の分類
  3. 03最大ファイルを代表画像に選択
  4. 04ブラウザーでグループを確認
  5. 05プレビューと閾値の調整

活用シーン

  1. 01イベント写真フォルダーの重複整理
  2. 02保存前の類似ショット確認
  3. 03大量の写真から独自画像を抽出

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tivojn/photo-dedup --skill photo-dedup

インストール後、Claude Code で/photo-dedupを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
scripts/
generate_review.py
review_server.py
dedup.py

詳細

Photo Dedup — 重複写真から一意な写真を見つけて選択

ユーザーが写真の重複を除去したい、大量の写真から一意な画像を見つけたい、類似写真や重複写真を削除したい、または写真を一意性に基づいて整理したい場合に、このスキルを使用します。トリガーフレーズ:「写真の重複を除去」「重複写真を見つける」「一意な写真」「重複画像を削除」「写真の重複除去」「/photo-dedup」。

概要

このスキルは写真フォルダー(通常は学校の撮影会などで撮られた数百枚)を処理し、知覚ハッシュを使って重複写真やほぼ同じ写真を特定して、一意な写真と重複写真のフォルダーに整理します。約500枚の写真のうち、本当に一意なものは約100枚というワークフローを想定しています。

仕組み

  1. 知覚ハッシュ — 各画像を、視覚的な内容を表す知覚ハッシュ(pHash)に変換します。見た目が似ている画像は、解像度、圧縮、軽微な編集が異なっていても、似たハッシュになります。

  2. クラスタリング — ハッシュの類似度に基づいて画像をグループ化します。各クラスターは1つの「シーン」または「ショット」を表します。各クラスターから最適な画像(ファイルサイズが最大のもの=品質が最も高いもの)を、一意な代表画像として選択します。

  3. 出力 — 一意な写真は unique/ フォルダーにコピーされます。検出された重複写真の数とクラスターのグループ分けを示すレポートが生成されます。

使用方法

基本 — フォルダーの重複を除去:
/photo-dedup ~/Photos/school-event/
しきい値をカスタマイズ:
/photo-dedup ~/Photos/school-event/ --threshold 8

しきい値は類似度の判定感度を調整します(デフォルト:6、範囲:0~20)。値が小さいほど一致判定が厳しくなり、大きいほど積極的にグループ化されます。

プレビューモード(ファイルをコピーしない):
/photo-dedup ~/Photos/school-event/ --preview

ワークフロー

ユーザーがこのスキルを呼び出したとき:

  1. 入力を検証 — ソースフォルダーが存在し、画像が含まれていることを確認します
  2. 必要に応じて依存関係をインストール — pip3 install Pillow imagehash pillow-heif
  3. 重複スキャンを実行:
    python3 ~/.claude/skills/photo-dedup/scripts/dedup.py <source_folder> --preview [--threshold N]
    
  4. 結果をユーザーに報告(合計、一意な写真、重複写真)
  5. 確認用サーバーを起動(ローカルで実行され、ブラウザーが自動的に開きます):
    python3 ~/.claude/skills/photo-dedup/scripts/review_server.py /tmp/dedup_report_<folder_name>.json --output ~/Desktop/selected_photos &
    
    その後、ユーザーは次の操作を行えます:
    • 重複グループを横並びで確認する(Notion風のUI)
    • クリックして各グループから残す写真を選択する
    • 「最適な写真を自動選択」を使って、ワンクリックでデフォルトを選ぶ
    • 「選択した写真を保存」をクリックする — 写真はすぐにコピーされ、Terminal は不要です
  6. ユーザーが保存した後、選択した写真の保存場所を伝えます
  7. 完了したらサーバーを終了:kill $(pgrep -f review_server)

確認用サーバーは軽量なローカル HTTP サーバーです。インストールも設定も不要で、Python だけで動作します。 技術に詳しくないユーザーは、ブラウザー上で操作するだけです。ワンクリックで保存できます。

出力構成

~/Desktop/selected_photos/     ← User's selected photos (copies, originals untouched)
/tmp/dedup_report_*.json       ← Clustering report
(original photos are NEVER modified or deleted)

重要な注意事項

  • 非破壊的 — 元の写真が移動または削除されることは決してありません。一意な写真はサブフォルダーにコピーされます。
  • 対応形式 — JPG、JPEG、PNG、HEIC、WEBP、TIFF、BMP
  • パフォーマンス — 最新のハードウェアでは、500枚以上の写真を1分以内に処理します
  • 選択基準 — 重複写真が見つかった場合、最もサイズの大きなファイル(最も高品質なもの)が代表画像として選ばれます

コメント