AMD Developer Hackathon ยท Track 2

One video.
Four voices.

StyleReel watches a clip, works out what is actually happening on screen and in the audio, then captions it in four different registers. The facts stay true to the video. Only the tone changes.

The real output

Same footage, four ways to say it

Pick a voice under each clip. Nothing here is edited or cherry picked. This is exactly what the container writes to its results file.

Measured, not claimed

How it holds up

A local harness runs the container against a 15 clip test set and grades every caption with a separate model on accuracy and tone.

0.93
style match, scored 0 to 1
1.00
a blind judge tells all four voices apart, every time
51s
to caption a 2 minute, 3 scene clip end to end
5 / 5
failure drills still write valid output and exit clean
Under the hood

Understand first, then perform

All four captions come from one checked description of the video, so they never argue with the footage or with each other.

See and hear

Frames and dialogue

Smart frame picks plus a local transcript. Fireworks dropped its speech API, so we run our own. Dialogue is where the jokes live.

Describe

Get the facts right

Gemma 3 on an AMD Radeon PRO W7900 writes down what it sees, then checks the description against the frames a second time before anyone jokes about it.

Stylize

Find the four voices

Each voice gets its own writer, five drafts deep, working only from the facts. The joke is always about the real thing on screen.

Judge

Keep the best take

A different model checks each draft for accuracy and picks the strongest. A style is never missing, the output is never broken.

Try it

One command

Point it at a folder with your clips and read the captions back out.

  terminal
# drop a tasks.json in ./input, get results.json back in ./output
docker run --rm \
  -v $PWD/input:/input:ro \
  -v $PWD/output:/output \
  ghcr.io/nishchaymahor/stylereel:latest