File names like IMG_4821.jpg say nothing about what a photo shows. Point this tool at a folder, let it index your pictures once, then type a description such as “birthday cake with candles” or pick a photo to find similar ones. The model, the index and your photos never leave your device.
Processing locally on your device
Overview
Semantic search matches meaning rather than words. It uses CLIP, a model from OpenAI (MIT licence) trained on hundreds of millions of image–caption pairs to place pictures and the sentences describing them close together in a shared space. The image encoder turns each photo into an embedding of 512 numbers; the text encoder does the same for your search. Photos are ranked by cosine similarity to the query, which here typically lands between 0.2 and 0.35 for a good text match. With an example photo instead of text, similar pictures score much higher, often 0.6 or more.
Indexing is the slow part and happens once. Each photo is decoded, scaled so its short side is 224 pixels and passed through the CLIP ViT-B/32 vision encoder with Transformers.js. On the CPU path the 8-bit encoders total about 154 MB and each photo takes around 0.1–0.5 seconds on a laptop; with WebGPU, 16-bit encoders (about 300 MB) run on your graphics card. Photos are processed in batches of eight, and you can pause indexing at any point to search what is already done, then resume.
The index is saved in your browser's IndexedDB, keyed by file name, size and modification date: a 2 KB embedding plus a small JPEG thumbnail, roughly 10 KB per photo. When you reopen the same folder, unchanged photos load instantly from the index and only new or edited files are processed. In Chrome and Edge the tool can remember the folder itself and reopen it with one click; other browsers use a standard folder picker or drag and drop.
CLIP is good at objects, scenes, activities, colors, lighting and visual style. It is weaker at counting (“three dogs”), left–right relations, reading small text inside photos and recognizing specific people or places, and it understands English queries best. The tool adds “a photo of” to short queries because CLIP was trained on captions, which slightly sharpens the ranking.
| Photos | Stored index | First indexing on a laptop CPU | Reopening later |
|---|---|---|---|
| 500 | ~5 MB | 1–4 minutes | Seconds |
| 2,000 | ~20 MB | 5–15 minutes | Seconds |
| 10,000 | ~100 MB | About 30–80 minutes | Several seconds |
| 20,000 | ~200 MB | Index subfolders over several sessions | Under a minute |
Choose a folder (subfolders are included) or drop a set of photos.
Wait for the one-time model download; indexing then runs with a progress bar.
Type a description, or click one of the example searches.
Browse results ranked by similarity, with a score under each thumbnail.
Open a photo and click Find similar photos, or use the image button to search with an outside example.
Come back later and reopen the folder: only new photos are indexed.
Use cases
Find “snowy mountain hike” or “kids in Halloween costumes” among years of unsorted camera-roll exports without tagging anything by hand.
Search folders of references, stock photos or old shoots by subject or style, such as “flat lay on a pink background”, and pull up look-alikes of a shot you already like.
Locate every product photo taken outdoors or in a particular setting across exported campaign folders, while unreleased material stays on your machine.
Explore a large scanned photo collection by visual concept, for example every picture that shows ships or crowds, before cataloguing it properly.
Pro tips
Answers to common questions about the semantic media search.
In your browser's IndexedDB on this device. It is never uploaded or synced. Clearing the site's data or pressing Clear stored index removes it, and you can rebuild it at any time.
Text-to-image cosine similarity in CLIP is naturally small, usually 0.15–0.35. What matters is the ranking: the best matches sit at the top. Image-to-image similarity is higher, often above 0.6 for close look-alikes.
It depends on your device. On a typical laptop CPU expect roughly two to ten photos per second after the model has loaded, and more with WebGPU. You can pause at any time and search the photos indexed so far.
No. CLIP is not a face recognition system and the tool does not identify people. Descriptions such as “woman with a red umbrella” work; names do not.
The index is keyed by file name, size and modification date, so a renamed or edited photo is treated as new and re-indexed the next time you open the folder. Unchanged photos load from the stored index instantly.
No. ToolEnhancer processes files on your own device inside the browser. They are never sent to, stored on or seen by our servers.
Yes. The semantic media search is free to use with no sign-up, no watermarks and no daily limits.