Nodes/ComfyUI-VideoQuality-Metrics/VQ DOVER Quality (Aesthetic + Technical)
ComfyUI Node

VQ DOVER Quality (Aesthetic + Technical)

One number can't tell you why a video is bad. DOVER splits the answer

By jajos12·Created 7 months ago·Updated 7 months ago· 1
VQ DOVER Quality (Aesthetic + Technical)
  • video
  • aesthetic_score
  • technical_score
  • overall_score
  • summary
num_frames8

Most quality scores hand you a single number and leave you to guess what it means. DOVER is the one that actually separates the problem. It gives you an aesthetic score - composition, color harmony, "does this look like someone framed it?" - and a technical score - sharpness, noise, compression artifacts, "is it actually clean?" - plus a weighted overall. That split is the whole point, and it's why DOVER is the model people actually name when they ask how to evaluate generated video without a reference.

You'd reach for this in text-to-video evaluation: you have a clip, no ground truth, and you want to know not just whether it's good but which part is failing. A video can score high aesthetically while being technically a mess, and a one-number metric will hide exactly that.

How it works

DOVER is a Swin-Transformer-based video quality model from the VQAssessment group, trained on user-generated content. The pack downloads the official pretrained weights automatically on first use (roughly 100 MB from the DOVER GitHub releases) into ~/.cache/video_quality_metrics, then runs the model over a sample of your frames. The overall score is a fixed blend: roughly 0.428 × aesthetic + 0.572 × technical. The node even flags imbalance - if the gap between aesthetic and technical is bigger than ~0.2, the summary calls it out ("good composition but blurry/noisy" vs "sharp but boring"). That diagnostic is genuinely useful and rare in this corner of ComfyUI.

Inputs and outputs

Required:

  • video (IMAGE) - your [T, H, W, 3] frame tensor.

Optional:

  • num_frames (INT, default 8, range 1–32) - how many frames get analyzed. This is your cost knob: fewer frames, faster run, slightly noisier estimate.

Outputs:

  • aesthetic_score (FLOAT) - composition/artistic quality, 0–1.
  • technical_score (FLOAT) - sharpness/noise/artifact quality, 0–1.
  • overall_score (FLOAT) - the weighted blend, 0–1.
  • summary (STRING) - full report including the imbalance flag. Put it in a text display.

The pack's rough calibration: overall above 0.6 is excellent, 0.45–0.6 good, 0.3–0.45 fair, below 0.3 poor. Scores track human opinion reasonably well (the paper reports high correlation with MOS), but treat them as relative, not courtroom-grade evidence.

Installing

This is one node of the ComfyUI-VideoQuality-Metrics pack, installed once:

cd ComfyUI/custom_nodes
git clone https://github.com/jajos12/ComfyUI-VideoQuality-Metrics
pip install -r ComfyUI-VideoQuality-Metrics/requirements.txt

Restart ComfyUI, and it lands under Video Quality/DOVER in the node menu. ComfyUI Manager can install the pack too - search "VideoQuality Metrics". Two gotchas: the ~100 MB DOVER weights download on first run (not at install), and the model needs a recent torchvision (0.15+) for the Swin backbone - an older install silently falls back to a less accurate ResNet backbone.

Common issues

  • Returns zeros with "DOVER dependencies not available" - your torchvision is too old. Upgrade it.
  • First run stalls - that's the weight download from GitHub. If it dies mid-download, delete ~/.cache/video_quality_metrics/dover and retry.
  • Scores hover in a narrow band - normal. DOVER is trained on real UGC, and generated video is a distribution it didn't see much of; use it for A/B comparisons, not absolute truth.
CategoryVideo Quality/DOVER

Inputs (2)

NameTypeDefaultDescription
videoIMAGE
num_framesoptINT81–32

Outputs (4)

NameTypeDescription
aesthetic_scoreFLOAT
technical_scoreFLOAT
overall_scoreFLOAT
summarySTRING