Nodes/comfyui-standard-trigger-words/Standard Trigger Words v2.4 πŸ“
ComfyUI Node

Standard Trigger Words v2.4 πŸ“

Standard Trigger Words

By revisionhiep-createΒ·Created 9 months agoΒ·Updated 8 months agoΒ· 19
Standard Trigger Words v2.4 πŸ“
    • trigger_words
    β—„preset_categoryInitialβ–Ί
    β—„default_activefalseβ–Ί
    β—„allow_strength_adjustmentfalseβ–Ί
    β—„prefixβ–Ί
    β—„lora_syntaxβ€”β–Ί

    If you live in Illustrious, Pony, or NoobAI, you know the workflow by heart: a wall of comma-separated Danbooru tags - masterpiece, best quality, 1girl, absurdres - that you edit by squinting at raw text. This node turns that wall into a button grid. You click masterpiece on, click rim light off, scroll a weight up, and a single string on the output wire carries all your active tags downstream. It's prompt management as UI, and for tag-based anime models it's surprisingly nice.

    It's also an obscure pack - the kind with four Google impressions and no Reddit footprint. Expect a work-in-progress polish level, not Impact-Pack solidity. The core loop works; the edges will occasionally surprise you.

    How it works

    The clever bit is how the state survives. Your clicks don't go into a normal text input - they're serialized into a hidden modify_tags widget as JSON. Every toggle, every strength slider, every category you expanded gets written there, so closing and reopening the workflow restores exactly the grid you left. When the graph runs, process_tags reads that JSON, keeps only the tags marked active, and builds the output string.

    Three pieces get assembled, in this order: your prefix string, then the lora_syntax string, then the active tags joined by commas. Prefix and LoRA block are space-separated from the tag list. So if you have allow_strength_adjustment on and one tag at 1.2, you get a string like masterpiece, (rim light:1.2), dynamic pose - ready for CLIPTextEncode.

    The pack also keeps a preset library in Python (standard_trigger_presets.py), 120+ tags across 13+ categories like Pos: Quality, Pos: Lighting, Pos: Composition, plus negative groups. That's the "Single Source of Truth" the README brags about - edit that file and the UI rebuilds on load, no JSON fiddling.

    The inputs that matter

    • preset_category - which preset group loads into the grid. All dumps everything; Initial starts you light. This is the one you'll actually touch.
    • default_active - whether newly shown tags start enabled (blue) or gray. Leave it off; you don't want 60 tags firing by accident.
    • allow_strength_adjustment - turns the weight sliders on and emits (tag:1.2) weighted syntax. Off unless you need it.
    • prefix (optional) - a string prepended to the whole output. Handy for a fixed opening like 1girl.
    • lora_syntax (optional, wired) - connect this to the loaded_loras output of Lora Manager's loader and your active LoRAs get emitted as <lora:name:strength> entries in the final string.

    The single output, trigger_words, is a plain STRING. Wire it into a Text Concatenate with your main subject line, or - since the pack's tooltip points there - into Lora Manager's TriggerWord Toggle. Heads up: that toggle node is not in this pack, it's from ComfyUI-Lora-Manager. Without that installed, just use Text Concatenate and skip the detour.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/revisionhiep-create/comfyui-standard-trigger-words.git
    

    Then restart ComfyUI. ComfyUI Manager users can just search "standard trigger words". Good news on the scary side: pyproject.toml declares zero Python dependencies - no pip install, no model downloads, nothing. It's one Python module plus a JS frontend, and that's the whole package.

    Where people get burned

    The preset library is a grab-bag, and it will quietly sabotage you if you don't look. It ships both Illustrious-style quality tags (masterpiece, absurdres, year 2025) and Pony's score_9, score_8_up, score_7_up ladder in the same Quality category. Those score tags only do anything on Pony - on Illustrious they're dead weight, and the quality tags don't carry Pony. Before you run, know which model you're on and prune accordingly. The node won't do it for you.

    Second gotcha: strength output is A1111-style weighted syntax, so verify your text encoder actually honors (tag:1.2) - standard CLIPTextEncode does. And if your final prompt ever shows up containing literal JSON keys like "text": or "active":, that's the internal state leaking; the node has a "nuclear scrubbing" pass that strips it, but it's a symptom worth knowing about.

    It's a niche tool for a niche workflow, but if you batch-generate anime images and are tired of editing tag walls by hand, it earns its keep.

    Categorytrigger_words

    Inputs (5)

    NameTypeDefaultDescription
    preset_categoryCOMBOInitialLoad preset trigger words from a specific category
    default_activeBOOLEANfalseNew trigger words start enabled (blue) or disabled (gray)
    allow_strength_adjustmentBOOLEANfalseEnable (word:1.2) strength syntax for weighted prompts
    prefixoptSTRINGPrefix string to prepend to the trigger words
    lora_syntaxoptSTRINGConnect 'loaded_loras' from Lora Loader for <lora:name:strength> syntax

    Outputs (1)

    NameTypeDescription
    trigger_wordsSTRINGComma-separated active trigger words (connect to Trigger Word Toggle)