Skip to content
NewA vision model scored my swim videos, and it liked almost everything
Nov 3, 2026·4 MIN READ
A vision model scored my swim videos, and it liked almost everything

A vision model scored my swim videos, and it liked almost everything

I ran the vision step of my reels-finder skill on 21 hours of action camera video. The scene descriptions were good. The 1 to 5 reel score was not, so I filter by tags and setting instead.

Two days ago I wrote about finding Instagram reels in years of video. I said the vision step was not tested on real footage yet. Now it is.

I pointed the skill at the folder from my action camera: 230 clips, 20.9 hours of 4K at 100 fps. The model was Qwen3 VL 30B A3B (MLX build) in LM Studio. Everything ran on the Mac.

What the run looked like

StepResult
Clips230
Footage20.9 h
Scenes after reels scan5,131
Time per scene in reels describeabout 2.3 s
Total describe timeabout 3.3 h
Scenes about swimmingabout 300

The model gets three frames per scene and returns JSON: a description, tags, setting, activity, people count and a reel score from 1 to 5.

The descriptions are good

I expected vague text like "a person outdoors". I got this instead:

three real descriptions, shortened
Underwater view of a swimmer's legs kicking, creating bubbles and ripples on the surface.
A swimmer dives into a lake from a rocky shore, with people and red inflatables nearby.
A coach instructs a group of three swimmers by the pool, using hand gestures to explain technique.

Bike ride, walk, car, park, pool, underwater, coach: it got all of these right. Search over these words works.

The score does not

The prompt asks for a reel score: 5 means "post this", 1 means "useless". Here is how the scores came out on the 922 scenes I kept after cleaning up the archive:

xychart-beta
    title "Reel score per scene"
    x-axis ["1", "2", "3", "4", "5"]
    y-axis "Scenes" 0 --> 500
    bar [33, 50, 371, 466, 2]

Half of everything is a 4. Across all 5,131 scenes only two got a 5, both from one coached pool session. A slow walk along a road got a 4. So did a forest path with nothing happening. The score says "this is a nice, clear shot", not "this would stop someone scrolling".

--min-score 4 still keeps half of the scenes, and inside that half the score does not rank anything. Treat it as a filter for bad shots (1 and 2), nothing more.

What works better

The structured fields are far more useful than the number:

setting

72 scenes came back as pool. One filter, and the bike rides are gone.

activity

211 scenes say swimming, plus underwater view, bubbles rising and swimming lesson.

tags and description

Full text search on words like underwater, dive or coach finds the shots I actually want.

date

Grouping by day shows the good sessions at once: one lake day had 59 swim scenes in 9 GB.

So my search for a swim reel became reels search "underwater swimmer" --setting pool plus a look at the gallery. The score plays no part in the pick.

Two small surprises

LM Studio served on port 1235, not the default 1234. reels config --lmstudio-url http://localhost:1235/v1 fixed that in one line.

The index also told me what was filling my disk. 155 GB of the folder was one overnight recording of an empty room. Seeing "static shot, dim room" on about 2,800 scenes from one night made the delete decision easy.

What it took

One afternoon of background work and no cloud API. If I did it again I would not ask the model for a score at all. I would ask for one short "why this works as a reel" line and rank by people count, motion and setting, which the model reads well.

Share
Mariusz Smenżyk
Written by

Mariusz Smenżyk

Builder for sport. Make Things Live.

Related notes