Nodes/Comfyui-TOO-Pack/πŸ§ͺ TOO LoRA Grid (Advanced)
ComfyUI Node

πŸ§ͺ TOO LoRA Grid (Advanced)

LoRA comparison for the SamplerCustomAdvanced stack

By tetsuoo-onlineΒ·Created 9 months agoΒ·Updated about a month agoΒ· 5
πŸ§ͺ TOO LoRA Grid (Advanced)
  • vae
  • noise
  • guider
  • sampler
  • sigmas
  • latent_image
  • grid
  • images
β—„loras# path:str_model # ex: my_lora.safetensors:1.0 # ex: my_lora.safetensors:"no lora"β–Ί
β—„grid_cols4β–Ί
β—„grid_padding4β–Ί
β—„add_labelstrueβ–Ί
β—„label_height24β–Ί
β—„font_size30β–Ί
β—„label_color#ffffffβ–Ί
β—„bg_color#111111β–Ί
β—„footer_textβ–Ί

The plain TOO LoRA Grid is great, but it has a wall around it: it takes cfg, sampler_name, scheduler and denoise like a classic KSampler. If your workflow runs on the newer custom-sampling stack - RandomNoise, a guider, a sampler object and sigmas, the SamplerCustomAdvanced shape - you can't just drop a classic sampler node in the middle of it. TOO LoRA Grid (Advanced) is the same comparison-grid idea rebuilt for that world.

Instead of sampler settings, it takes the pieces of the sampling stack directly as inputs: noise, guider, sampler, sigmas, plus vae, latent_image, and the same multiline loras widget and grid controls as the original. Feed it the outputs of your guider and sampler setup, and it runs one generation per LoRA entry, all on the same latent and stack, then assembles the labeled grid.

How it works. This is the interesting part, mechanically. A LoRA normally gets applied by wrapping the model before sampling. In the custom stack, the model isn't a loose wire - it's buried inside the guider as a model patcher. The node introspects the guider to find every model patcher it carries (including dual-model guiders with separate uncond_model_patcher attributes), clones them, applies the LoRA patch to each clone, and rebuilds a shallow copy of the guider that reuses the existing conditioning and cfg settings. It never needs to know the guider's exact type - it just finds the patchers, patches, and hands the result to comfy.sample.sample_custom. It's a genuinely clever bit of plumbing for a genuinely annoying integration problem.

The inputs. Required: vae, noise (NOISE), guider (GUIDER), sampler (SAMPLER), sigmas (SIGMAS), latent_image, the multiline loras text, and the grid/label controls (grid_cols, grid_padding, add_labels, label_height, font_size, label_color, bg_color, footer_text). The loras format is identical to the base version - one per line, path:strength, and path:"label" for a no-LoRA null slot - and output is the same pair: grid and images (the cell batch).

Install.

cd ComfyUI/custom_nodes
git clone https://github.com/tetsuoo-online/Comfyui-TOO-Pack

or ComfyUI Manager β†’ "Comfyui-TOO-Pack" β†’ restart.

When to reach for it. If your workflow is classic-format (KSampler with cfg/sampler/scheduler), use the base LoRA Grid - simpler, less to wire. This one is specifically for the custom-sampling pipelines where a standard sampler node physically won't plug in: advanced guiders, custom noise, sigmas you've scheduled yourself. It keeps the same same-seed, one-image-per-LoRA comparison discipline, which is still the whole point - a grid of candidates against a null-slot baseline beats flipping loaders by hand every time. The caveats from the base node carry over: one sample per entry, in-memory cache only, and LoRAs must match your base model's architecture.

CategoryπŸ”΅TOO-Pack/utils

Inputs (15)

NameTypeDefaultDescription
vaeVAEβ€”
noiseNOISEβ€”
guiderGUIDERβ€”
samplerSAMPLERβ€”
sigmasSIGMASβ€”
latent_imageLATENTβ€”
lorasSTRING# path:str_model # ex: my_lora.safetensors:1.0 # ex: my_lora.safetensors:"no lora"β€”
grid_colsINT41–16β€”
grid_paddingINT40–64β€”
add_labelsBOOLEANtrueβ€”
label_heightINT2412–64β€”
font_sizeINT308–48β€”
label_colorSTRING#ffffffβ€”
bg_colorSTRING#111111β€”
footer_textSTRINGβ€”

Outputs (2)

NameTypeDescription
gridIMAGEβ€”
imagesIMAGEβ€”