♻️ Prompt Shuffle ♻️
A fast, lightweight tag shuffler
- shuffled_string
The plain version of tag shuffling in this pack - take a comma-separated (or custom-separator) prompt and randomize the order, with an optional cap on how many tags actually move. It's simple on purpose: no walking logic, no decay curves, just noise. Reach for this one when you just want quick variety and don't need the finer control the Advanced version offers.
How it works
string gets split on separator. From there, limit decides the shuffle style: leave it at 0 and you get a full shuffle - every tag's position is randomized. Set it above 0 and you get a partial shuffle - exactly limit single-item moves happen, and the rest of the tags stay right where they started. That's a genuinely different operation from "shuffle a fraction of the list," and it's the thing that makes this node useful for controlled variance instead of pure chaos: a limit of 2 on a 15-tag prompt moves two tags and leaves thirteen untouched, rather than lightly reshuffling the whole thing.
The inputs and outputs that matter
string- the prompt to shuffle.separator(default,) - what splits it into movable pieces.limit(0–200) - 0 for a full shuffle, or the exact number of single-item moves to perform.seed- reproducibility.- Output:
shuffled_string.
How to install it
Bundled with the rest of the pack. Search comfyui-adaptiveprompts in ComfyUI Manager, or install manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Alectriciti/comfyui-adaptiveprompts
Restart ComfyUI. No models, no extra dependencies.
Common issues & troubleshooting
A full shuffle changes more than just the "feel" of the image. Worth knowing before you reach for limit=0 as a default: on CLIP-token models (SD 1.5, SDXL, and anything in the Illustrious/Pony/NoobAI/WAI lineage), earlier tokens in a prompt receive meaningfully more attention than later ones. A full shuffle doesn't just cosmetically reorder your tags - it can change which concepts actually dominate the generation, since whatever ends up first now carries weight that a different tag carried before. If that's not what you want, use a small limit instead of 0, or reach for PromptShuffleAdvanced's WALK mode, which is built specifically to add variance while keeping tags roughly near their original position.
Nothing seems to move. Check separator matches how your prompt is actually structured - a prompt built with newlines or a non-comma delimiter won't shuffle correctly against the default comma separator.
The same tags keep moving every run even with a different seed. With a low limit, the node is only choosing a small number of positions to swap - on a short prompt, the pool of plausible single-item moves may just be small enough that results look similar across seeds. Raise limit (or set it to 0 for a full shuffle) if you want more visible variety run to run.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | — | |
| separator | STRING | , | — |
| limit | INT | 00–200 | Number of single-item moves to perform. 0 = full shuffle (completely randomize order). |
| seed | INT | 00–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| shuffled_string | STRING | — |