WP Seed List
One Seed In, N Matching Seeds Out — So Your Loop's Prompts and Renders Stay Married
- wp_seed_list_config
- loop_config
- seed
If you run Wildcard Pipeline's loop, you've noticed the flaw in the naive version: the loop gives you N prompts, but the KSampler has one seed, so either every image renders the same latent noise or you randomize and lose any link between prompt and seed. WP Seed List is the fix. It takes a single base_seed, derives N distinct seeds from it, and emits them as a list that ComfyUI fans out in lockstep with your loop's prompts. Prompt N gets seed N, every time.
How it works
Three inputs, and the two obvious ones are base_seed (INT) and count (1–999, default 4 - set to 1 to emit a single seed without looping). The third, wp_seed_list_config, is a socketless widget that holds the strategy plus three override toggles. The strategy determines how seeds are derived from the base:
- hash_index (default) - each seed is a SHA-256 hash of
base:i, so the batch looks random while staying reproducible. - sequential -
base+0, base+1, base+2...; good when you want seeds that are obviously related. - prime_stride - steps by 1000003; deterministic but visually unrelated.
All seeds get masked to 50 bits via the engine's MAX_SAFE_SEED, matching ComfyUI's own frontend randomize cap. That's a deliberate nicety - the values stay in the range a stock seed widget accepts, so they're copy-pasteable and never look alien.
The interesting part is the optional loop_config input. Wire WP Context Loop's side output into it and three override toggles appear in the widget:
- override_seed - take
base_seedfrom the loop's config (off by default, on purpose: mixing seed sources is common, so you opt in). - override_count - take
countfrom the loop's config (auto-flipped on when you connect the wire). - override_strategy - take
strategyfrom the loop's config (also auto-flipped on).
Connecting the wire auto-flips count and strategy because "the loop is now in charge of the series shape" is the natural default - but the toggles are independent, so you can mix sources, e.g. "loop's count, my own strategy, my own base seed." If you later unplug the wire, the widget values you set are the fallback, so the workflow keeps running instead of dying. The output is seed as an INT list, which KSampler (or anything that fans out on a list input) accepts directly.
Why this beats the alternatives
You can get N seeds out of several utility packs, but those are random pulls with no relationship to your loop. The whole point of this node is the pairing: because the loop and the seed list derive from the same base_seed and the same count, iteration N's prompt and iteration N's seed are locked together. That matters the moment you find a great result and want to reproduce it - or tweak one iteration without rerolling the batch. It also means "frame 3 of 20" and "seed 3" always correspond in your metadata, which is what makes batch generation reviewable instead of a lottery.
Install
Install the pack once - Manager → Wildcard Pipeline, or git clone https://github.com/DumiFlex/ComfyUI-Wildcard-Pipeline + pip install -e . + pnpm install && pnpm run build. Needs ComfyUI ≥ 0.3.36; no models, no extra Python deps.
One trap worth naming: the seed list fans out on list iteration, so it must be wired somewhere that also fans out - the KSampler's seed input, right alongside your prompt chain. If you wire it into a node that doesn't consume lists, you'll get the first seed and wonder why the variety is gone.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| base_seed | INT | 00–1125899906842623 | Starting point for randomisation. Change for a different roll; keep the same to reproduce. Right-click → Convert widget to input to drive from another seed node. |
| count | INT | 41–999 | How many seeds to derive in the series (1–999). Set to 1 to emit a single seed without looping. |
| wp_seed_list_config | WP_SEED_LIST_CONFIG | {} | — |
| loop_configopt | WP_CONTEXT_LOOP_CONFIG | Optional WP Context Loop side-output. When wired and at least one override toggle is on, the matching field (base seed and/or count+strategy) mirrors the loop's resolved config. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| seed | INT | — |