Plot Block Params
The Node That Turns a Flux Block Sweep Into a Labeled Comparison Sheet
- images
- params
- IMAGE
The whole point of FluxBlockPatcherSampler is to hand you a stack of images - one per block-weight setting - so you can compare what each value does. But a stack of near-identical Flux images is a genuinely useless artifact unless you can tell which is which. PlotBlockParams is the second half of that trick: it stamps each image with the exact regex and weight that produced it, then merges the whole batch into one tidy grid you can actually read.
It comes from cubiq's "Flux blocks patcher sampler" pack, and it's the most self-contained node of the three - no model patching, no attention rewiring, just image bookkeeping. It's also the easiest to reach for in isolation once you have the patcher's output.
What it does
Two jobs, both simple:
- Caption - for each image it draws a small text band below it showing
regex: value(for exampledouble_blocks\.0\.: 1.1), using a monospace font that ships inside the pack. Nothing to download, no system font dependency. - Grid - it merges the captioned batch into a single image with a chosen number of columns, padding the last row so the grid stays rectangular.
Wire it up as FluxBlockPatcherSampler.latent → VAE Decode → PlotBlockParams.images and FluxBlockPatcherSampler.sampler_params → PlotBlockParams.params, then send the IMAGE output to a PreviewImage or SaveImage. That's the whole pipeline the pack's example workflow uses.
Inputs that matter
images- the IMAGE batch from your VAE Decode.params- theSAMPLER_PARAMSoutput of FluxBlockPatcherSampler. This is what makes the captions correct: it carries the regex and value per sampled image.cols_num- controls the grid.-1(the default) means don't merge, just caption and pass the batch through.0auto-picks columns as the square root of the image count (the example workflow uses this for a roughly square sheet). Any positive number forces that many columns.add_params-true/falsetoggle for whether the caption text is drawn at all.
The one error you'll actually hit
PlotBlockParams throws ValueError: Number of images and number of parameters do not match. - and it's almost always your fault, in a flattering way. It happens when the image count doesn't line up with the param list: you changed the number of lines in the patcher's blocks box after a run, reconnected an old latent, or fed it some other sampler's output. There's no recovery mode; just re-run the patcher so both sides have the same count. If you're reusing cached images from an earlier sweep, match the params to what actually produced them.
Installing
Same as the rest of the pack - ComfyUI Manager (search "Flux blocks patcher sampler") or:
cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/Block_Patcher_ComfyUI
Restart ComfyUI. There's no requirements.txt and nothing heavy: it needs PIL and torch, which ComfyUI already ships, plus the bundled ShareTechMono-Regular.ttf that comes with the repo. No models, no downloads.
Verdict
PlotBlockParams is thin on purpose, and that's fine - it's the readability layer for an experiment that's useless without one. The only real gotcha is the count-mismatch error and the fact that captions are drawn below the image, which shifts overall aspect ratios if you're comparing outputs 1:1 in a viewer. For turning a block-weights sweep into something you can actually sit back and judge, it's exactly the node you'd want. Just remember the whole pack is labeled experimental - treat the labeled sheet as a map of where to dig, not a final answer.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| params | SAMPLER_PARAMS | — | |
| cols_num | INT | -1-1–1024 | — |
| add_params | COMBO | true | 2 options: false, true |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |