mcpField
C
continuityguard

continuityguard

ローカル
github.com/RudrenduPaulメディア・デザイン05 週間前に更新

continuityguard について

ContinuityGuardは、生成済み動画のキャラクターの一貫性の揺らぎや不自然な動きを確認するローカルCLIです。AIショートドラマの制作者やQA担当者向けに、2種類のスコアリングと、指摘理由付きのレポートを提供します。

主な機能

  1. 01キャラクター一貫性のスコアリング
  2. 02動きの不連続性のスコアリング
  3. 03ネットワーク通信なしのローカルスキャン
  4. 04人向けとJSON形式のレポート
  5. 05指摘箇所のスコアと理由の表示

活用シーン

  1. 01再レンダリング前の生成クリップ確認
  2. 02名前付きショット間のキャラクター変化の検出
  3. 03動画クリップ内の動きの異常確認

MCP 対応

stdioのMCPサーバーは汎用のrunツールを1つ公開し、ContinuityGuard CLIを呼び出します。JSONが生成された場合は解析結果を返し、それ以外は標準出力などを返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"rudrendupaul-continuityguard": {
"command": "uvx",
"args": [
"continuityguard-cli"
]
}
}
}
起動コマンドuvx continuityguard-cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypicontinuityguard-cli0.1.7

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

ContinuityGuard

CI License: Apache 2.0 Node.js >= 22 npm version PyPI version

インストール • クイックスタート • CLI リファレンス • FAQ • コントリビューション

ローカルで動作し、ネットワークに一切接続しない CLI です。すでに生成された AI ショートドラマのクリップをスコアリングし、キャラクターの一貫性のずれや物理的に不自然な動きを検出します。高くつく再レンダリングをしてから問題に気づく前に確認できます。

ContinuityGuard をソースからインストール(npm install、npm run build)し、同梱のテスト用クリップを初めてスキャンするターミナルの録画。人が読みやすいレポートに、キャラクターの一貫性と物理的妥当性に関するフラグが表示されています

npm install -g continuityguard-cli

AI ショートドラマの生成が大きな注目を集めている今、各作品は個別に生成されたショットを積み重ねて作られています。生成モデルでは、今も出力にずれが生じます。カットをまたいでキャラクターの顔がわずかに変化したり、人が見た瞬間に物理的に不自然だと感じる動きになったりします。レンダリング後にこうした問題を見つけると、修正には大きなコストがかかります。ContinuityGuard は、あらゆるパイプラインで生成済みのクリップやフレームを含むフォルダーをスキャンし、再レンダリングを決める前に、再確認すべきショットを知らせます。

インストール

同じスコアリングロジックと同じ MobileNetV2 ONNX モデルを同梱した、独立した 2 種類の配布パッケージを提供しています。どちらも同等に正式な配布形態で、現在インストールできます。PyPI の Python パッケージと、npm レジストリの TypeScript/npm パッケージです。

Python:

pip install continuityguard-cli

Python 固有のクイックスタート、CLI リファレンス、ライブラリ API については、python/README.md をご覧ください。

TypeScript/npm:

npm install -g continuityguard-cli

これにより、continuityguard コマンドが PATH に追加されます。continuityguard scan <directory> を実行してください。ソースからビルドする場合(ローカル開発や main の追跡など)は、リポジトリをクローンして npm install && npm run build を実行します。その後、CLI を node dist/cli.js scan <directory> で実行するか、ローカルで npm link を実行すると、作業コピーから continuityguard コマンドを使えるようになります。

