Nodes/Powder Nodes/Powder Grid Saver
ComfyUI Node

Powder Grid Saver

Labeled LoRA comparison grids, the easy way (Powder Grid Saver)

By E2GO·Created 7 months ago·Updated 4 months ago· 0
Powder Grid Saver
  • images
  • grid_image
  • saved_paths
layout
background
gap10
font_size36
show_model_nametrue
show_lora_namestrue
show_promptstrue
prompt_max_chars100
show_seedfalse
show_style_promptfalse
filename_prefixgrid
subfoldergrids
add_model_to_filenametrue
save_jsontrue
lora_info
prompts
negative_prompts
seed

The Powder Grid Saver is the payoff node of the E2GO "Powder" pack. Everything upstream - the Lora Loader fanning out model copies, the prompts fanning out combinations - produces an image batch that is genuinely hard to read as raw thumbnails. This node turns that batch into a labeled grid with the model name, the LoRAs, and the prompt printed under each cell, and saves it to disk with a JSON sidecar. If you do LoRA comparisons or prompt batches with any regularity, you'll wonder how you lived on raw contact sheets.

The killer feature is that it's wire-light. Give it images, optionally the same lora_info and prompts strings the rest of the pack produces, and it figures the labels out.

How it works

The node stitches your images into a grid - either Horizontal (Loras as columns) or Vertical (Loras as rows) - with configurable gap, font size, and a Dark or Light background. Each cell can carry the model name, LoRA names, and the prompt, truncated by prompt_max_chars. The seed option is thoughtful: with a batch larger than one, it prints Seed: N [i/batch] so you can reproduce a specific cell later.

The genuinely clever bit is style detection. Grid Saver automatically finds the Powder Styler node in your workflow through ComfyUI's hidden prompt graph - no extra wires needed. The show_style_prompt switch then decides how the style appears in the label: OFF appends just the style name ("a portrait of a warrior [Cinematic, Dark Fantasy]"), ON assembles the full style text ("cinematic lighting, a portrait of a warrior, film grain"). Style metadata always lands in the JSON regardless of the switch.

It also extracts sampler, scheduler, steps, CFG, and seed from any sampler node in the workflow for the JSON metadata - including the Flux split nodes (KSamplerSelect, Flux2Scheduler, RandomNoise, CFGGuider) - so you don't have to wire settings in manually. When you connect the seed input, the JSON additionally gets per-image seeds and batch_indices for reproducing individual cells.

The inputs that matter

  • images - the batch to grid. From your VAE Decode.
  • layout / background / gap / font_size - grid cosmetics.
  • show_prompts / show_lora_names / show_seed / show_style_prompt - what the labels show.
  • filename_prefix / subfolder / add_model_to_filename / save_json - output naming and the JSON sidecar.

Optional wire-ins: lora_info, prompts, negative_prompts (for labels), and seed.

Outputs are grid_image (the assembled grid as an IMAGE, previewable) and saved_paths (where the files went).

Installation

Same one-install-for-all as the rest of the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/E2GO/e2go-comfyui-nodes.git e2go_nodes

Restart ComfyUI, or install via ComfyUI Manager by searching e2go_nodes / E2GO. No extra pip dependencies; the pack targets ComfyUI 0.17+.

Common issues

Three things to know. First, this is an output node that always runs when queued (IS_CHANGED returns NaN), so it will re-save every time - that's normal, don't fight it. Second, the automatic sampler-metadata extraction works by scanning the workflow for sampler nodes; if your metadata looks wrong, check which sampler node it found - it grabs from any sampler in the graph, so if you have an unused one lying around, that's what it reports. Third, custom fonts: drop a .ttf into e2go_nodes/fonts/ and it's picked up automatically; without one you get the system default, which is fine but bland.

The one genuinely fiddly part: labels only show what you feed it. If you skip the prompts / lora_info wires, the cells will still grid up but without the per-cell text that makes comparison grids useful. The pack's example workflow shows the full wiring, and it's worth importing once to see it working.

Categorye2go_nodes

Inputs (19)

NameTypeDefaultDescription
imagesIMAGE
layoutCOMBO2 options: Horizontal (Loras as columns), Vertical (Loras as rows)
backgroundCOMBO2 options: Dark, Light
gapINT100–100
font_sizeINT3612–100
show_model_nameBOOLEANtrue
show_lora_namesBOOLEANtrue
show_promptsBOOLEANtrue
prompt_max_charsINT10010–500
show_seedBOOLEANfalse
show_style_promptBOOLEANfalse
filename_prefixSTRINGgrid
subfolderSTRINGgrids
add_model_to_filenameBOOLEANtrue
save_jsonBOOLEANtrue
lora_infooptSTRING
promptsoptSTRING
negative_promptsoptSTRING
seedoptINT

Outputs (2)

NameTypeDescription
grid_imageIMAGE
saved_pathsSTRING