Offline post-render video QC gate for ComfyUI. A render that finishes is not a render you can deliver. VideoGate turns "the render finished" into "the render is deliverable" — ffprobe facts, delivery profiles, black-frame / frozen-frame / loudness checks, and a PASS / WARN / FAIL verdict, all running in-graph with zero GPU and zero cloud calls.
Built for the same "safety net" job as AIVideoQualityGate, finally living where AI video actually gets rendered: inside ComfyUI.
AI video pipelines ship broken clips to clients all the time: a black tail from a truncated render, frozen frames where the diffusion model stalled, a 9:16 export that's actually 16:9, silence where audio was supposed to be. Catching it happens after delivery — unless you gate it before anything leaves the machine.
ComfyUI had no offline QC-gate node pack. Image QC exists; deflicker fixers exist; VLM "describe my video" nodes exist. A plain, honest, ffprobe/ffmpeg-based gate did not. Now it does.
| Node | What it does |
|---|---|
| VideoGate Probe | ffprobe a VIDEO (or path string): container, codecs, WxH, fps, duration, frame count, aspect, audio |
| VideoGate Check | Gate against a delivery profile + optional black / freeze / loudness checks → verdict, summary, machine-readable issues JSON |
| VideoGate Report | Write QC reports (JSON / Markdown / CSV) next to the video or to a folder |
| VideoGate Enforce | Branch on the verdict: forward the video, or hard-stop the workflow so nothing broken ships |
All nodes accept ComfyUI's native VIDEO type and plain file-path strings, so
they wire into SaveVideo/LoadVideo pipelines and into any other custom node that
emits paths.
client_delivery— HD+ 16:9, H.264/HEVC/AV1/VP9, sane fps/duration, audio presentsocial_vertical— 9:16 (Reels/Shorts/TikTok), 720p+archival_master— 1080p+, 24+ fpsreference_only/strict_minimal— loose structural checks
Profiles are plain Python (videogate/profiles.py) — import and extend, or PR a preset.
- FFmpeg on
PATH(ffprobe ships with it). No torch, no GPU, no API keys. Windows:winget install ffmpeg· macOS:brew install ffmpeg· Linux:apt install ffmpeg
ComfyUI Manager: search "VideoGate" → Install
Comfy Registry:
comfy node install comfyui-videogate
Manual:
git clone https://github.com/madebysaira/ComfyUI-VideoGate.git
cd ComfyUI-VideoGate && pip install -e .
# or just drop the repo folder into ComfyUI/custom_nodes/
LoadVideo ──▶ VideoGate Check ──▶ VideoGate Enforce ──▶ (rest of pipeline / upload)
│
└▶ VideoGate Report ──▶ report.json / report.md
The Check node's issues_json output is machine-readable — wire it into webhooks,
n8n, or xyOps automations for alerting.
pip install -e . && python -m pytest tests/ -v
Tests generate their own media fixtures with ffmpeg and run the real node functions — no ComfyUI install required (stubs cover the node-API surface).
MIT — © madebysaira