Photo Index Pilot

connecting…

CPU cores

Efficiency coresPerformance cores

GPU and memory

GPU (32 cores)–
Memory used (system)–
Pipeline processidle

Neural Engine activity is not shown: macOS only reports it with administrator access.

Last 5 minutes

CPU total %GPU %Pipeline memory (of 64 GB)

Model runs

Seconds per photo excludes model loading. CPU, GPU and memory are averages and peaks while that run was active.

8B vs 32B captions

The 32B model captioned every 6th photo. Pick the better caption on a few photos; the tally decides whether 32B is worth about 3× the time at full scale.

Burst checking

Photos taken in quick succession of the same thing, for example to catch blinks. The first four methods are forward chains: each only links a photo to the one just before it, within the time window. Time only uses nothing else; the other three also require the two pictures to look alike. SigLIP2 anchored is a two-pass method: it first cuts the photos into runs by time, then inside a run compares every photo with every open burst, joining one only if it looks like both the burst's first photo (the anchor) and its latest photo. That stops a slow pan drifting into one giant burst, and lets up to two odd frames in a row (a passer-by, a hand over the lens) be skipped rather than splitting a burst in two. Skipped frames are shown faded inside the burst. The green outline marks the suggested keeper: every frame in a burst is scored on the factors below, each scaled 0–1 within that burst and multiplied by your weight, and the reason is written out under the burst. Set a weight to 0 to ignore a factor.

What matters when picking the keeper

How the methods compare

What burst checking would cost in an album (measured on this Mac)

Estimated dates for scanned photos

These photos have no usable metadata, so each year is a guess by the Qwen vision model from what is visible: clothes, hairstyles, cars, technology, film and print style. No file or folder name is ever shown to the model. A year range is given, and the clues are written out so you can judge them. Type a year in the box to correct one; your corrections are kept and shown with a green mark. Where the 32B model also ran (every 6th photo) its answer is used, and photos where the two models differ by 8+ years can be listed with "Models disagree".

How the index is stored

Links by photoLinks by model runLinks by face group🔑 primary key

What each table holds

Rules the data follows

  • Originals are never written. photos keeps each file's SHA-256 so the pilot can prove they are unchanged.
  • Face rectangles are pixels from the top-left corner of the stored image (x, y, width, height).
  • Every model writes one done row per photo, with its time and any error. That is what makes a stopped run resume where it left off.
  • Unknown GPS stays empty, never 0,0.
  • Embeddings and face fingerprints are stored as raw float32 numbers: 1152 per photo for SigLIP2, 4096 for Qwen, 512 per face for InsightFace.
  • Names in people belong to one recognition model's groups, because each model groups faces differently.