特長

  • 1 回のスキャンで、独立した 2 種類のスコアリングを実行します。 キャラクターの一貫性(同じ名前のキャラクターを切り抜いた画像から得た MobileNetV2 埋め込み間のコサイン類似度)と、物理的妥当性(各ショット固有のローカルな基準値に対する、フレーム間の動きの不連続性を使ったヒューリスティック)を、1 つの scan コマンドで評価します。
  • ネットワーク呼び出しはゼロで、そのことをプッシュのたびに機械的に検証します。 npm run verify:zero-network は、Node が公開するすべてのネットワーク接続用エントリーポイントにモンキーパッチを適用し、CI でこのリポジトリ独自のテスト用データを使って実際のスキャンを実行します。コードのどの経路からでもネットワークに接続しようとすると、明確に失敗します。
  • 人にもパイプラインにも使える構造化出力です。 同じスキャンで、人が読みやすいターミナルの要約と、機械可読な JSON レポート全体(--json)を書き出すため、QA レビュー担当者と CI スクリプトの両方で同じ結果を利用できます。
  • 一般的なハードウェアで高速に動作します。 監査中、ノート PC の CPU で 8 クリップのテスト用データをスキャン(デコード、2 種類のスコアリング、レポート出力)したところ、複数回の実行で完了時間は 0.53~0.63 秒でした。GPU は不要です。スコアリングは onnxruntime-node と同梱の 14MB モデルを使って CPU 上で実行されます。
  • すべてのフラグに、自分で確認できる理由が付いています。 フラグが付いた各ショットには、クリップ名、数値スコア、超過したしきい値、わかりやすい説明が記載されます。これらは JSON レポートの reason フィールドから直接取得されます。

機能

このリポジトリにコミットされている合成フィクスチャ(src/score/testdata/clips/。src/score/testdata/generate-fixtures.sh で生成)を使った実際の出力です(今回のビルドでは実際のショートドラマ映像を入手できなかったため、以下の数値はすべて再現可能なものであり、例示ではありません)。

$ node dist/cli.js scan src/score/testdata/clips

ContinuityGuard v0.1 -- Local Character-Consistency & Physics-QA Scoring

Scanning: src/score/testdata/clips (8 clips, ffmpeg decode)

[SCORED] CG01 Clip Ingestion
  8 clips decoded, 51 frames extracted

[SCORED] CG02 Character-Consistency Scoring
  3 named characters tracked across 8 clips
  1 shot(s) flagged: low cross-shot similarity (below 0.88 cosine threshold)
    kenji_shot02.mp4 -- "kenji" similarity 0.77 vs. reference (kenji_shot01.mp4)
  NOTE: consistency scoring is best-validated on photorealistic content.
  Accuracy on stylized/anime-adjacent character designs is unverified --
  treat flags on stylized content as a prompt for human review, not a
  confirmed defect. See "Known limitations" below.

[SCORED] CG03 Physics-Plausibility Heuristic
  2 shot(s) flagged: frame-to-frame motion discontinuity above threshold
    action-discontinuity.mp4 @ frame 4-5 -- discontinuity 8.25x local baseline
    action-discontinuity.mp4 @ frame 5-6 -- discontinuity 8.32x local baseline
  This is a heuristic proxy, not a physics simulator. It flags shots for
  human review. It does not "detect" a physics violation.

Report written to ./continuityguard-report.json
Human-readable summary above. Use --json for the full structured report.
Scan time: 0.6s. Nothing left this machine. No network calls were made.

この全体スキャン(デコード、2回のスコアリング処理、レポートの書き込み)は、このマシンで数回実行したところ、実時間で0.6〜1.4秒かかりました。同じフィクスチャセット内の一貫性のあるキャラクターの2組は高いスコアとなり、正しくフラグが付けられません。mei_shot01.mp4 と mei_shot02.mp4 は類似度0.9975、aiko_shot01.mp4 と aiko_shot02.mp4 は0.9906です。意図的に一貫性を崩したペアである kenji_shot01.mp4 と kenji_shot02.mp4 は0.7709となり、しきい値0.88に対して正しくフラグが付けられます。物理面では、全体を通して動きが滑らかな calm-baseline.mp4 は、ローカルベースラインのおよそ1.14倍が最大値となり、フラグは付けられません。一方、意図的に急なジャンプを1回入れた action-discontinuity.mp4 は8.25倍と8.32倍に達し、倍率3倍に対してフラグが付けられます。これらの数値はすべて上記のコマンドから得られたものです。差分の未加工値はすべて CHANGELOG.md に記載されています。

