Nodes/ComfyUI-Prompt-Wildcards/makiwildcards_Advanced
ComfyUI Node

makiwildcards_Advanced

The wildcard node with a probability knob on every slot

By MakkiShizu·Created 2 years ago·Updated about a year ago· 26
makiwildcards_Advanced
    • text
    • file contents
    wildcards_count3
    delimiter,
    clean_whitespacetrue
    replace_underscoretrue
    randomstrue
    seed0
    wildcard_name_1None
    wildcard_probability_11.00
    wildcard_name_2None
    wildcard_probability_21.00
    wildcard_name_3None
    wildcard_probability_31.00
    wildcard_name_4None
    wildcard_probability_41.00
    wildcard_name_5None
    wildcard_probability_51.00
    wildcard_name_6None
    wildcard_probability_61.00
    wildcard_name_7None
    wildcard_probability_71.00
    wildcard_name_8None
    wildcard_probability_81.00
    wildcard_name_9None
    wildcard_probability_91.00
    wildcard_name_10None
    wildcard_probability_101.00
    wildcard_name_11None
    wildcard_probability_111.00
    wildcard_name_12None
    wildcard_probability_121.00
    wildcard_name_13None
    wildcard_probability_131.00
    wildcard_name_14None
    wildcard_probability_141.00
    wildcard_name_15None
    wildcard_probability_151.00
    wildcard_name_16None
    wildcard_probability_161.00
    wildcard_name_17None
    wildcard_probability_171.00
    wildcard_name_18None
    wildcard_probability_181.00
    wildcard_name_19None
    wildcard_probability_191.00
    wildcard_name_20None
    wildcard_probability_201.00
    wildcard_name_21None
    wildcard_probability_211.00
    wildcard_name_22None
    wildcard_probability_221.00
    wildcard_name_23None
    wildcard_probability_231.00
    wildcard_name_24None
    wildcard_probability_241.00
    wildcard_name_25None
    wildcard_probability_251.00
    wildcard_name_26None
    wildcard_probability_261.00
    wildcard_name_27None
    wildcard_probability_271.00
    wildcard_name_28None
    wildcard_probability_281.00
    wildcard_name_29None
    wildcard_probability_291.00
    wildcard_name_30None
    wildcard_probability_301.00
    wildcard_name_31None
    wildcard_probability_311.00
    wildcard_name_32None
    wildcard_probability_321.00
    wildcard_name_33None
    wildcard_probability_331.00
    wildcard_name_34None
    wildcard_probability_341.00
    wildcard_name_35None
    wildcard_probability_351.00
    wildcard_name_36None
    wildcard_probability_361.00
    wildcard_name_37None
    wildcard_probability_371.00
    wildcard_name_38None
    wildcard_probability_381.00
    wildcard_name_39None
    wildcard_probability_391.00
    wildcard_name_40None
    wildcard_probability_401.00
    wildcard_name_41None
    wildcard_probability_411.00
    wildcard_name_42None
    wildcard_probability_421.00
    wildcard_name_43None
    wildcard_probability_431.00
    wildcard_name_44None
    wildcard_probability_441.00
    wildcard_name_45None
    wildcard_probability_451.00
    wildcard_name_46None
    wildcard_probability_461.00
    wildcard_name_47None
    wildcard_probability_471.00
    wildcard_name_48None
    wildcard_probability_481.00
    wildcard_name_49None
    wildcard_probability_491.00
    text

    makiwildcards_Advanced is makiwildcards plus one genuinely useful addition: every wildcard slot gets a probability value from 0 to 1. Set a slot to 0.5 and that wildcard only contributes its random line about half the time. On the other half, it contributes nothing at all.

    That single knob changes what the node is for. The plain version always uses every selected file, so "occasionally add a necklace" means editing your prompt or juggling whole workflows. With the Advanced node you build a scene with four or five possible accessory/pose/style slots, set the ones you want as "sometimes" to 0.2 or 0.4, and every run is a different composition where extras show up as a pleasant surprise instead of a guaranteed constant. It's the natural evolution of the wildcard idea from "randomize a fixed set" to "sample from a distribution."

    How it works

    Everything else is identical to makiwildcards. The node takes wildcards_count, a wildcard_name_N dropdown per slot, delimiter, clean_whitespace, replace_underscore, the randoms/seed pair, and an optional text prefix. Same two wildcard folders get scanned at startup, same .txt/.yaml support, same seed determinism - the probability is just an extra gate before a line is picked.

    The gate is seeded too: it rolls random.random() with seed + slot_index, and skips the slot when that roll exceeds the probability. Because the roll is deterministic, the same seed reproduces not just which lines get picked but whether each slot fires at all. So you can lock in a seed, find a composition you like, and rerun it exactly. Set probability to 1 and a slot always fires (this is the default, so it behaves like the plain node out of the box); set it to 0 and it never fires - a nice way to park a slot without deleting it.

    Inputs and outputs

    • wildcards_count - how many of the 50 possible slots are active (default 3).
    • wildcard_name_N - the wildcard file for each slot.
    • wildcard_probability_N - 0.0–1.0 chance that slot fires (default 1.0).
    • seed / randoms - deterministic or random line selection, as in the base node.
    • delimiter, clean_whitespace, replace_underscore - joining and cleanup, same as before.
    • text - optional prefix string.

    Outputs: text (the assembled prompt string) and file contents (raw dump of what was loaded, for debugging). Wire text into a CLIP Text Encode like you would any prompt source.

    Installation

    It's part of the ComfyUI-Prompt-Wildcards pack. Manager: search "ComfyUI-Prompt-Wildcards". Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/MakkiShizu/ComfyUI-Prompt-Wildcards.git
    

    Restart ComfyUI. No pip installs, no model downloads.

    Common issues

    • A slot never fires. Check its probability isn't 0 - that's the "parked" state, not a bug.
    • Fires too often / not enough. Remember it's per-run, not per-batch. 0.2 means roughly one in five runs, so a short batch may feel like it never triggers. Reroll the seed and it evens out.
    • "It picked a different composition than last time!" The probability roll is deterministic per seed, but it's rolled per slot and the line pick depends on the seed too. If you want an exact rerun, freeze the seed. If you want variety, that's the whole point.
    • Missing files in the dropdown. Same rule as the base node: files are scanned at startup, so restart ComfyUI after adding .txt/.yaml files to your wildcards folder.

    If you only ever randomize a fixed set of wildcards, the plain makiwildcards is simpler. The moment you want "sometimes this, usually that," this is the one you'll actually reach for.

    Categoryutils/Prompt-Wildcards

    Inputs (105)

    NameTypeDefaultDescription
    wildcards_countINT31–50
    delimiterSTRING,
    clean_whitespaceBOOLEANtrue
    replace_underscoreBOOLEANtrue
    randomsBOOLEANtrue
    seedINT00–18446744073709550000
    wildcard_name_1COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_1FLOAT1.000–1
    wildcard_name_2COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_2FLOAT1.000–1
    wildcard_name_3COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_3FLOAT1.000–1
    wildcard_name_4COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_4FLOAT1.000–1
    wildcard_name_5COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_5FLOAT1.000–1
    wildcard_name_6COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_6FLOAT1.000–1
    wildcard_name_7COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_7FLOAT1.000–1
    wildcard_name_8COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_8FLOAT1.000–1
    wildcard_name_9COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_9FLOAT1.000–1
    wildcard_name_10COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_10FLOAT1.000–1
    wildcard_name_11COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_11FLOAT1.000–1
    wildcard_name_12COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_12FLOAT1.000–1
    wildcard_name_13COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_13FLOAT1.000–1
    wildcard_name_14COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_14FLOAT1.000–1
    wildcard_name_15COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_15FLOAT1.000–1
    wildcard_name_16COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_16FLOAT1.000–1
    wildcard_name_17COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_17FLOAT1.000–1
    wildcard_name_18COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_18FLOAT1.000–1
    wildcard_name_19COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_19FLOAT1.000–1
    wildcard_name_20COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_20FLOAT1.000–1
    wildcard_name_21COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_21FLOAT1.000–1
    wildcard_name_22COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_22FLOAT1.000–1
    wildcard_name_23COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_23FLOAT1.000–1
    wildcard_name_24COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_24FLOAT1.000–1
    wildcard_name_25COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_25FLOAT1.000–1
    wildcard_name_26COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_26FLOAT1.000–1
    wildcard_name_27COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_27FLOAT1.000–1
    wildcard_name_28COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_28FLOAT1.000–1
    wildcard_name_29COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_29FLOAT1.000–1
    wildcard_name_30COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_30FLOAT1.000–1
    wildcard_name_31COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_31FLOAT1.000–1
    wildcard_name_32COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_32FLOAT1.000–1
    wildcard_name_33COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_33FLOAT1.000–1
    wildcard_name_34COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_34FLOAT1.000–1
    wildcard_name_35COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_35FLOAT1.000–1
    wildcard_name_36COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_36FLOAT1.000–1
    wildcard_name_37COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_37FLOAT1.000–1
    wildcard_name_38COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_38FLOAT1.000–1
    wildcard_name_39COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_39FLOAT1.000–1
    wildcard_name_40COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_40FLOAT1.000–1
    wildcard_name_41COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_41FLOAT1.000–1
    wildcard_name_42COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_42FLOAT1.000–1
    wildcard_name_43COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_43FLOAT1.000–1
    wildcard_name_44COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_44FLOAT1.000–1
    wildcard_name_45COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_45FLOAT1.000–1
    wildcard_name_46COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_46FLOAT1.000–1
    wildcard_name_47COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_47FLOAT1.000–1
    wildcard_name_48COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_48FLOAT1.000–1
    wildcard_name_49COMBONone577 options: None, custom_nodes | 人物-装饰-下身, custom_nodes | 人物-类型, custom_nodes | 人物-鞋袜, custom_nodes | 人物-唇膏, custom_nodes | 自然景观-花卉, +571
    wildcard_probability_49FLOAT1.000–1
    textoptSTRING

    Outputs (2)

    NameTypeDescription
    textSTRING
    file contentsSTRING