Nodes/Fantastic Loras/Fantastic Plotter Image Saver ๐Ÿ“Š
ComfyUI Node

Fantastic Plotter Image Saver ๐Ÿ“Š

Turn a LoRA sweep into one labelled grid image

By AdudeguymanยทCreated 3 months agoยทUpdated 16 days agoยท 17
Fantastic Plotter Image Saver ๐Ÿ“Š
  • images
  • grid
  • images
  • metadata
  • global_loras_info
โ—„metadataโ€”โ–บ
โ—„constrain_sizefalseโ–บ
โ—„max_cell_size768โ–บ
โ—„text_colorwhiteโ–บ
โ—„background_colorblackโ–บ
โ—„font_size20โ–บ
โ—„padding10โ–บ
โ—„opacity1.00โ–บ
โ—„images_per_row0โ–บ
โ—„single_strength_layoutrowโ–บ
โ—„classic_gridfalseโ–บ
โ—„global_loras_infoโ€”โ–บ

The Plotter generates all the cells; this node makes them readable. The Fantastic Plotter Image Saver takes the Plotter's per-cell images plus its metadata labels and composes them into a single grid image - one labelled comparison you can save, share, or drop into a gallery. Under the hood it fuses the jobs of three separate nodes (a plot label saver, an image-list-to-batch resizer, and a grid composer), which is exactly the kind of consolidation this pack is about.

Why you'd use it

You could save all your sweep cells and arrange them in an image editor yourself. You won't - not after the tenth cell. This node does the arranging, with two layout styles to choose from:

  • Overlay (default) - each cell keeps a small semi-transparent label box drawn in its corner (lora name + strength). Cells stay self-describing however the grid gets cropped or shared.
  • Classic - the A1111-style XY grid: cells stay clean, LoRA names run down the left margin and strengths across the top. This needs a complete lora ร— strength rectangle, so it only makes sense in the Plotter's Global sweep mode; if the metadata doesn't form a clean grid it falls back to Overlay and tells you in the console.

The grid layout is automatic: with images_per_row at its default of 0, the node counts the distinct strength values in the metadata and uses that as the column count, so Global-mode sweeps lay out as a true XY grid with zero configuration. The one special case - several LoRAs at a single shared strength (one image each) - defaults to laying them out in one row; flip single_strength_layout to column if you'd rather stack them.

Inputs and outputs

Required inputs: images (the per-cell images) and metadata (the Plotter's label strings). Then the label formatting knobs - text_color, background_color (12 named colors each), font_size (default 20), padding, and opacity for the overlay box. Two that actually matter for big sweeps:

  • constrain_size - when on, each cell is scaled down so its longest side equals max_cell_size (default 768, max 2048) before the grid is assembled. A 4ร—4 grid of 1024px images would otherwise become a ~4096px-wide monster; this keeps it sane.
  • classic_grid - the Overlay/Classic mode toggle.

Optional input global_loras_info carries the globals summary through for labeling. Outputs: grid (the single composed IMAGE, for any Save Image node), plus images, metadata, and global_loras_info passed straight through as lists - so a Fantastic Plotter Grid Viewer can hang off this node rather than re-tapping the Plotter's wires.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Adudeguyman/comfyui_fantastic-loras

or ComfyUI Manager โ†’ search Fantastic Loras, then restart and hard-refresh. No dependencies. The README notes the original implementation leaned on the Impact Pack and fill-nodes, but the shipped node is self-contained - you don't need either installed.

Common issues

  • Grid came out in one column instead of a row. That's the single-strength case - set single_strength_layout to row (it's the default) if every LoRA was tested at the same strength.
  • Classic mode silently fell back to Overlay. The metadata didn't form a complete lora ร— strength rectangle. Use the Plotter's Global sweep mode so every LoRA appears at every strength.
  • The grid is enormous. Turn on constrain_size and/or check the Plotter's SWEEP footer count before queueing.
  • Cells look different sizes. This node resizes to a common size before composing; if cells are wildly different resolutions, constrain_size gives you tighter control over the final output.

One design note: the grid output is a flattened image, so you can't pull cells back out of it - that's exactly why the images passthrough exists. If you want to browse cells interactively after composing, that's what the Grid Viewer is for; run both.

Categoryloaders

Inputs (13)

NameTypeDefaultDescription
imagesIMAGEโ€”
metadataSTRINGโ€”
constrain_sizeBOOLEANfalseWhen on, each cell image is scaled down so its longest side equals Max Cell Size before the grid is assembled. Use this to keep the overall output manageable when rendering many large images โ€” e.g. a 4x4 grid of 1024px images becomes a 4x4 grid of smaller cells instead of a giant ~4096px-wide output. Has no effect when off.
max_cell_sizeINT76864โ€“2048Longest side of each cell image in pixels. Only used when Constrain Image Output Size is on.
text_colorCOMBOwhite12 options: white, black, red, green, blue, yellow, +6
background_colorCOMBOblack12 options: white, black, red, green, blue, yellow, +6
font_sizeINT208โ€“256โ€”
paddingINT100โ€“100โ€”
opacityFLOAT1.000โ€“1โ€”
images_per_rowINT00โ€“640 = auto (one column per distinct strength). >0 overrides. Ignored in classic grid.
single_strength_layoutCOMBOrowOnly applies in auto mode when every lora is tested at a single (same) strength, i.e. one image per lora. row (default): loras lay out side by side in one row. column: loras stack vertically in one column. Has no effect when strengths vary (that already forms a row) or when images_per_row is set.
classic_gridBOOLEANfalseOff (default): overlays each image's metadata as a label box drawn ON the image. On: classic XY plot โ€” images are padded and the labels are drawn OUTSIDE along the border, loras down the left (rows) and strengths across the top (columns). Needs a full lora x strength grid; otherwise it falls back to overlay.
global_loras_infooptSTRINGโ€”

Outputs (4)

NameTypeDescription
gridIMAGEโ€”
imagesIMAGEโ€”
metadataSTRINGโ€”
global_loras_infoSTRINGโ€”