Nodes/Arctenoxs-Essentials_ComfyUI/Wildcard Stack (Arctenox's Essentials)
ComfyUI Node

Wildcard Stack (Arctenox's Essentials)

Four prompt segments, one resolved prompt, zero trailing commas

By Arctenox·Created 8 months ago·Updated 2 months ago· 1
Wildcard Stack (Arctenox's Essentials)
    • resolved_prompt
    • seed_used
    prompt_1
    seed-1
    separator,
    prompt_2
    prompt_3
    prompt_4

    The Wildcard Stack is the pack's answer to "I want to build a prompt from pieces." It takes up to four prompt segments, resolves wildcards in each one, and joins the non-empty results with a separator you choose. If the Wildcard Processor is the workhorse, this is the assembly line: it does the resolving and the joining in one node, which saves you a concatenate node and a couple of wires.

    Inputs:

    • prompt_1 (required) - the first segment, typically your base prompt or character.
    • prompt_2, prompt_3, prompt_4 (optional) - more segments; empty ones are silently skipped.
    • seed (-1 = random, fixed = reproducible) - shared across all segments, so one seed controls every pick in the stack.
    • separator (default ", ") - what goes between segments.

    Outputs are resolved_prompt (the joined string) and seed_used.

    The empty-segment behavior is the quiet quality-of-life win. Wire up four segments, leave two disconnected, and the output is just the two non-empty ones joined cleanly - no ", , ," artifacts, no trailing separator. If you've ever hand-rolled this with a String Concatenate node and fought with optional inputs, you'll feel the difference.

    The natural pattern here is layered variety:

    prompt_1: 1girl, __outfit__, __pose__,
    prompt_2: (from Wildcard Picker: a character)
    prompt_3: lighting and background descriptors
    prompt_4: negative-ish constraints you keep in the positive for whatever reason
    

    Each segment can mix __file__ tokens and {a|b|c} groups freely, so you can split your prompt into "who / what they wear / where they are / how it's shot" and vary each axis independently while keeping a shared seed. That's the same bracketed-variation idea the community uses to batch a character across moods and settings - it just lives in the graph instead of in a text box.

    Two things to keep in mind. First, because all segments share one seed, changing the seed reshuffles everything at once. If you want to lock the character but randomize the outfit, use a fixed seed on the segment's wildcard file instead (or resolve the character with a separate Wildcard Picker at a fixed seed and feed it in as a string). Second, this node resolves and joins - it doesn't clean. If prompt_1 says blue eyes and prompt_2's wildcard file also picks blue eyes, you'll get a duplicate until you run the output through the pack's Tag Normalizer. Not a bug, just a division of labor.

    Install. Ships in Arctenox's Essentials - ComfyUI Manager → search "Arctenox's Essentials", or:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/Arctenox/Arctenoxs-Essentials_ComfyUI
    

    Restart ComfyUI. Wildcard files go in ComfyUI/custom_nodes/Arctenoxs-Essentials_ComfyUI/wildcards/ or ComfyUI/wildcards/. Dependencies are minimal (torch, numpy, optional psutil). The pack's README flags it deprecated while the author remasters it - the wildcard files and syntax are standard, so your setup carries over to whatever replaces it.

    CategoryArctenox Essentials/Wildcards

    Inputs (6)

    NameTypeDefaultDescription
    prompt_1STRINGFirst prompt segment
    seedINT-1-1–2147483647
    separatorSTRING, Separator between segments
    prompt_2optSTRING
    prompt_3optSTRING
    prompt_4optSTRING

    Outputs (2)

    NameTypeDescription
    resolved_promptSTRING
    seed_usedINT