各フラグにはクリップ名、数値スコア、平易な理由が含まれるため、ショットにフラグが付いた理由を、あなたやQAレビュー担当者が正確に確認できます。

node dist/cli.js scan src/score/testdata/clips --json を実行するターミナルの録画。ショットごとのフラグ、しきい値、スキャンのメタデータを含む、機械可読な完全なJSONレポートを標準出力に表示

クイックスタート

git clone https://github.com/RudrenduPaul/ContinuityGuard.git
cd ContinuityGuard
npm install
npm run build

# scan the fixture clips bundled with this repo
node dist/cli.js scan src/score/testdata/clips

# or point it at your own generated-clips folder
node dist/cli.js scan ./generated-clips/ --json > report.json

scan は対象ディレクトリ内の動画クリップを走査し、ffmpeg を介してローカルでデコードしたうえで、ショットごとのキャラクター一貫性埋め込みと、物理的妥当性を判定するヒューリスティックを計算し、人間が読める形式とJSON形式の両方で構造化レポートを書き込みます。読み取ったデータや計算結果が、実行元のマシンの外に出ることはありません。

CLI リファレンス

ビルド済みCLIの、現在の実際の --help 出力:

$ node dist/cli.js --help
Usage: continuityguard [options] [command]

Free, local-first CLI that scores already-generated AI short-drama clips/frames
for character-consistency and physics-plausibility problems. Zero network calls.

Options:
  -V, --version               output the version number
  -h, --help                  display help for command

Commands:
  scan [options] <directory>  scan a directory of generated clips for
                              character-consistency and physics-plausibility
                              flags
  help [command]              display help for command

$ node dist/cli.js scan --help
Usage: continuityguard scan [options] <directory>

scan a directory of generated clips for character-consistency and
physics-plausibility flags

Arguments:
  directory     directory of video clips to scan

Options:
  --json        print the full machine-readable JSON report to stdout instead of
                a terminal summary
  --fps <fps>   frame sample rate for ingestion (default: 2.3)
  --out <path>  path to write the JSON report file to (default:
                "./continuityguard-report.json")
  -h, --help    display help for command
CG02がキャラクターを追跡できるようにクリップに名前を付ける

CG02は、<character>_<shot-id>.<ext> という規則(例:mei_shot01.mp4、mei_shot02.mp4)に基づいて、ファイル名からクリップに登場するキャラクターを推定します。同じキャラクタープレフィックスを持つクリップは、そのキャラクターについて最初に検出されたショットと比較されます。AIショートドラマのパイプライン全体で業界標準となっているキャラクタータグ用メタデータ形式はないため、ContinuityGuardは別個のマニフェストを要求せず、現在はファイル名から情報を読み取ります。この規則に一致しないクリップもデコードされ、CG03によるスコアリングを受けますが、キャラクターの一貫性については比較されません。

MCP サーバー

ContinuityGuardにはModel Context Protocol(MCP)サーバーが含まれているため、MCPに対応したエージェント(Claude Desktop、Claude Code、その他のMCPクライアント)は、CLIを手動で実行する代わりに、スキャンを直接実行できます。これはPythonディストリビューションのオプション機能として提供されます。

pip install "continuityguard-cli[mcp]"

MCPクライアントの設定に追加します(例:Claude Desktopの claude_desktop_config.json)。

{
  "mcpServers": {
    "continuityguard": {
      "command": "continuityguard-mcp"
    }
  }
}

サーバーは run というツールを1つ公開します。このツールは、渡された引数リストを使って実際の continuityguard CLIをシェル経由で実行し、構造化された結果を返します(コマンドがJSONを出力した場合は解析済みJSON、それ以外の場合は標準出力と標準エラーの生の内容)。不正な引数、ffmpeg の不足、タイムアウトなど、あらゆる失敗はサーバーをクラッシュさせず、{"error": ...} の結果として返されます。呼び出し例:

{"tool": "run", "args": {"args": ["scan", "./clips", "--json"]}}

