Nodes/ComfyUI-RedNodeStudio/RedNode Prompt Box
ComfyUI Node

RedNode Prompt Box

The prompt box that highlights tokens and rolls its own wildcards

By RedNodeAI·Created 26 days ago·Updated 15 days ago· 0
RedNode Prompt Box
    • prompt
    text
    seed0
    resolve_wildcardstrue
    font_size16
    text_colordefault

    Most prompt nodes are just a text box with a wire on it. RedNode Prompt Box is the one that treats your prompt like something you'll actually keep editing: live highlighting, an adjustable font and colour so it's readable on a dark graph, @keyword macros that expand to saved prompts, and a built-in seeded __wildcard__ / {a|b} engine. It outputs the finished prompt string, ready for whatever encodes it - the Studio Workspace, a CLIP text encode, anything that takes a STRING.

    The interesting design call is that it's self-contained. Wildcards are usually their own node - an external wildcard processor sits in the graph and mangles your text for you. Here the engine lives inside the box, seeded and all, so the thing you're reading on the canvas is the thing that renders. No hidden node doing a second pass on your words.

    How it works

    The box expands in two stages. @keyword macros are swapped for their saved text first (from the shared RedNode Prompt Keywords library - same library, every prompt box, no wiring). Then __wildcards__ and {a|b} alternates are resolved to random picks, using the box's seed. Same seed, same picks; that's the reproducibility you want when you finally land on a composition you like.

    The resolve_wildcards toggle is the escape hatch. Leave it on and the box handles everything itself. Flip it off and __wildcards__ and {a|b} pass through untouched, so an external wildcard node can take over - useful if you've already built your prompt pipeline around one and don't want two engines fighting over the same text.

    The inputs that matter

    • text - your prompt. This is where the @keywords, __wildcards__ and {a|b} live.
    • seed - seeds the wildcard picks. The tooltip says it best: set the control to randomize and this becomes your generate button, re-rolling every run.
    • resolve_wildcards - ON means this box resolves wildcards itself; OFF lets them pass through to an external node.
    • font_size and text_color - cosmetic, per-box, so a long prompt stays legible without restyling your whole graph.

    The single output, prompt, is the finished STRING. Wire it into a CLIP text encode, the Workspace's prompt input, a prompt combine - anything that eats a string.

    Installing it

    The Prompt Box ships with RedNode Studio, so:

    git clone https://github.com/RedNodeAI/ComfyUI-RedNodeStudio.git ComfyUI/custom_nodes/ComfyUI-RedNodeStudio
    

    Restart ComfyUI, or search RedNode Studio in ComfyUI Manager. No pip dependencies, no models to download. Python 3.10 or newer.

    The classic beginner trap

    The wildcard seed is the same kind of trap ComfyUI's own seed control is: by default the number sits fixed, and people wonder why their "random" prompt keeps producing the same image. Same seed, same picks - that's not a bug, it's the feature. If you want variety, set the seed's control to randomize. And if you see literal __wildcards__ text hitting your sampler, the box's resolve_wildcards got flipped off somewhere - check the toggle before you start blaming the encoder. The one genuinely nice thing about this node is that both of those are visible right on the box, highlighted, so they're harder to miss than in a workflow where the wildcard engine is three nodes away.

    CategoryRedNode/Prompt

    Inputs (5)

    NameTypeDefaultDescription
    textSTRINGYour prompt. @keywords expand to saved prompts; __wildcards__ and {a|b} resolve to random picks (seeded) unless resolve_wildcards is off.
    seedINT00–18446744073709550000Seed for wildcard picks. Same seed = same result; set the control to 'randomize' to re-roll every run (that's your generate button).
    resolve_wildcardsBOOLEANtrueON: this box resolves __wildcards__ / {a|b} itself. OFF: they pass through untouched so an external wildcard node can handle them.
    font_sizeINT168–48Font size for this box only.
    text_colorCOMBOdefaultBase text color for this box (highlighted tokens keep their own colors).

    Outputs (1)

    NameTypeDescription
    promptSTRING