Nodes/Orion4D_ModelOnlyLoRA/Trigger + Prompt Concat
ComfyUI Node

Trigger + Prompt Concat

The two-string glue node that knows when to get out of the way

By orion4d·Created 2 months ago·Updated 2 months ago· 5
Trigger + Prompt Concat
    • text
    ui_state_json{"trigger_text": "", "prompt_text": "", "delimiter": ", "}
    trigger_text
    prompt_text

    Trigger + Prompt Concat is the simplest node in this pack and arguably the one you wire first. It takes a trigger string, takes your actual prompt, and joins them with a comma - exactly the mechanical step every LoRA workflow ends up doing by hand the moment you stop memorizing trigger words.

    Here's the workflow it's built for. Your LoRA stack node outputs a ready-made triggers string (auto-extracted from the LoRA files, duplicates removed). You don't want to paste that into every prompt box by hand - it's long, it changes when you swap LoRAs, and forgetting it is how you get weak results and blame the wrong thing. So: wire the stack's triggers output into this node's trigger_text input, put your actual prompt in prompt_text, and the single text output goes straight into a CLIP Text Encode. Trigger words stay glued to the exact LoRAs that need them, forever.

    How it works

    The concatenation logic is exactly as simple as it looks:

    trigger_text + delimiter + prompt_text
    

    with a small mercy: if only one of the two is present, it returns that text unchanged rather than a broken ", prompt" with a leading comma. That fallback matters more than it sounds - a workflow with the stack disabled or zero enabled LoRAs still produces a valid prompt instead of an empty string.

    Two STRING inputs (trigger_text, prompt_text) are optional. When an input is connected it wins, and the corresponding local text field locks. When it's not connected, the local Trigger TXT / Prompt TXT fields are editable instead - so you can use the node as a plain two-field concat with zero wiring. A Delimiter widget (default ", ") controls the join. The local field state is carried in a hidden ui_state_json widget, which is how your typed text survives a save/load.

    The one thing that trips people up

    The locked text field. If you connect trigger_text and then wonder why you can't type into the trigger box anymore - that's by design, not a bug. Connected input has priority; disconnect the wire and the field unlocks. The node's tooltip says it plainly, but it's the only "is this broken?" moment this node will ever give you.

    Install

    It ships in the same pack as Model Only LoRA Stack, so one install gets you both:

    cd ComfyUI/custom_nodes && git clone https://github.com/orion4d/Orion4D_ModelOnlyLoRA
    

    then restart ComfyUI, or search Orion4D_ModelOnlyLoRA in ComfyUI Manager. You'll find it under Orion4D_Utils → Text. No extra dependencies, no model files - it's a ~50-line Python node with a small web widget.

    A fair word of caution: this is a utility, and ComfyUI is drowning in string-concat nodes. Reach for it because it's the natural partner to the stack node and the fallback logic is clean - not because it does anything magical. If you're doing weighted prompts or want triggers embedded mid-prompt, just type them in; this node owns the "triggers up front, comma, then your prompt" pattern and it does that well.

    CategoryOrion4D_Utils/Text

    Inputs (3)

    NameTypeDefaultDescription
    ui_state_jsonSTRING{"trigger_text": "", "prompt_text": "", "delimiter": ", "}
    trigger_textoptSTRING
    prompt_textoptSTRING

    Outputs (1)

    NameTypeDescription
    textSTRING