EZ Batch
Generate a whole grid of variations in one run
- image_settings
- IMAGE
EZ Batch is the settings node that turns one render into many. In the Prompt Helpers pipeline, the image side of things is a bundle of settings passed along a wire - and this node's only job is to stamp "generate N images" onto that bundle. It's a passthrough, not a generator, and that's exactly what makes it useful.
You chain it between your image source (EZ txt2img, EZ img2img) and EZ Generate:
EZ txt2img ──► EZ Batch ──► EZ Generate
The two knobs that matter
- batch_size (1–64, default 1) - how many latent images EZ Generate creates in a single run. Set this to 4 and one queue click gives you four images from the same prompt. With different seeds downstream (or seed randomization in EZ Sampler), this is how you roll a variation grid without babysitting the queue.
- select_index (-1–63, default -1) - the re-roll trick. At -1 the whole batch generates. Set it to a specific index and only that image in the batch is generated. Classic use: you got a 4-image batch, one of them was almost right, and you want to re-roll just that one. Crank the seed in EZ Sampler, keep
select_indexlocked on the winner's slot, and you save three renders of compute you'd otherwise waste.
The output is IMAGE (EZ_IMAGE_SETTINGS) - the same settings bundle, now carrying the batch info. It looks identical on the wire; the batch behavior only materializes at EZ Generate time.
How it works under the hood
EZ Generate's image processing reads batch_size and select_index off the settings. For a blank (txt2img) start it builds an EmptyLatentImage with batch_size slots; for img2img it repeats the encoded latent to fill the batch. If select_index is set, it then slices out just that one latent with LatentFromBatch before sampling. So the batch is real - those images genuinely share one sampling pass's structure - not four sequential renders cleverly hidden.
Where people get burned
The most common surprise is pairing EZ Batch with EZ img2img: in the img2img path the source latent is repeated to fill the batch, so with a fixed seed every slot starts from the same image - and you get N clones, not N variations. That's a genuine quirk of the implementation, and it's why batches are most useful starting from EZ txt2img, where each slot gets its own fresh noise. If your batch comes out as clones, the fix is seed handling or starting from a blank canvas, not the batch size.
Installing it
It ships with the Prompt Helpers pack. In ComfyUI Manager search "Prompt Helpers" (Pauan/comfyui-prompt-helpers), install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Pauan/comfyui-prompt-helpers
Restart ComfyUI. No model downloads; the pack needs PyYAML and desktop-notifier and ComfyUI 0.8.0+.
If you're coming from stock ComfyUI's batch controls and find EZ Batch confusing, remember it's just a stamp: everything the node does could be done with EmptyLatentImage's batch size - but then you'd be back to wiring the classic nodes, and the whole point of the EZ family is not doing that.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image_settings | EZ_IMAGE_SETTINGS | — | |
| batch_size | INT | 11–64 | The number of latent images in the batch. |
| select_index | INT | -1-1–63 | Generate only one image in the batch. If this is -1 it will generate the entire batch. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | EZ_IMAGE_SETTINGS | — |