Nodes/Prompt PostProcessor/ACB PPP Wildcard Concat
ComfyUI Node

ACB PPP Wildcard Concat

Pick wildcards from dropdowns and chain them into a prompt

By acorderob·Created 3 years ago·Updated 17 days ago· 54
ACB PPP Wildcard Concat
    • prompt
    filterbuild
    separator,
    wildcard_1
    wildcard_2
    wildcard_3
    wildcard_4
    wildcard_5
    wildcard_6
    wildcard_7
    wildcard_8
    wildcard_9
    wildcard_10
    previous_prompt

    Most wildcard users type __hair__ into a text box and hope. ACB PPP Wildcard Concat is the GUI way: ten dropdowns, each listing your actual wildcards by name, and it builds the __name__ references for you, joined by a separator you choose. The output is a plain string you feed into ACB Prompt Post Processor (or any text input), and the main node does the actual rolling later. If you want a fast way to assemble a prompt from your wildcard library without typing double-underscores from memory, this is it.

    How it works

    The node reads your wildcard folders at load time and populates each dropdown - wildcard_1 through wildcard_10. Select one per slot, and the node emits their references concatenated:

    __subject__, __clothing__, __setting__
    

    A few details make it more than a fancy combobox:

    • filter - a prefix that filters which wildcards appear in the dropdowns (default build, so it only shows names starting with "build" until you change it). Editing this refreshes the lists - the whole point is to keep a big library navigable. Set it to empty to see everything.
    • separator - glue between references, default ", ".
    • previous_prompt - an optional string that gets prepended. It exists so you can chain two Concat nodes together (first node's prompt → second node's previous_prompt) and exceed the ten-slot limit, or bolt on a fixed prefix.
    • prompt (output) - the concatenated __wildcard__ text.

    Because it emits unresolved __name__ references, the actual choice happens downstream - in combinatorial or multiple mode on the main node, each selected wildcard rolls per generation, which makes this node pair well with batch variation.

    The folder gotcha

    There's one thing the dropdowns depend on that isn't on this node: your wildcard folders. The node reads whatever wildcard paths the pack has configured, and unlike the ACB PPP Wildcard Options node it has no folders input of its own. So to point it at your library, add an entry to your extra_model_paths.yaml:

    ppp_wildcards:
      wildcards: /absolute/path/to/your/wildcards
    

    (Under ComfyUI's root, extra_model_paths.yaml is the standard file for custom model/library paths.) No path configured, empty dropdowns - that's the single most common "why is this blank" report.

    Install

    Same pack as the rest. ComfyUI Manager → search "Prompt PostProcessor", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/acorderob/sd-webui-prompt-postprocessor
    

    Restart ComfyUI. Requirements are lark, numpy, ruamel.yaml, pydantic; no model downloads. It also registers a small web route (/acb_ppp/wildcards) to refresh the dropdown lists as you change the filter.

    Common issues

    Beyond the folder issue: dropdowns go stale if you add wildcard files while ComfyUI is running - re-select a slot or reload the workflow to force a refresh. And remember the filter default. People change the separator to " " and then wonder why their tag-style prompt lost its commas; the separator lands literally between the __ references, so it becomes part of the prompt text. If your wildcards are inside { } choices or nested constructs, the main node's grammar handles those fine - this node only handles the top-level assembly. Keep the main node in the graph; without it, __name__ text just sits there unrolled.

    CategoryACB

    Inputs (13)

    NameTypeDefaultDescription
    filterSTRINGbuildFilter wildcards by prefix (changing this refreshes the dropdowns)
    separatorSTRING, Separator used to concatenate the selected wildcard references
    wildcard_1COMBOWildcard 1
    wildcard_2COMBOWildcard 2
    wildcard_3COMBOWildcard 3
    wildcard_4COMBOWildcard 4
    wildcard_5COMBOWildcard 5
    wildcard_6COMBOWildcard 6
    wildcard_7COMBOWildcard 7
    wildcard_8COMBOWildcard 8
    wildcard_9COMBOWildcard 9
    wildcard_10COMBOWildcard 10
    previous_promptoptSTRINGConnect to the prompt output of another Wildcard Concat node to chain more than 10 wildcards

    Outputs (1)

    NameTypeDescription
    promptSTRING