これにより、continuityguard scan ./clips --json が出力するものと同じ構造化レポートが、result キーの下に返されます。

既知の制限事項(フラグを信用する前にお読みください)

  • キャラクターの一貫性スコアは、フォトリアリスティックなコンテンツで最もよく検証されています。 ContinuityGuard は現在、ImageNet で事前学習された汎用の視覚的類似性埋め込み(MobileNetV2)を使用しています。この方式を選んだ理由については、src/score/models/NOTICE.md をご覧ください。ほとんどのショートドラマコンテンツに見られる、様式化されたキャラクターデザインやアニメ風のデザインに対する精度は、実際のところ検証されていません。様式化された映像でフラグが立った場合は、信用する前に詳しく確認するきっかけとして扱ってください。
  • 一貫性埋め込みが測定するのは、切り抜き間の色、テクスチャ、大まかな形状といった全般的な視覚的類似性です。 フォトリアリスティックな顔では有効なシグナルですが、専用の顔認識埋め込みと比べると性能は劣ります。様式化されたデザインではさらに性能が低く、検証もされていません。
  • 物理的妥当性のスコアリングは、フレーム間の差分に基づくヒューリスティックです。 連続するフレーム間の動きをショット内のローカルな基準と比較し、外れ値を人による確認のためにフラグ付けします。現実世界の物理法則をシミュレートするものではありません。誤検知(正当な高速動作、様式化されたジャンプカット)と見逃し(しきい値を超えない、わずかに不自然な動き)の両方が発生することを想定してください。
  • しきい値は、小規模な完全合成のフィクスチャセット(単色のクリップで、実際の顔や録画された動きは含まれません)を使って調整されています。 正確な数値と、それを生成したコマンドについては、CHANGELOG.md をご覧ください。これは実際に再現可能な出発点であり、大規模なラベル付きデータセットではなく、2 組の合成ペアを使って調整されています。実環境からの報告が寄せられるにつれて、数値が変わることを想定してください。
  • <character>_<shot-id> というファイル名の規則は、現時点での簡略化です。 このカテゴリには、標準的なキャラクタータグのメタデータ形式がまだ存在しないため、この規則を採用しています。この規則に従わないクリップも物理的妥当性のスコアリングは行われますが、一貫性の比較はスキップされます。
  • システムへの ffmpeg のインストールが必要です。 ContinuityGuard は起動時に ffmpeg の有無を確認し、見つからない場合はお使いの OS に応じた正確なインストールコマンドを表示します(たとえば、macOS では brew install ffmpeg、Debian/Ubuntu では apt install ffmpeg)。現時点では、静的な ffmpeg バイナリは同梱していません。プラットフォームごとのビルドを同梱すると、このプロジェクト自体の依存関係より大幅にサイズが大きくなり、コンパイルに含めるコーデックに応じて変化する ffmpeg 固有の LGPL/GPL ライセンス条件も引き継ぐことになります。システムへのインストールに依存することで、このパッケージを小さく保ち、ライセンス上の範囲もシンプルにしています。
  • TypeScript 6.x に固定されており、7.x にはまだ対応していません。 TypeScript 7(ネイティブ/Go コンパイラーへの書き換え)では、typescript-eslint のピア依存範囲が最新リリース(8.66.0)時点でも必要としている CommonJS 互換のデフォルトエクスポートがサポート対象外になりました(このリリースでは、引き続き typescript: >=4.8.4 <6.1.0 が宣言されています)。これは脆弱性ではなく、エコシステム全体の互換性の問題です。typescript-eslint のツールチェーン全体で TS7 のサポートがまだリリースされていないため、サポートが追加されるまでは、このプロジェクトは TypeScript 6.x を使い続けます。

比較

生成済みのAIショートドラマのレビューに特化した、ネットワーク通信なしで動作するCLIとして、人物の一貫性スコアリングと物理的妥当性のヒューリスティックを組み合わせた、広く使われている直接比較可能なツールはありません。実際に確認できる最も近いプロジェクトは、動画生成モデルをスコアリングする学術ベンチマーク(1つ上のレイヤー)か、自分で組み込む必要がある汎用の顔埋め込みライブラリ(1つ下のレイヤー)のいずれかです。

