Beta launching soon
Detect off-brand, slop, low quality content before it embarrasses you.
- Brand Grammar Extraction. Reads camera movement, color, lighting, and pacing from your footage into a reusable brand profile.
- Quality & prompt adherence. Scores every cut for craft and for whether it delivered what the brief asked.
- Brand-kit adherence. Grades any video against your brand kit and flags the off-brand frames, timestamped.
BVI
slop×12
off-brand×8
off-promptdidn't follow prompt×6
qualitygood quality×27
on-promptprompt adherence×19
brand pass×21
Tier 01 / Capabilities
Capabilities
Capability 01
Brand extraction — the grammar engine
Point it at your videos; it learns the brand's grammar.
- sends
- POST /brands → refs → extract
- gets
- frozen brand_profile (versioned)
BVIgrammar engine
extracted brand grammar
camera movementdolly · pan · handheld
color roles#c8503c text · #5b3a21 bg
gradesat 0.41 ±0.06
pacingmeasured, building
editing rhythm3.1 cuts / 10s
compositionclose-up 0.48 · shallow DoF
lightingsoft key, controlled
shot sizesCU · MS · WS
brand markcorner_br · ≥1.5s
typographysans, lower third
tolerancescolor w1.5 · warn 78
style promptwarm earthy palette, shallow DoF, calm camera…
negative promptno brand red in props, no whip pans, no serif body text…
camera movementdolly · pan · handheld
color roles#c8503c text · #5b3a21 bg
gradesat 0.41 ±0.06
pacingmeasured, building
editing rhythm3.1 cuts / 10s
compositionclose-up 0.48 · shallow DoF
lightingsoft key, controlled
shot sizesCU · MS · WS
brand markcorner_br · ≥1.5s
typographysans, lower third
tolerancescolor w1.5 · warn 78
style promptwarm earthy palette, shallow DoF, calm camera…
negative promptno brand red in props, no whip pans, no serif body text…
$ curl -X GET https://api.cognatelabs.io/grammar/v1/brands/b1…001/profile?version=latest \ -H "Authorization: Bearer $CGN_KEY" → 200 OK { "meta": { "profile_id": "…", "extractor_version": "1.3.0", "reference_videos": [ { "video_id": "…", "duration_s": 24, "scene_count": 9 } ] }, "profile": { "color": { "dominant_colors": [ { "hex_approx": "#c8503c", "prevalence": 0.12, "roles": ["text"], "is_brand_kit_color": true } ], "grade": { "saturation": { "mean": 0.41, "std": 0.06, "p10": 0.33, "p90": 0.5 } } }, "motion": { "energy": { "mean": 0.38, "p10": 0.2, "p90": 0.55 }, "energy_bucket_mix": { "calm": 0.6, "medium": 0.3, "kinetic": 0.1 } }, "editing": { "cuts_per_10s": { "mean": 3.1 }, "transitions": [ { "type": "cut", "frequency": 0.9 } ] }, "composition": { "closeup_ratio": 0.48, "depth_of_field": "shallow" }, "brand_mark": { "appears": true, "placement_zone": "corner_br", "min_on_screen_s": 1.5 }, "qualitative_rules": [ { "rule": "Brand mark appears in the closing card, lower-right, ≥1.5s.", "dimension": "brand_mark", "severity": "hard", "confidence": 0.97 } ] }, "tolerances": { "color": { "weight": 1.5, "warn_threshold": 78, "fail_threshold": 65 } }, "generation_conditioning": { "style_prompt_fragment": "warm earthy palette, shallow DoF, calm camera…", "negative_prompt_fragment": "no brand red in props, no whip pans, no serif body text…" } }
Capability 02
Quality & prompt adherence
Every cut, graded before it ships.
Post a video and its prompt — no profile needed. It scores the craft deterministically (subject and background consistency, temporal flicker, imaging quality, motion bucket) and judges prompt adherence — objects, actions, scene, spatial, text, artifacts — each a { score, status, diagnosis } with pass / warn / fail.
- sends
- POST /evaluations (video + prompt)
- gets
- quality + prompt_adherence
Quality
Prompt adherence
deterministic craft · model-judged promptQuality
Subject consistencypass88
Background consistencypass84
Imaging qualitywarn76
Temporal flickerpass81
Prompt adherence
ActionsCharacter is skating, but the prompt requested 'jumping and doing tricks' — not clearly demonstrated beyond basic movement. The camera does zoom onto the shoes.not scored (warn)60
Audio qualityBackground music is prominent and speech is clear, present, and at the appropriate volume, matching prompt requirements.not scored (pass)100
Face integrityFace and hands of the person shown are anatomically plausible and free from deformation.not scored (pass)100
$ curl -X GET https://api.cognatelabs.io/evaluator/v1/evaluations/e3…333 \ -H "Authorization: Bearer $CGN_KEY" → 200 OK { "quality": { // deterministic scores "subject_consistency": { "score": 88, "status": "pass" }, "background_consistency": { "score": 72, "status": "warn" }, "temporal_flicker": { "score": 41, "status": "fail" }, "imaging_quality": { "score": 58, "status": "warn", "p10": 39, "min": 22 }, "motion_bucket": "medium" // calm | medium | kinetic }, "prompt_adherence": { // model-judged "overall": { "score": 64, "status": "warn" }, "objects": { "score": 82, "status": "pass", "diagnosis": "surfboard + van both present" }, "actions": { "score": 70, "status": "warn", "diagnosis": "van drives but doesn't clearly turn" }, "spatial": { "score": 66, "status": "warn", "diagnosis": "van centered, not entering from left" }, "garbled_text_artifacts": { "score": 55, "status": "warn" }, "gross_motion_artifacts": { "score": 45, "status": "fail", "diagnosis": "limbs warp; wheel detaches" } } }
Capability 03
Brand adherence — the verdict
Does the cut obey the brand kit?
Supply a profile_id (or an inline profile) on the same evaluation and brand scoring turns on: color, grade, motion energy, editing pace, composition, typography, and brand-mark — each scored against the learned profile with its own distance metric, plus rule violations by timestamp. The always-present verdict carries a badge and machine-injectable recommended_corrections.
- sends
- POST /evaluations + profile_id
- gets
- brand block + verdict + corrections
Verdict
off_brand
hard failure: brand mark missing from the closing card
Brand
Colorwarn68
Motion energypass88
Editing pacepass83
Typographyfail60
Brand markfail30
$ curl -X GET https://api.cognatelabs.io/evaluator/v1/evaluations/e7…777 \ -H "Authorization: Bearer $CGN_KEY" → 200 OK { "meta": { "profile_id": "11…111", "profile_version": 3 }, "brand": { // null without a profile "color": { "score": 68, "status": "warn", "distance_metric": "wasserstein_lab_marginals" }, "grade": { "score": 74, "status": "warn", "distance_metric": "grade_fingerprint_l2" }, "motion_energy":{ "score": 88, "status": "pass", "distance_metric": "energy_distribution_overlap" }, "editing_pace": { "score": 83, "status": "pass", "distance_metric": "shot_length_wasserstein" }, "typography": { "score": 60, "status": "fail", "distance_metric": "vlm_typography_rubric" }, "brand_mark": { "score": 30, "status": "error", "distance_metric": "vlm_brand_mark_rubric" }, "rule_violations": [ { "rule_id": "rule_brand_mark_closing", "severity": "hard", "timestamp_s": 29.0, "diagnosis": "No brand mark in the closing card (required lower-right, ≥1.5s)." } ] }, "verdict": { // ALWAYS present "overall_score": 58, "badge": "off_brand", // on_brand | review | off_brand | quality_fail "hard_failures": ["rule_brand_mark_closing"], "recommended_corrections": [ { "dimension": "brand_mark", "prompt_delta": "add a closing card in the final 2s with the brand mark lower-right ≥1.5s" }, { "dimension": "typography", "prompt_delta": "render captions sans-serif, lower third, <3s; no serif or full-frame text" } ] } }
Tier 02 / Beta
Sign up for the waitlist.
We’re onboarding teams in waves. Tell us who you are and roughly how much video you run — a few fields, no demo call to book.

