うちの子はスマホを渡すと、無邪気に写真を撮りまくる。気づくとカメラロールには、床、天井、指、ブレブレの顔、ほぼ同じ構図の連写が大量に溜まっていた。その数、およそ300枚。
いい写真も混ざっているのが厄介で、全部消すわけにはいかない。かといって1枚ずつ確認して消すのは苦行。既存のアプリも探したが、「クラウドに写真をアップロードする」タイプが多く、家族写真を外部サーバーに送るのは気が進まなかった。
ないなら作ればいい、ということでAI(Claude)に相談しながらツールを作った。
フォトえらび: https://photo-erabi.pages.dev

(無料・登録不要・Chrome/Edge対応。お試しデモモードあり)
できること
- ブレ・ピンボケ、暗すぎ、単色でなにが写ってるか不明、指の写り込みっぽい写真を自動で「消す候補」に振り分け(理由付きで🤖バッジ表示)
- そっくりな連写はグループ化して、見比べながら1枚だけ残せる
- 顔検出つき: 「ドアップで見切れ」「顔がブレてる」を消す候補にしつつ、いい笑顔の写真は自動でひいきして残す側に
- 動画対応: フレームをサンプリングしてブレた動画も候補に
- 自動判定のきびしさは「ゆる/ふつう/きびしめ」で切替可能
- 「消す」と判定してもいきなり削除せず、フォルダ内の「_削除候補」フォルダに移動するだけ。最終確認はサムネイル一覧+拡大表示つき
こだわり: 写真を1枚も外部に送らない
このツールはただのHTMLファイル1枚で、処理はすべてブラウザ内で完結する。サーバーには何も送信しない。
- フォルダへのアクセス: File System Access API(フォルダを選ぶだけで読み書き)
- iPhoneのHEIC写真: libheif(WASM)をWeb Workerで並列実行してブラウザ内で変換
- ブレ検出: ラプラシアン分散。「画面のどこにもピントが合っていない」判定にブロック分割を併用
- そっくり判定: dHash(perceptual hash)のハミング距離
- 顔・笑顔検出: face-api.js(TensorFlow.js)。これもブラウザ内で動く
「顔認識までローカルでやるの?」と思われるかもしれないが、今のブラウザは普通にできる。むしろ子どもの写真を扱うツールこそ、こうあるべきだと思う。
AIとの開発について
実装はほぼClaudeに任せて、自分は「実際に使ってみてのフィードバック」に徹した。「消す候補がもっと出ていい」「そっくり写真はどっちを残すか自分で選びたい」「この写真が弾けてない(実物を渡す)」のような要望を投げると、実際のサンプル画像を計測してしきい値を調整してくれたのが面白かった。
体感としては、コードを書く時間より「何が欲しいかを言語化する時間」が圧倒的に長い。逆に言えば、言語化さえできれば動くものが出てくる。
使い方
- スマホの写真をPCのフォルダにコピー(iPhoneはUSB+イメージキャプチャが楽。AirDropなら100枚ずつ小分けが安定)
- https://photo-erabi.pages.dev をChrome/Edgeで開いてフォルダを選ぶ
- 自動チェック後、一覧を見ながらポチポチ修正して、最後に移動を実行
写真を用意しなくても、トップページの「お試しデモ」でサンプル画像を使って動きを見られます。
おわりに
同じ悩みを持つ親は多いはず。無料で公開しているので、カメラロールが子どもの芸術作品で溢れている方はぜひ。感想・要望はThreads(@hi_its_ok)まで。