プロジェクトスター数最終更新ライセンス実際の内容比較
Vchitect/VBench1,7182026年3月Apache-2.0DINOv2ベースの「被写体の一貫性」指標や動きの滑らかさの指標を含む、16の観点から動画生成モデルをスコアリングするCVPR 2024の学術ベンチマークスイート。多数の生成クリップを集計して評価します。仕組みとしては最も近いものです。生成済み動画の被写体の一貫性と動きの品質もスコアリングします。ただし、GPUに依存する研究用ベンチマークであり、生成モデルを総合的に評価するためのものです。自分の映像について、クリップごとのQAレポートをクリエイターに提供する軽量なローカルCLIではありません。
serengil/deepface23,2042026年6月MIT顔認証、埋め込み、顔属性分析のための、広く使われ、活発にメンテナンスされているPythonライブラリです。顔埋め込みの類似度を扱うコンポーネントライブラリであり、動画ネイティブでもショートドラマ特化でもありません。構成要素としては役立ちますが、物理チェック、クリップのデコード機能、独自のパッケージ済みレポート形式はありません。
deepinsight/insightface29,4062026年7月リポジトリに機械可読な単一のLICENSEはありません。プロジェクトのドキュメントでは、コードはMITライセンスで、一部の事前学習済みモデルには非商用利用の制限があると説明されています。最先端の2D/3D顔分析ツールボックス(検出、認識、位置合わせ)です。DeepFaceと同じカテゴリのコンポーネントライブラリであり、エンドツーエンドのQA CLIではありません。物理的妥当性のチェックもレポート機能もありません。
evalcrafter/EvalCrafter1952024年10月記載なし700件のプロンプトを対象に、視覚品質、動きの品質、テキストと動画の整合性について動画生成モデルをベンチマークする、CVPR 2024の研究フレームワークです。関連する研究ツールですが、約2年間コミットがありません。重厚な複数指標の研究用スタックで生成モデルをベンチマークするためのものであり、生成済みクリップのフォルダーを手早くローカルでQAするものではありません。

上記のスター数と最終更新日は、この表の作成時にGitHub APIからリアルタイムで取得しました。

ContinuityGuard とは何ですか。また、なぜ存在するのですか

ContinuityGuard は、無料のオープンソースで、ローカル優先の CLI です。あらゆる AI ショートドラマ制作パイプラインで生成済みの動画クリップが格納されたディレクトリを取り込み、ffmpeg でデコードしたうえで、2 つのスコアリング処理を実行します。1 つ目はキャラクターの一貫性チェックです(各ショットに登場する同じ名前のキャラクターのクロップ画像について、MobileNetV2 の埋め込み表現のコサイン類似度を算出します。写実的なコンテンツでは最も検証が進んでいますが、様式化されたデザインやアニメに近いデザインでは未検証です)。2 つ目は物理的な妥当性を判定するヒューリスティックです(各ショット内のフレーム間差分率を、そのショット固有の局所的な動きの基準値と比較します。これは物理シミュレーターではなく、人による確認が必要なショットを検出するためのヒューリスティックです)。人が読めるターミナルレポートと、機械可読な JSON レポートの両方を出力します。その処理中にネットワークへ接続することは一切ありません。

AI ショートドラマの制作では、毎日何百もの新作タイトルが公開されています。どのタイトルも、それぞれ別々に生成された多数のショットから構成されます。生成モデルには揺らぎがあり、カットが切り替わるとキャラクターの顔が少し変わったり、人が見た瞬間に不自然だと感じるほど動きが飛んだりすることがあります。再レンダリングの前にこうした問題を検出できれば、ショットを一から作り直すコストを削減できます。

