Create Prompt Variant
Nudge a prompt sideways instead of rerolling it entirely
- prompt
You found a prompt you like - maybe OneButtonPrompt handed it to you, maybe you wrote it yourself - and now you want ten more like it. Not ten completely new random rolls, which could land anywhere, but ten near-siblings of the one that worked. That's the job CreatePromptVariant does. Feed it a prompt, and it hands back a variant: close enough to the input that it's recognizably the same idea, different enough that it isn't identical.
The author's own description of the mechanism, from when this node first shipped, is worth repeating because it's actually a decent mental model: it reuses the pack's own generation logic on the pieces already present in your prompt rather than rolling a brand-new one from nothing, so the output rhymes with what you gave it instead of being an unrelated new subject. Think of it as OneButtonPrompt's randomizer running with most of the dice already loaded to match your input.
How it works
It takes the prompt you feed in, breaks it down using the same generation logic the pack uses when building a prompt from scratch, and regenerates a portion of it based on insanitylevel and the seed - leaving enough of the original intact that the family resemblance holds.
The inputs and outputs that matter
prompt_input(required, multiline) - the starting prompt. This works best with something built in the pack's own style (comma-separated subjects, artists, lighting terms) since that's the vocabulary the variant logic understands; feed it a natural-language sentence prompt built for a different kind of model and results get less predictable.insanitylevel(optional, 1–10, default 5) - how far the variant drifts from the input. Low, and you get small tweaks; high, and you get a much rougher cousin of the original that may barely resemble it.seed(optional) - same input plus same seed gives you the same variant every time. Randomize it to get a fresh set on each run, exactly like a KSampler.- Output:
prompt, a single string - feed it straight into your CLIP Text Encode, or loop it back throughCreatePromptVariantagain for a second generation of drift.
How to install it
Same pack, same install path: ComfyUI Manager → search "One Button Prompt" → install → restart, or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/AIrjen/OneButtonPrompt
then restart ComfyUI. No models, no extra dependencies - it's the same text-manipulation core as the rest of the pack.
Common issues & troubleshooting
The variant doesn't resemble the input at all. Check insanitylevel first - high settings are meant to drift far. If it's already low and you're still getting something unrelated, the input prompt may not be in a shape the variant logic can parse well; very short or very unstructured input gives it little to hold onto.
Every run gives the exact same result. You've got a fixed seed. Randomize it if you want a new roll each time you run the graph.
Wired it up as a batch-variation tool and results feel repetitive. Chaining the same input through CreatePromptVariant multiple times with different seeds tends to converge on similar drift patterns; for genuinely wide variety, it's usually better to go back to OneButtonPrompt itself and generate fresh, then use this node to explore around whichever fresh result you liked best.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_input | STRING | — | |
| insanitylevelopt | INT | 51–10 | — |
| seedopt | INT | 00–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |