ComfyUI Node

Prompt Combiner

Seven named prompt slots, joined into one string

By HavocsCall·Created 2 years ago·Updated 9 months ago· 4
Prompt Combiner
    • Combined Prompt
    • Style
    • Face
    • Subject
    • Clothing
    • Action
    • Environment
    • Extra
    Style
    Face
    Subject
    Clothing
    Action
    Environment
    Extra

    Prompt Combiner is the pack's structured prompt assembler: seven named slots - Style, Face, Subject, Clothing, Action, Environment, Extra - that get joined into a single prompt string with commas. Think of it as a fill-in-the-blank template for prompt writing, where each slot is its own node.

    Why you'd reach for it

    Prompts are the part of ComfyUI most people edit the most, and a monolithic prompt widget punishes modularity: change one part and you're re-editing a wall of text. Prompt Combiner breaks it into semantic chunks. You keep your Subject in one Text Box, your Environment in another, and swap them independently. Because each slot is a real input socket, you can also wire dynamic text in - a wildcard, a String Switch output, a number converted to string - so the composition can change per run while the structure stays fixed.

    It's also just nice for keeping your prompts organized. "Style: cinematic, Subject: a red fox, Action: leaping" reads better as separate fields than as one comma soup, especially when you revisit a workflow a month later.

    How it works

    The join is simple and deliberate: it skips empty slots and joins what remains with ", ":

    parts = [p for p in [Style, Face, Subject, Clothing, Action, Environment, Extra] if p]
    combined = ", ".join(parts)
    

    Inputs (all optional, all multiline strings, all wireable or typeable):

    • Style, Face, Subject, Clothing, Action, Environment, Extra - leave any empty and it's simply skipped, no dangling commas.

    Outputs - this is the pleasant surprise:

    • Combined Prompt - the joined result, ready for CLIPTextEncode.
    • Style, Face, Subject, Clothing, Action, Environment, Extra - every individual slot is echoed out as its own output too.

    So the node is simultaneously an assembler and a splitter: you can use the combined output, or grab individual pieces to feed elsewhere (a String Switch needs a source, for example).

    Where people get burned

    The comma-join is fixed - ", " with no option to change it. If you want a different separator you're looking at Combine String instead, which lets you set one. Also note the order is hard-coded: Style comes first, Extra last. You can't reorder without re-typing into different slots.

    Worth remembering too that empty-slot skipping means the output can be an empty string if every slot is empty - which a CLIPTextEncode won't love. Keep at least one slot filled. And as with all string work in this pack: this node builds text, it doesn't encode it, so run the result through CLIPTextEncode before the sampler.

    Installing it

    ComfyUI Manager → search "HavocsCall" → install → restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/HavocsCall/comfyui_HavocsCall_Custom_Nodes
    

    Restart, under HavocsCall/Basic. No requirements.txt, no model downloads - instant.

    CategoryHavocsCall/Basic

    Inputs (7)

    NameTypeDefaultDescription
    StyleoptSTRING
    FaceoptSTRING
    SubjectoptSTRING
    ClothingoptSTRING
    ActionoptSTRING
    EnvironmentoptSTRING
    ExtraoptSTRING

    Outputs (8)

    NameTypeDescription
    Combined PromptSTRING
    StyleSTRING
    FaceSTRING
    SubjectSTRING
    ClothingSTRING
    ActionSTRING
    EnvironmentSTRING
    ExtraSTRING