ContinuityGuard は QA レイヤーであり、生成ツールではありません。そこが重要な点です。すでに映像を生成したパイプラインの上に導入できるため、特定のパイプラインに縛られることはありません。また、すべての処理が自分のマシン上で完結するため、未公開の映像をマシンの外へ出す必要はありません。アカウントや API キーは不要で、無料で利用できます。生成プラットフォームに独自の QA 機能があっても、確認できるのはそのプラットフォーム自身の出力だけです。一方、ContinuityGuard は、オープンソースのパイプライン、商用のパイプライン、または同じプロジェクト内で両方を組み合わせたパイプラインのいずれで作られたクリップにも、同じように使えます。

常にローカルのみで動作

未公開の映像がマシンの外へ出ることはありません。すべてのクリップは ffmpeg でローカルにデコードされ、すべての埋め込み表現は同梱のオフライン ONNX モデルでローカルに計算され、レポートもローカルファイルに書き込まれます。アカウントも API キーも不要で、フレームをアップロードする手順もありません。npm run verify:zero-network では、Node が公開するすべてのネットワーク接続口にモンキーパッチを適用し、このリポジトリに含まれるフィクスチャを使って実際にスキャンを実行することで、そのことを実証できます。ネットワークに接続しようとする処理があれば、明確なエラーで失敗します。この検証は、プッシュのたびに CI で実行されます。具体的な結果は CHANGELOG.md を参照してください。

npm run verify:zero-network が、Node が公開するすべてのネットワーク接続口にモンキーパッチを適用し、このリポジトリに含まれるフィクスチャを使って実際にスキャンを実行して、ネットワーク接続が一切行われないことを証明するターミナルの録画

FAQ

アニメや様式化された AI 生成キャラクターにも有効だと検証されていますか? いいえ。キャラクターの一貫性スコアリングは、写実的なコンテンツで最も検証が進んでいます。ショートドラマのコンテンツの大半を占める、様式化されたデザインやアニメに近いデザインでの精度は、まだ独立したベンチマークで評価されていません。様式化された映像で検出された項目は、詳しく確認するきっかけとして扱ってください。これは、このリポジトリで最も重要な注意点です。上記の「既知の制限」を参照してください。

物理チェックは、実際に物理法則を理解しているのですか? いいえ。これはフレーム間の動きの不連続性を検出するヒューリスティックです。各ショットのフレーム間差分を、そのショット固有の局所的な基準値と比較し、実世界の物理法則をモデル化することなく、外れ値を人による確認のために検出します。正当な高速動作や様式化されたジャンプカットを誤検出する場合があり、しきい値を下回る微妙な不自然な動きを見逃す場合もあります。

GPU は必要ですか? いいえ。すべての処理は onnxruntime-node を使って CPU 上で実行されます。使用する MobileNetV2 モデルは小型(14MB)です。上記の 8 クリップのフィクスチャスキャンは、一般的なノート PC で 2 秒未満で完了します。

クリップがどこかにアップロードされますか? いいえ。これは仕組みとして強制されています。npm run verify:zero-network は、Node が公開するすべてのネットワーク接続口にパッチを適用して実際にスキャンを実行し、ネットワークに接続しようとする処理があれば、明確なエラーで失敗します。この検証は CI へのプッシュのたびに実行されます。 ffmpeg をバンドルせず、別途インストールする必要があるのはなぜですか? 静的な ffmpeg バイナリをバンドルすると、このパッケージのサイズがプラットフォームごとに数十メガバイト増えるうえ、コンパイル時に組み込むコーデックによって LGPL と GPL の間で変わる ffmpeg 独自のライセンス条件も適用されます。開発者のマシンにはすでに ffmpeg がほぼ標準でインストールされているため、ContinuityGuard はシステムへのインストールに依存し、起動時に有無を確認します。見つからない場合は、OS に応じた明確なエラーを表示します。

npm ではまだ公開されていませんか? いいえ、公開済みです。今すぐ npm install -g continuityguard-cli でインストールできます。Python パッケージも PyPI で公開されています(pip install continuityguard-cli)。同じスコアリングロジックとバンドルされたモデルを使用します。詳しくは python/README.md をご覧ください。

