Nodes/Pirog's Nodes for ComfyUI/KSampler (Multi-Seed)
ComfyUI Node

KSampler (Multi-Seed)

Stop hand-clicking the randomize button — let the sampler walk the seeds for you

By Pirog17000·Created about a year ago·Updated 10 months ago· 3
KSampler (Multi-Seed)
  • model
  • positive
  • negative
  • latent_image
  • LATENT
denoise1.00
steps20
cfg8.0
seed_count1
seed0
sampler_name
scheduler
injected_noise0.00
dd_enabledfalse
detail_amount0.10
dd_start0.20
dd_end0.80
dd_bias0.50
dd_exponent1.00
dd_start_offset0.00
dd_end_offset0.00
dd_fade0.00
dd_smoothtrue

We all do it: roll the seed, look at the result, nudge the seed, look again. KSampler (Multi-Seed) automates that loop. Instead of one latent and one seed, you tell it how many seeds to walk through and it returns every variation as a single batch. Set seed_count to 8, get 8 images in one queue run. It's the fastest way to see how a prompt behaves across random states, which is exactly what seed exploration is for.

How it works

Under the hood it's surprisingly un-magical, and that's a good thing. The node grabs ComfyUI's own common_ksampler at runtime - the same function the built-in KSampler uses - so it tracks ComfyUI updates instead of rotting. It takes your starting seed, then for seed_count iterations it samples with seed, seed + 1, seed + 2, and so on, running each pass on the latents you fed in. All results get concatenated into one output LATENT batch.

Two extras separate it from a plain KSampler you'd wire up yourself:

  • injected_noise (0–1) - blends a "base" noise from your starting seed with a per-iteration "variation" noise using spherical interpolation (SLERP). At low values you get images that stay close to the seed's composition but wander - the classic recipe for variations that aren't just different random draws.
  • Detail Daemon (dd_enabled plus the dd_* inputs) - a schedule-based detail adjustment that ramps sharpness up or down at specific points in the denoising curve. Think detail_amount as the overall strength, dd_start/dd_end as the window of steps it operates in, and dd_bias/dd_exponent for shaping the curve. Leave it off until you need it; it's the "advanced" in the node.

Inputs that actually matter

  • seed and seed_count - the pair that defines what this node does. Start seed 0, count 10 → seeds 0–9.
  • latent_image - a single latent works fine, but feed it a batch and it multiplies: batch × seed_count generations total.
  • denoise, steps, cfg, sampler_name, scheduler - identical semantics to the built-in KSampler.
  • injected_noise - 0 disables it; anything above 0 is the SLERP blend amount.

Output: one LATENT batch with batch × seed_count samples. You decode it with a VAE as usual - a single VAEDecode will happily turn the whole batch into images.

Installing it

It's the pack's flagship, but it installs with everything else:

cd ComfyUI/custom_nodes
git clone https://github.com/Pirog17000/Pirogs-Nodes
pip install -r Pirogs-Nodes/requirements.txt

Or search "Pirog's Nodes" in ComfyUI Manager and restart. Pure PyTorch plus ComfyUI internals - no model downloads, no exotic deps for this node.

Gotchas

The big one is VRAM: 10 seeds at 1024×1024 is 10 latents in one batch, and decode plus save will happily OOM a small card. Dial seed_count down and let it run twice rather than once if your card complains. Also, the Detail Daemon's default window is steps 20%–80% - if you set dd_start higher than dd_end you'll get a curve that makes little sense, so keep the window sane. And remember the output is a batch, not 10 separate images - if your workflow wants to inspect or save each one individually, that's a split/other nodes' job.

Categorypirog/sampling

Inputs (22)

NameTypeDefaultDescription
modelMODELThe model used for denoising the input latent.
positiveCONDITIONINGThe conditioning describing the attributes you want to include in the image.
negativeCONDITIONINGThe conditioning describing the attributes you want to exclude from the image.
latent_imageLATENTThe latent image to denoise.
denoiseFLOAT1.000–1The amount of denoising applied.
stepsINT201–10000The number of steps used in the denoising process.
cfgFLOAT8.00–100Classifier-Free Guidance scale.
seed_countINT11–1000The number of seeds to generate images with.
seedINT00–18446744073709550000The starting random seed. It will be incremented for each image in the batch.
sampler_nameCOMBOThe algorithm used when sampling.
schedulerCOMBOThe scheduler controls how noise is gradually removed.
injected_noiseFLOAT0.000–1Strength of noise injection for variation generation. 0.0=disabled, >0.0=blend base and variation noise.
dd_enabledoptBOOLEANfalse
detail_amountoptFLOAT0.10-5–5Overall strength of the detail adjustment.
dd_startoptFLOAT0.200–1Start of the adjustment curve as a fraction of total steps.
dd_endoptFLOAT0.800–1End of the adjustment curve as a fraction of total steps.
dd_biasoptFLOAT0.500–1Curve bias; >0.5 peaks later, <0.5 peaks earlier.
dd_exponentoptFLOAT1.000–10Exponent for the curve shape.
dd_start_offsetoptFLOAT0.00-1–1Adjustment multiplier before the curve starts.
dd_end_offsetoptFLOAT0.00-1–1Adjustment multiplier after the curve ends.
dd_fadeoptFLOAT0.000–1Fade the entire effect in or out.
dd_smoothoptBOOLEANtrueApply smoothing to the curve.

Outputs (1)

NameTypeDescription
LATENTLATENTA batch of denoised latents, one for each seed.