gemma4-timeframe-captioner
Applies a Gemma 4 vision-language model, run with llama.cpp from a GGUF file, to video frames selected by input TimeFrame annotations for prompt-driven captioning / scene description (experimental llama.cpp backend). Captioning is composite: the frames sampled from a TF are fed to the model in a single prompt and yield one caption. When maxImagesPerPrompt is set, a TF with more frames than the cap is split into several prompts and yields one caption per prompt, all aligned to that TF. A model runtime parameter selects the Gemma 4 size and quantization (default ggml-org/gemma-4-E4B-it-GGUF:Q8_0); see metadata.py for the GPU memory each needs. The app runs its own llama-server process and needs the llama-server executable (included in the container image).