Nodes/ComfyUI-LoRAPlotNode/LoRA Plot Image Saver
ComfyUI Node

LoRA Plot Image Saver

LoRA Plot Image Saver labels your grid — the 'saver' part is a lie

By Hearmeman24·Created 10 months ago·Updated 2 months ago· 43
LoRA Plot Image Saver
  • images
  • images
metadata
text_colorwhite
background_colorblack
font_size24
padding10
opacity0.8

First thing to know: the name is a lie. LoRA Plot Image Saver does not save anything to disk. It's an annotator - it stamps a caption onto each image and hands the images back, and you still need a normal Save Image node after it. Mildly annoying naming, but the job it does is the one that makes a LoRA sweep actually readable.

When its sibling LoRA Plot Node hands you nine nearly identical frames, you can't tell which strength is which thirty seconds later. This node fixes that: feed it the same list of images and the metadata strings from LoRA Plot Node, and it paints a label - the LoRA name on one line, "Strength: 0.8" underneath - into the top-right corner of every frame, with a semi-transparent background box so the text survives busy images. It's the label maker that turns a wall of similar outputs into a plot you can actually compare.

Mechanically it's a round trip through PIL: tensors to numpy, to a PIL image, text drawn on top, back to tensors. The font is cached by size and picked from a cross-platform list - DejaVu Sans Bold on Linux, Arial on Windows, Helvetica on macOS, with Pillow's default as the fallback - so it works out of the box on any OS. The metadata string is parsed by splitting on the last underscore, so my_style_0.8 cleanly becomes "my_style" and "0.8". Since it's just a caption renderer, the whole output is an image list - nothing about it is tied to the plot node's internals beyond the expected string format.

The inputs you'll actually touch:

  • images - the list of decoded images from your VAE Decode (or anywhere).
  • metadata - the strings to caption with. Must match the image count, or be a single string that gets applied to all.
  • text_color / background_color - dropdowns with 12 named colors (white, black, red, green, blue, yellow, cyan, magenta, orange, gray, lightgray, darkgray). Defaults: white on black.
  • font_size - 8–128, default 24. This is the one you'll fiddle with; the box grows to fit.
  • padding - 0–50 px around the text, default 10.
  • opacity - 0.0–1.0 for the background box, default 0.8.

Output: images, as a list.

Gotchas worth knowing before you wire it up:

  • It returns images; it doesn't save them. Put a Save Image (or Save Animated WEBP) node after it. The "Saver" name gets people every time.
  • List length mismatch throws. If the metadata list doesn't match the image list (and isn't a single string), it raises a clear error rather than silently mislabeling. That's actually a feature.
  • It's not limited to LoRA Plot. Since it's just an image-plus-text renderer, you can use it to caption side-by-side comparisons, prompt variations, or any grid output - anything with a list of images and a matching list of strings.
  • Mismatched captions happen if you feed metadata that isn't in name_strength format; it'll just use the whole string as the label, which is usually fine.

Installing is the same story as the rest of the pack: ComfyUI Manager, search "LoRA Plot", or

cd ComfyUI/custom_nodes
git clone https://github.com/Hearmeman24/ComfyUI-LoRAPlotNode.git

then restart. No model downloads, no extra dependencies beyond the Pillow/NumPy/torch that ship with ComfyUI. Small pack, MIT licensed, does one boring job well - and for keeping a strength plot legible, that's exactly what you want.

CategoryLoRA

Inputs (7)

NameTypeDefaultDescription
imagesIMAGE
metadataSTRING
text_colorCOMBOwhite12 options: white, black, red, green, blue, yellow, +6
background_colorCOMBOblack12 options: white, black, red, green, blue, yellow, +6
font_sizeINT248–128
paddingINT100–50
opacityFLOAT0.80–1

Outputs (1)

NameTypeDescription
imagesIMAGE