Nodes/ComfyUI-DaSiWa-Nodes/DaSiWa Wildcard & Preset Prompt Builder
ComfyUI Node

DaSiWa Wildcard & Preset Prompt Builder

Roll the dice on your prompt — and be able to reroll the exact same roll

By darksidewalker·Created 5 months ago·Updated 4 days ago· 109
DaSiWa Wildcard & Preset Prompt Builder
    • positive_prompt
    • negative_prompt
    styleBooru
    seed0
    token_budget200
    selection_state{}
    reroll0
    auto_rerollfalse
    positive_input
    negative_input

    Wildcards are old A1111 tech that most people who arrived after 2024 never learned: {red|blue} car means the prompt randomly becomes "red car" or "blue car" each run. The DaSiWa Wildcard & Preset Prompt Builder takes that idea, bundles a full wildcard library, and adds the thing that makes randomization actually usable in ComfyUI - reproducibility. The whole point of this node is that you can roll fresh options, get a result you like, and reproduce that exact prompt later instead of wondering what the dice gave you.

    Most wildcard setups in ComfyUI are a two-node affair: a picker node and a downstream text router. This one builds both positive and negative prompts from a bundled dual-style library, so it outputs positive_prompt and negative_prompt strings ready to feed a sampler's conditioning - no separate picker needed.

    How it works

    The library lives in one editable JSON file - data/wildcards_and_presets_dual.json inside the pack - organized into 24 categories in prompt-friendly order (quality/style first, then subject, character, clothing, scene, NSFW, negatives last). You select subjects on the node UI; each selection has a weight; each side (positive and negative) is assembled independently.

    The key mechanism is the seed plus reroll pairing. seed makes the wildcard choices deterministic, and reroll is a counter that advances the selection. Same seed + same reroll = same {A|B|C} choices, always. The New Picks button advances the reroll value; the Random Select button replaces your whole selection with a secure-random 1–10 subject draw. There's also a New picks on every queue toggle that deliberately breaks reproducibility when you want variety on every run.

    The inputs that matter

    • style - Booru (tag-style, for Illustrious/Pony/NoobAI-type checkpoints) or Natural Language (phrases, for Flux/Wan-era models). The library carries both vocabularies per subject, so switching style switches the whole prompt dialect. This matters: tag models understand Danbooru tags much better than sentences, and vice versa.
    • token_budget (default 200) - the node estimates token count locally and drops complete enabled subjects, lowest weight first, until the prompt fits. Positive and negative get independent budgets.
    • seed and reroll - the reproducibility pair above. Set seed once, and reroll is your "different but traceable" button.

    The optional positive_input / negative_input STRING sockets prepend your own existing prompt to each generated side - handy if you have a fixed scene line and only want the wildcard part to vary.

    Outputs

    positive_prompt and negative_prompt - plain STRINGs. Wire them into whatever CLIPTextEncode setup your checkpoint uses. Non-1.0 weights emit ComfyUI emphasis syntax ((cinematic lighting:1.2)), and weights of 1.0 emit plain text, so the output is ordinary ComfyUI prompt text.

    Installing it

    ComfyUI Manager (search DaSiWa-Nodes), or:

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

    then restart. It's a text node - no models to download, no GPU requirement beyond ComfyUI itself.

    Where people get burned

    • Editing the library and seeing nothing change. The JSON is read at node load, not on every queue. Restart ComfyUI after editing data/wildcards_and_presets_dual.json.
    • Updating the pack clobbers your library. The bundled file is ordinary JSON with no checksum or version pin, which is great for customization and bad for updates - keep a backup of your custom file, because a package update may replace it.
    • Contradictory selections. The builder won't stop you selecting "1girl" and "5girls" at once, or mixing a species you don't want. The character-count presets are fixed (selecting "3 Girls" always emits 3girls), so the randomness is only where the wildcards are.
    • "Why did my prompt change?" - that's auto_reroll or the every-queue toggle. If you want stable output, leave both off and rely on seed + reroll.

    It's a niche node - the kind you add when you're bored of hand-tuning prompts and want a structured way to explore. But it's also the rare wildcard tool where you can actually chase a good roll back to its exact inputs.

    CategoryDaSiWa/Text

    Inputs (8)

    NameTypeDefaultDescription
    styleCOMBOBooru2 options: Booru, Natural Language
    seedINT00–4294967295
    token_budgetINT2001–10000
    selection_stateSTRING{}
    rerollINT00–2147483647
    auto_rerollBOOLEANfalse
    positive_inputoptSTRING
    negative_inputoptSTRING

    Outputs (2)

    NameTypeDescription
    positive_promptSTRING
    negative_promptSTRING