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—