ContinuityGuard

by rudrendupaul

Not rated
GitHub

About

MCP server wrapping the ContinuityGuard CLI for video-clip continuity scans.

Details

Author
rudrendupaul
Categories
Developer Tools, Other

Setup

Install ContinuityGuard in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/rudrendupaul/ContinuityGuard

Follow the installation instructions in the repository README, then restart your MCP client.

What is ContinuityGuard, and why does it exist

ContinuityGuard is a free, open-source, local-first CLI. It ingests a directory of already-generated video clips from any AI short-drama pipeline, decodes them withffmpeg, and runs two scoring passes: a character-consistency check (cosine similarity between MobileNetV2 embeddings of same-named-character crops across shots, best-validated on photorealistic content and unverified on stylized or anime-adjacent designs) and a physics-plausibility heuristic (frame-to-frame diff ratios against a shot's own local motion baseline, a heuristic that flags shots for human review rather than a physics simulator). It writes both a human-readable terminal report and a machine-readable JSON report, and it never makes a network call while doing any of it.

It exists because AI short-drama generation is shipping hundreds of new titles a day, and every one of those titles is assembled from many separately generated shots. Generation models drift: character faces shift slightly between cuts, and motion sometimes jumps in a way that reads as physically wrong the moment a human watches it. Catching that before a re-render saves the cost of redoing the shot from scratch.

ContinuityGuard is a QA layer, not a generator, and that is the point. It sits on top of whatever pipeline already produced your footage instead of locking you into one, it runs entirely on your own machine so unreleased footage never has to leave it, and it is free with no account or API key required. A generation platform's own built-in QA, if it has one, only ever sees its own output; ContinuityGuard works the same way whether your clips came from an open-source pipeline, a commercial one, or a mix of both on the same project.

Your unreleased footage never leaves your machine. Every clip is decoded locally viaffmpeg, every embedding is computed locally via a bundled offline ONNX model, and the report is written to a local file. No account, no API key, no upload step, for any frame.npm run verify:zero-networkproves this empirically: it monkey-patches every network entry point Node exposes and runs a real scan against this repo's own fixtures, and it would fail loudly if anything tried to reach the network. It runs in CI on every push. SeeCHANGELOG.mdfor the exact result.

Is this validated for anime or stylized AI-generated characters?No. Character-consistency scoring is best-validated on photorealistic content. Its accuracy on stylized or anime-adjacent designs, which is most short-drama content, has not been independently benchmarked yet. Treat every flag on stylized footage as a prompt to look closer. This is the single most important caveat in this repo; see "Known limitations" above.

Does the physics check actually understand physics?No. It's a frame-to-frame motion-discontinuity heuristic. It compares each shot's frame-to-frame diffs against that shot's own local baseline and flags outliers for human review, with no attempt to model real-world physics. It will produce false positives on legitimate fast motion or stylized jump-cuts, and false negatives on subtle implausible motion that stays under the threshold.

Do I need a GPU?No. Everything runs on CPU viaonnxruntime-node, using a small (14MB) MobileNetV2 model. The 8-clip fixture scan above completes in under two seconds on an ordinary laptop.

Does this upload my clips anywhere?No. That's mechanically enforced:npm run verify:zero-networkpatches every network entry point Node exposes and runs a real scan, and the check fails loudly if anything tries to reach the network. It runs on every CI push.

Why do I need to install ffmpeg separately instead of it being bundled?A bundled static ffmpeg binary would add tens of megabytes per platform to this package and would inherit ffmpeg's own licensing terms, which shift between LGPL and GPL depending on which codecs are compiled in. ffmpeg is close to ubiquitous on developer machines already, so ContinuityGuard depends on a system install and checks for it at startup with a clear, OS-specific error if it's missing.

Is this on npm yet?Yes.npm install -g continuityguard-cliinstalls it today. The Python package is also on PyPI (pip install continuityguard-cli), using the same scoring logic and the same bundled model -- seepython/README.md.

Will a big video-generation platform just build this into their product and make ContinuityGuard pointless?Possibly, and this repo says so plainly rather than hiding it: any well-funded video-generation platform could ship an equivalent check natively, since it already runs the full generation pipeline and has a direct incentive to prevent wasted render costs. ContinuityGuard's value is being free, local, and pipeline-agnostic today. Nothing here promises that stays true tomorrow.

Can I use this in CI?Yes.--jsonwrites a machine-readable report an agent or CI step can parse, and the whole tool runs with zero network access, so it drops into a CI job the same way any other local static-analysis step would.

What platforms and Node versions does this run on?package.jsonrequires Node >=22 and lists no OS restriction. The native scoring dependency,onnxruntime-node, ships prebuilt binaries for macOS, Linux, and Windows. You also need a systemffmpeginstall (checked at startup, with an OS-specific install command printed if it's missing). The Python distribution (pip install continuityguard-cli) needs Python >=3.9 and the same systemffmpegrequirement, and is classifiedOperating System :: OS Independent.

How does this compare to a face-embedding library like deepface instead of a generic ImageNet model?Directly, they solve different layers of the same problem.serengil/deepface(MIT-licensed, actively maintained) is a dedicated face-verification and embedding library; wiring it into a scan pipeline yourself would likely give more accurate character-consistency scoring than ContinuityGuard's current generic MobileNetV2 embedding, especially on stylized content. ContinuityGuard's role isn't to out-perform a dedicated face-embedding library on embeddings alone: it's the packaged CLI on top, doing ffmpeg decoding, the physics-plausibility pass, and structured report output in one zero-network command. Swapping in a stronger embedding model later is an open, tracked improvement, not a claim already delivered. See "How it compares" above for the fuller table.

Is this free to use commercially?Yes. Everything in this repo is Apache 2.0, including the permissive patent grant that license carries. There's no separate commercial tier, no usage cap, and no license key. Attribution and the license notice requirements of Apache 2.0 still apply, same as any Apache-licensed dependency you'd pull into a commercial project.

SeeCONTRIBUTING.mdfor local setup for both the TypeScript package (repo root) and the Python package (python/), the full pre-PR checklist (lint, typecheck, coverage thresholds,npm audit, the zero-network verification script), and fixture-reproducibility rules. Reports of false positives or false negatives on real (not synthetic) AI short-drama footage, especially stylized or anime-adjacent content, are the single most useful contribution right now, since that's exactly the gap disclosed above.

- docs/getting-started.md-- install paths for both packages, your first scan, the library API.
-
docs/concepts.md-- what CG01-CG04 each do, and where the 0.88 / 3x thresholds came from.
-
docs/integrations/ci.md-- wiring ContinuityGuard into a CI pipeline.
-
python/README.md-- the Python package's own README (PyPI quickstart, CLI reference, fidelity notes).

Everything in this repo: Apache 2.0. Free forever, no paid tier.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

An MCP server that allows AI assistants to interact with Adobe After Effects.

Executes Manim Python animation scripts to generate and return videos.

Executes Manim Python scripts to generate and return rendered video animations.

MCP server for OpenRouter: 300+ LLMs with vision, image gen, audio in/out, and video analysis + generation (Veo 3.1 / Sora 2 Pro / Seedance / Wan). Structured errors, IPv6 SSRF guards, path sandbox.

Qencode lets AI assistants transcode, analyze, edit, optimize, and deliver video using natural language, powered by a cloud video processing platform.

Paid rendering API for AI agents - turn text into MP4 video or PNG images via x402 payments on Base

A multimodal generation service using Volcengine Jimeng AI for image generation, video generation, and image-to-video conversion.

Manage and utilize website content within the DevHub CMS platform

Make your AI agent speak every language on the planet, using Lingo.dev Localization Engine.

Server for advanced AI-driven video editing, semantic search, multilingual transcription, generative media, voice cloning, and content moderation.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.