Nodes/Kinburg-Nodes/Image Compare (HTML)
ComfyUI Node

Image Compare (HTML)

A ComfyUI node in Kinburg-Nodes/image/compare with 20 inputs and 3 outputs.

By Kinburg·Created 2 months ago·Updated 3 days ago· 1
Image Compare (HTML)
  • images
  • settings_data
  • reference
  • images_captioned
  • html_path
  • url
titleImage comparison
columns3
overlay_captionstrue
caption_positionbottom
font_size0
filename_prefixcompare
save_captioned_imagesfalse
auto_collecttrue
captions
prompts
times
output_dir
embed_imagesfalse
save_prompts_txtfalse
report_db
reference_index-1
judge_data
CategoryKinburg-Nodes/image/compare

Inputs (20)

NameTypeDefaultDescription
imagesIMAGEImages to compare — a batch OR an image list (e.g. from Get Accumulator (images list)); different sizes are fine.
titleSTRINGImage comparison
columnsINT31–12Default number of columns in Grid mode
overlay_captionsBOOLEANtrueDraw captions onto the 'images_captioned' output
caption_positionCOMBObottom2 options: bottom, top
font_sizeINT00–200Caption font size in px; 0 = auto from image width
filename_prefixSTRINGcompare
save_captioned_imagesBOOLEANfalseAlso save the captioned images as PNG files in the output folder
auto_collectBOOLEANtrueRe-wire every Get Accumulator in the graph automatically, right before the workflow is queued — so a Set you just added, removed, muted or bypassed is picked up without a click. Off: only the '🔌 Collect All' button collects. (Purely an editor convenience; the backend ignores this value.)
captionsoptSTRINGOne caption per line, aligned with the image batch (e.g. from Get Accumulator (captions)). Missing lines become empty.
promptsoptSTRINGFull generation prompts, one block per image separated by a '---' line (e.g. from Get Accumulator (prompts)). Shown on the page (toggleable). Multi-line prompts are fine.
timesoptSTRINGPer-image generation time — one entry per line, aligned with the image batch (e.g. Stop Timer's 'elapsed' collected via Get Accumulator (texts) with a newline separator). Shown under each image and used for the grid's 'Time' sort. Strings like '12.34 s', '1m 30s', '890 ms' or '00:01:30' are parsed for sorting.
output_diroptSTRINGCustom save folder (absolute path). Empty = ComfyUI output. A served copy is also written to output so 'Open comparison' keeps working.
embed_imagesoptBOOLEANfalseHow the comparison is saved. Off (default): a portable FOLDER '<prefix>_<datetime>/' with a light index.html + an images/ subfolder (relative links) — open it offline, zip/share it, or open it in-app. On: a single self-contained .html with every image inlined as base64 (one file, much larger). Both open from the node's URL output.
save_prompts_txtoptBOOLEANfalseSave each prompt to a .txt file named like its image
settings_dataoptGEN_SETTINGSStructured per-image settings from Generation Info Filter's 'settings_data' output. Rendered under each image (one '[Class] param: value' line per field; toggleable) and stored by field (EAV) when you 'Save run to report'.
report_dboptSTRINGSQLite file the page's 'Save run to report' button writes to. Empty = <output>/kinburg/reports.db. The value is shown (and editable) on the page.
referenceoptIMAGEOptional baseline to measure similarity against (e.g. the source of an upscale/img2img, or the fp16 output when checking a quantized model). When connected, SSIM + PSNR are computed for every image vs this reference and shown on the page (with a 'Similarity' sort).
reference_indexoptINT-1-1–4096Used only when no 'reference' image is connected: 0-based index of the image IN THIS BATCH to use as the baseline (every image is measured against it). -1 = off (no metrics).
judge_dataoptSTRINGOptional AI verdicts — wire the Vision LLM Judge's 'results_json' here. Each image gets a read-only judge section (stars / tags / comment), separate from your own review, with its own page toggle.

Outputs (3)

NameTypeDescription
images_captionedIMAGE
html_pathSTRING
urlSTRING