# Video Understanding Usage for OpenMontage > Sources: OpenMontage video_understand tool implementation, CLIP/BLIP2/LLaVA model > documentation, OpenCV image quality metrics ## Quick Reference Card ``` DEFAULT MODE: describe — generates captions for frames FOR REVIEW: quality — assesses blur, brightness, contrast FOR Q&A: qa mode with a query — "Is the speaker visible?" "Is the text readable?" DEFAULT MODEL: clip (fastest, good for classification) FOR DETAIL: blip2 or llava (slower, richer descriptions) MAX FRAMES: 5 default for video — sample strategically, not exhaustively ``` ## When to Use video_understand - **Visual QA during review** — check rendered output quality before delivering - **Footage analysis** — understand what's in user-provided footage before planning - **Highlight extraction** — identify the most visually interesting frames - **Quality gating** — programmatic check for blur, exposure, scene coherence - **Scene classification** — categorize footage by content type - **Asset validation** — verify generated images match the intended scene description ## Mode Selection | Mode | What It Does | When to Use | |------|-------------|-------------| | `describe` | Generates a text description of the frame | Understanding footage content, logging | | `qa` | Answers a specific question about the frame | Targeted checks ("Is text readable?", "Is face visible?") | | `quality` | Measures blur, brightness, contrast numerically | Automated quality gating, comparing takes | | `classify` | Categorizes the scene type | Sorting footage, pipeline routing | ### Quality Mode Metrics | Metric | What It Measures | Bad | Good | |--------|-----------------|-----|------| | `blur_score` | Laplacian variance | Below 100 = blurry | Above 500 = sharp | | `brightness` | Mean pixel value (0-255) | Below 50 = too dark, above 200 = overexposed | 50-200 | | `contrast` | Pixel standard deviation | Below 30 = flat/washed out | Above 80 = good contrast | ## Model Selection | Model | Speed | Capabilities | Best For | |-------|-------|-------------|----------| | `clip` | Fast | Classification, similarity matching | Quick scene categorization, batch processing | | `blip2` | Medium | Detailed captions, visual QA | Understanding complex scenes, answering questions | | `llava` | Slow | Most detailed understanding, reasoning | Deep analysis, subjective quality assessment | ### Model Selection Rules - Use `clip` for batch operations and classification tasks - Use `blip2` for describe and qa modes when detail matters - Use `llava` only when you need the most thorough understanding ## Frame Selection for Video - Default samples `max_frames` (5) evenly across the video - Use `frame_indices` to target specific frames (e.g., check quality at specific timestamps) - For quality review, sample the first frame, middle frame, and last frame minimum ## Common Workflows ### 1. Pre-Edit Footage Review ``` video_understand (describe, 10 frames) → inform scene_plan ``` Analyze user-provided footage before planning cuts or edits. Use `blip2` for detailed descriptions that inform the scene plan. ### 2. Post-Render Quality Gate ``` video_understand (quality) → pass/fail → re-render if needed ``` Run after composing the final video. Fail if any frame has blur_score < 100, brightness outside 50-200, or contrast < 30. ### 3. Highlight Selection ``` video_understand (describe, 20 frames) → rank by visual interest → select clips ``` Sample many frames, describe each, then select the most visually compelling segments for a montage or trailer. ### 4. Asset Validation ``` video_understand (qa, "Does this match: [scene description]?") → confirm or regenerate ``` After generating an image or video clip, verify it matches the intended scene description before proceeding. ### 5. Talking-Head Analysis ``` video_understand (qa, "Is the speaker's face clearly visible?") → face_enhance if needed ``` Check face visibility and framing before applying lip-sync or face restoration tools. ## Quality Checklist - Descriptions accurately match what's in the frame - Quality scores correlate with visual inspection (manually spot-check) - QA answers are consistent across similar frames - Classification categories are stable across adjacent frames - No false positives in quality gating (good frames passing, bad frames failing) ## Applying to OpenMontage When using the `video_understand` tool: 1. **Use `quality` mode as a post-render gate in the compose stage** — reject outputs below quality thresholds 2. **Use `describe` mode to analyze user-provided footage** at the start of the talking-head pipeline 3. **For batch quality checks, use `clip` model** (fastest) — switch to `blip2` only for detailed review 4. **Sample at least 3 frames for quality assessment** — beginning, middle, end 5. **Quality thresholds for passing:** blur_score > 100, brightness 50-200, contrast > 30 6. **Use `qa` mode to validate generated assets:** "Does this image show [expected content]?" 7. **In the review stage**, combine video_understand quality data with the reviewer skill's rubric 8. **Do NOT run video_understand on every frame of a long video** — sample strategically