Nodes/ComfyUI Text-Driven Workflows/Multi Prompts (Text-Driven)
ComfyUI Node

Multi Prompts (Text-Driven)

Ten prompt slots in one node, each with its own weight and on/off switch

By kanryu·Created 4 months ago·Updated 3 months ago· 0
Multi Prompts (Text-Driven)
    • string_out
    num_prompts3
    text_1
    multiplier_11.0
    active_1true
    text_2
    multiplier_21.0
    active_2true
    text_3
    multiplier_31.0
    active_3true
    text_4
    multiplier_41.0
    active_4true
    text_5
    multiplier_51.0
    active_5true
    text_6
    multiplier_61.0
    active_6true
    text_7
    multiplier_71.0
    active_7true
    text_8
    multiplier_81.0
    active_8true
    text_9
    multiplier_91.0
    active_9true
    text_10
    multiplier_101.0
    active_10true
    optional_text_in

    Multi Prompts (Text-Driven) is the "manage a pile of prompt fragments in one place" node of this pack. Instead of scattering five text boxes across your graph and muting them by physically deleting text, you get up to ten slots in a single node, each with its own text, its own attention multiplier, and its own little checkbox that decides whether it goes into the output. Toggle a character off, crank a style up, hit queue. That's the workflow it's selling.

    How it works

    The first input, num_prompts, is a combo box from 1 to 10 (default 3) and it actually reshapes the node: a bit of JavaScript hides every slot beyond the number you picked, so the node shrinks and grows instead of always showing ten rows. For each visible slot there's a text_N multiline box, a multiplier_N float (0.0–10.0, default 1.0), and an active_N boolean toggle.

    There's also optional_text_in - a string pin for merging an upstream fragment, which gets prepended to the output if it's non-empty.

    The output is a single string_out. The backend walks the slots in order, skips anything with active off, drops empty text, and joins the rest with a comma - no spaces. Anything with a multiplier other than 1.0 gets wrapped in standard CLIP attention syntax, so a slot at 1.5 becomes (text:1.5) with trailing zeros stripped (1.10 renders as 1.1, which is a small touch you'll appreciate if you've ever eyeballed a prompt string full of 1.00s).

    The honest caveat

    This node is built around CLIP-era prompt engineering, and that only works on CLIP-encoded models - SD 1.5, SDXL, Illustrious, NoobAI, Pony, WAI. On those, (word:1.3) is real and the comma-no-space output is fine. On Flux and especially on the LLM-encoded models (Z-Image, Klein, Anima, Krea 2), attention weights are silently discarded and there's no token chunk boundary to care about - so the weight slider does nothing and you'd be better off writing an instruction. Know which family your checkpoint belongs to before you build your whole graph around this.

    Also note the output strips spaces after commas - a, b becomes a,b. That's harmless for tag-style prompting and costs a few tokens on anything sentence-based. If you want your fragments joined with ", " instead, use Join Strings (Text-Driven) with that delimiter; these nodes are designed to chain.

    Install

    Part of ComfyUI Text-Driven Workflows - install via ComfyUI Manager (search "ComfyUI Text-Driven Workflows") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/kanryu/ComfyUI-Text-Driven-Workflows.git
    

    Restart, and you're done: no pip deps, no model files, empty dependency list. The one thing to watch is the pack's reliance on the new ComfyUI V3 extension API - if your ComfyUI is old enough that comfy_api.latest doesn't exist, the pack logs "Failed to load nodes" and you'll find nothing under Text-Driven Workflows. Update ComfyUI and it resolves.

    Bottom line

    It's a multi-slot prompt switch you can toggle with checkboxes, and it's genuinely pleasant to use for A/B-ing a style or character set. It overlaps with a lot of other prompt-switcher packs in the ecosystem, but it's dependency-free, it shows you everything at once, and for a CLIP model it does exactly what it says. Reach for it when "I want three variants of this scene on tap" is the problem.

    CategoryText-Driven Workflows

    Inputs (32)

    NameTypeDefaultDescription
    num_promptsCOMBO310 options: 1, 2, 3, 4, 5, 6, +4
    text_1STRING
    multiplier_1FLOAT1.00–10
    active_1BOOLEANtrue
    text_2STRING
    multiplier_2FLOAT1.00–10
    active_2BOOLEANtrue
    text_3STRING
    multiplier_3FLOAT1.00–10
    active_3BOOLEANtrue
    text_4STRING
    multiplier_4FLOAT1.00–10
    active_4BOOLEANtrue
    text_5STRING
    multiplier_5FLOAT1.00–10
    active_5BOOLEANtrue
    text_6STRING
    multiplier_6FLOAT1.00–10
    active_6BOOLEANtrue
    text_7STRING
    multiplier_7FLOAT1.00–10
    active_7BOOLEANtrue
    text_8STRING
    multiplier_8FLOAT1.00–10
    active_8BOOLEANtrue
    text_9STRING
    multiplier_9FLOAT1.00–10
    active_9BOOLEANtrue
    text_10STRING
    multiplier_10FLOAT1.00–10
    active_10BOOLEANtrue
    optional_text_inoptSTRING

    Outputs (1)

    NameTypeDescription
    string_outSTRING