Nodes/CCIP Judge/Score Overlay (preview)
ComfyUI Node

Score Overlay (preview)

See the verdict on the image before you trust the pipeline

By o-ankomochi-o·Created 3 months ago·Updated 29 days ago· 0
Score Overlay (preview)
  • image
  • annotated
pass_mask
ccip_threshold0.213
oks_threshold0.50
angle_threshold0.50
ccip_distance
oks
angle_distance

Automated filtering is only worth something if you can trust it, and you shouldn't trust a judge you've never watched work. Score Overlay is the debug-and-calibration node of the CCIP Judge pack: it stamps each image with its per-metric scores and the final verdict, drawn as a caption band across the top. Green band, LIKED. Dark red band, disliked. Wire its output into a Preview Image node and you can eyeball exactly why the pipeline accepted or rejected every single frame.

It's not a filter and it doesn't save anything - it's a preview. Its whole job is making the scoring visible before you commit a large batch to the router.

What it draws

For each image, the caption shows the batch index, the three scores with their per-metric verdicts, and the final verdict. Something like:

idx=07  CCIP=0.152[OK]  OKS=0.431[NG]  Angle=0.392[OK]  -> disliked

Each metric is marked [OK] or [NG] against the threshold you set, and a detection failure shows as CCIP=FAIL instead of a misleading number. That last bit is quietly important: NaN is rendered honestly rather than as a score you'd misread as good or bad.

The three threshold inputs - ccip_threshold (0.213), oks_threshold (0.5), angle_threshold (0.5) - are what the [OK]/[NG] tags are judged against, and they double as a single place to tune thresholds before you run the real filter. It needs image and pass_mask (the verdict comes from the mask, not recomputed here), and optionally the ccip_distance, oks, and angle_distance lists so there's something to display. Output is a single annotated IMAGE.

Why you'll actually reach for it

Calibration. The pack's default thresholds are a reasonable starting point for anime generally, but they were not calibrated on your character, your LoRA, or your reference set - the README is explicit that you should re-calibrate with human labels. Score Overlay is that calibration loop made visible: run a small labeled batch, and in one glance you'll see which metric is rejecting images you'd have kept. Is it always Angle? Then your references are badly framed relative to your generations, or your batch is full of close-ups that can't produce shoulder features. Is everything NG on CCIP? Your reference pool is probably one-note.

The other use is pure sanity. Before you point the full pipeline at a thousand-image batch, run it on ten images and confirm the judge agrees with your eyeballs. Filtering you can't audit is how you delete a run's best images.

Installing

Same shared install as every node in the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/o-ankomochi-o/comfyui-ccip-judge.git
cd comfyui-ccip-judge
python -m pip install -r requirements.txt

Or find it via ComfyUI Manager as "CCIP Judge". Python 3.10–3.12, one of onnxruntime or onnxruntime-gpu but never both, and the DWPose ONNX model downloads from Hugging Face on the first scorer run. Fonts: the caption uses a best-effort system font (DejaVu on most Linux setups, Arial on Windows) with a bitmap fallback, so it renders everywhere, just prettier on some systems.

One honest limitation: because it displays whatever scores you feed it, its value depends on you wiring the actual score outputs into it. Wire pass_mask and the three score lists from the scorers (or from Three-Stage Filter plus the scores) and it's the most useful debugging node in the pack - the rest of the time it's a pretty band of text. Use it during calibration, then drop it out of the final workflow if you want.

Categoryimage_judge

Inputs (8)

NameTypeDefaultDescription
imageIMAGE
pass_maskBOOLEAN
ccip_thresholdFLOAT0.2130–2
oks_thresholdFLOAT0.500–1
angle_thresholdFLOAT0.500–5
ccip_distanceoptFLOAT
oksoptFLOAT
angle_distanceoptFLOAT

Outputs (1)

NameTypeDescription
annotatedIMAGE