大規模な動画生成プラットフォームがこの機能を自社製品に組み込み、ContinuityGuard が不要になることはありますか? その可能性はあります。このリポジトリでは、それを隠さず率直に述べています。資金力のある動画生成プラットフォームであれば、同等のチェックをネイティブに実装できるでしょう。すでに生成パイプライン全体を実行しており、無駄なレンダリングコストを防ぐ直接的な動機もあるからです。現時点での ContinuityGuard の価値は、無料で、ローカルで動作し、パイプラインに依存しないことです。これが明日も続くとは、ここでは約束していません。

CI で使用できますか? はい。--json は、エージェントや CI ステップで解析できる機械可読レポートを出力します。また、このツールはネットワークに一切アクセスせずに動作するため、ほかのローカル静的解析ステップと同様に CI ジョブへ組み込めます。

対応しているプラットフォームと Node のバージョンを教えてください。 package.json では Node >=22 が必須で、OS の制限は指定されていません。ネイティブのスコアリング依存関係である onnxruntime-node は、macOS、Linux、Windows 向けのビルド済みバイナリを提供しています。また、システムへの ffmpeg のインストールも必要です。起動時に有無を確認し、見つからない場合は OS に応じたインストールコマンドを表示します。Python ディストリビューション(pip install continuityguard-cli)には Python >=3.9 と、同じくシステムへの ffmpeg のインストールが必要です。また、分類は Operating System :: OS Independent です。

汎用的な ImageNet モデルではなく、deepface のような顔埋め込みライブラリと比べるとどうですか? この2つは、同じ問題の異なる層を直接解決します。serengil/deepface(MIT ライセンス、活発にメンテナンスされています)は、顔認証と顔埋め込みに特化したライブラリです。これを独自にスキャンパイプラインへ組み込めば、特にスタイライズされたコンテンツでは、現在 ContinuityGuard が使っている汎用の MobileNetV2 埋め込みよりも、キャラクターの一貫性を正確に評価できる可能性があります。ContinuityGuard の役割は、埋め込みだけで顔埋め込み専用ライブラリを上回ることではありません。ffmpeg によるデコード、物理的妥当性のチェック、構造化レポートの出力を、ネットワーク接続不要の単一コマンドで行う CLI パッケージを提供することです。より優れた埋め込みモデルへの置き換えは、今後の改善項目として公開・追跡されています。すでに実現済みだと主張しているわけではありません。比較表の詳細については、上記の「比較」をご覧ください。

商用利用は無料ですか? はい。このリポジトリのすべての内容は Apache 2.0 のライセンスで提供されており、そのライセンスに含まれる許容的な特許許諾も適用されます。商用向けの別プランや利用上限、ライセンスキーはありません。ただし、商用プロジェクトに Apache ライセンスの依存関係を組み込む場合と同様に、帰属表示と Apache 2.0 のライセンス通知に関する要件は引き続き適用されます。

コントリビューション

TypeScript パッケージ(リポジトリのルート)と Python パッケージ(python/)のローカル環境のセットアップ方法、PR 作成前のチェックリスト全体(lint、typecheck、カバレッジのしきい値、npm audit、ネットワーク未接続の検証スクリプト)、フィクスチャの再現性に関するルールについては、CONTRIBUTING.md をご覧ください。実際の(合成ではない)AI ショートドラマの映像、特にスタイライズされたコンテンツやアニメに近いコンテンツにおける偽陽性・偽陰性の報告は、現時点で最も役立つコントリビューションです。まさに上記で開示している課題だからです。

ドキュメント

  • docs/getting-started.md -- 2つのパッケージそれぞれのインストール方法、最初のスキャン、ライブラリ API。
  • docs/concepts.md -- CG01~CG04 の機能と、0.88 / 3x というしきい値の由来。
  • docs/integrations/ci.md -- ContinuityGuard を CI パイプラインに組み込む方法。
  • python/README.md -- Python パッケージ専用の README(PyPI のクイックスタート、CLI リファレンス、忠実度に関する注記)。

ライセンス

このリポジトリ内のすべてのものは Apache 2.0 です。永久に無料で、有料プランはありません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。