Project · Next.js
Sameframe: what it solved and how
Finds exact and visually similar photo and video copies on your own machine, with no uploads, no account and no telemetry.
The thinking
One decision worth defending
- 01
Problem
Media libraries get messy: exports, phone backups and re-encoded copies, with filenames that no longer explain anything, and deleting the wrong file cannot be undone.
- 02
Decision
Keep exact matching and AI matching apart. Exact copies are proven with SHA-256 and a byte-for-byte compare. The AI only suggests similar media for manual review and is never given a move action.
- 03
Why it holds
A model score is a guess and a byte compare is proof, so only proof is allowed to trigger a change. Files are hashed and compared again immediately before anything is moved, and the app aborts if something changed.
What it includes
Built
- Exact photo and video matching regardless of filename or folder
- Pre-move verification and a hidden .duplicates folder instead of deletion
- Similar-photo review with DINOv3 embeddings and similar-video review with V-JEPA 2 over sampled sequences
- Cached embeddings so unchanged files are not reprocessed
- A desktop app that runs 100% locally: no account, no telemetry, no uploads
Let AI suggest and let deterministic checks decide anything destructive. Show the user which of the two they are looking at.
Keep going
