caption styles per clip
AMD Hackathon · Track 2 · Video Captioning
StyleFrame turns video clips into captions with four distinct voices.
A linux/amd64 Docker agent that samples video frames, compresses temporal context into a contact sheet, asks a Fireworks multimodal model for grounded visual facts, and writes the required caption JSON.
CONTACT SHEET
→MINIMAX-M3
→CAPTIONS
local benchmark on 3 clips
local LLM-style judge score
container-ready image
Architecture
The agent treats a video as a compact visual timeline.
Live demo
Paste a video URL and generate captions online.
The browser samples frames into a contact sheet, then Vercel securely calls Fireworks from a server-side API route. Your API key never enters the browser.
Visual facts
Sample clip
One scene, four tones.
The UI below is a front-end demo of the public sample output. Hidden evaluation still runs the Docker image directly with mounted input and output folders.
A busy urban street with two-way traffic and autumn trees under daytime lighting.
Quality controls
Small guardrails make the captions more judge-friendly.
Grounding first
Frames become visual facts before style generation, reducing captions that drift away from the scene.
Style separation
Tech humor must contain technical language; non-tech humor is kept plain and everyday.
Runtime aware
Contact sheets keep multimodal calls compact enough for the 10-minute hidden evaluation limit.
Schema safe
Output is normalized into the required JSON shape so missing styles do not silently break scoring.
Submission image
Run the same container used for evaluation.
ghcr.io/noah-wang/amd-video-caption-agent:latest
docker run --rm --platform linux/amd64 \
-e FIREWORKS_API_KEY="$FIREWORKS_API_KEY" \
-v "$(pwd)/input:/input" \
-v "$(pwd)/output:/output" \
ghcr.io/noah-wang/amd-video-caption-agent:latest