Nodes/Comfyroll Studio/πŸ“± CR Simple Image Compare
ComfyUI Node Runs on cloud

πŸ“± CR Simple Image Compare

Labeled side-by-side before/after images

By Suzie1Β·Created 3 years agoΒ·Updated 2 years agoΒ· 1,287
πŸ“± CR Simple Image Compare
  • image1
  • image2
  • image
  • show_help
β—„text1textβ–Ί
β—„text2textβ–Ί
β—„footer_height100β–Ί
β—„font_nameβ–Ύβ–Ί
β—„font_size50β–Ί
β—„modeβ–Ύβ–Ί
β—„border_thickness20β–Ί

CR Simple Image Compare stitches two images side by side with a caption under each and hands you back a single image. It's the node you reach for when you want a clean before/after that you can actually post - base vs. upscaled, two samplers, LoRA on vs. off, this checkpoint vs. that one. Instead of screenshotting and cropping in an editor, you wire both images in, type two labels, and get a shareable comparison out of the graph itself.

This is genuinely handy for the kind of A/B testing everyone does but nobody documents well. Upscaling comparisons especially - where the whole question is "did this actually add detail or just soften everything" - read much better as a labeled pair than as two separate outputs you have to eyeball in sequence.

How it works

You feed it two images and two text captions. It lays the images out next to each other, adds a footer strip under each holding the caption, and renders the whole thing as one composite image. The footer height, the font, the font size, the border between the images, and a light/dark mode are all yours to set. Because it uses the pack's bundled fonts, the font_name dropdown lists whatever's in Comfyroll's fonts folder - so your caption styling is consistent without hunting down a TTF.

The inputs and outputs that matter

  • image1 / image2 (optional IMAGE) - the two images to compare. These are the actual content; wire your before and after in.
  • text1 / text2 - the captions under each image. This is where "Base / Upscaled" goes.
  • mode (normal / dark) - light or dark background for the composite.
  • font_name, font_size, footer_height - caption styling. Bump footer_height if your labels get clipped.
  • border_thickness - the gap between the two images.

Outputs:

  • image (IMAGE) - the finished side-by-side. Wire it into a Save Image or Preview.
  • show_help - wiki link, ignore.

How to install it

Comfyroll Studio (Suzie1 and RockOfFire), a mature utility pack - no models, no heavy dependencies. The fonts it uses ship with the pack.

  • ComfyUI Manager - search Comfyroll Studio, install, restart.
  • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, then restart.

Also on CivitAI.

Common issues

This is a Graphics node, and the Graphics group is exactly the one that most often fails to import - so it's worth knowing the pack-wide gotcha in detail here. If Comfyroll's graphics nodes won't load, your ComfyUI log shows Comfyroll Studio: Failed to load Graphics nodes ending in NameError: name 'CR_HalftoneGrid' is not defined. That NameError is a symptom, not the cause: one of the graphics classes failed to import earlier - almost always because another custom node dragged in a Pillow (PIL) version the graphics code doesn't like - and since the pack registers as one block, the whole thing goes down with it. Scroll up to the first real traceback; the fix is nearly always reinstalling Pillow (pip install --upgrade --force-reinstall pillow) into ComfyUI's Python and restarting.

Smaller stuff: if captions get cut off, raise footer_height or drop font_size. And if your two images are wildly different sizes, the layout can look lopsided - resize them to a common dimension first for a cleaner comparison.

Category🧩 Comfyroll Studio/πŸ‘Ύ Graphics/πŸ“± Template

Inputs (9)

NameTypeDefaultDescription
text1STRINGtextβ€”
text2STRINGtextβ€”
footer_heightINT1000–1024β€”
font_nameCOMBO10 options: Roboto-Regular.ttf, Quicksand-Bold.ttf, Oswald-Bold.ttf, comic.ttf, AlumniSansCollegiateOne-Regular.ttf, NotoSansArabic-Regular.ttf, +4
font_sizeINT500–1024β€”
modeCOMBO2 options: normal, dark
border_thicknessINT200–1024β€”
image1optIMAGEβ€”
image2optIMAGEβ€”

Outputs (2)

NameTypeDescription
imageIMAGEβ€”
show_helpSTRINGβ€”