Nodes/ComfyUI-PromptTagBuilder/Negative Tag Builder
ComfyUI Node

Negative Tag Builder

Tidy negatives in dropdowns, caveat included

By Cordux·Created 7 months ago·Updated 7 months ago· 1
Negative Tag Builder
    • Negative Prompt
    Qualitynone
    Anatomynone
    Textnone
    Artifactsnone
    Compositionnone
    Custom
    separator,
    newlinesfalse

    Negative Tag Builder (class UniversalNegativeTagBuilder) is the sibling node in the ComfyUI-PromptTagBuilder pack. Where Tag Prompt Builder assembles your positive prompt from dropdowns, this one does the same for the negative: pickers for the categories of badness people always list - Quality, Anatomy, Text, Artifacts, Composition - plus a free-text Custom field, all joined into one string for your CLIP Text Encode negative input.

    The honest first take: the dropdowns on this thing ship with the classic forty-keyword negative prompt, and the community has spent years arguing that most of that list is cargo. So treat the node as a convenient assembler, not as a good prompt. The light options are usually the right ones.

    When it actually does something

    A negative prompt steers the sampler only while real classifier-free guidance is running - CFG above 1. On the SDXL-lineage models this pack targets (Pony, Illustrious, NoobAI at CFG 4–9), that's true and a tidy negative is genuinely useful. On guidance-distilled models that run at CFG 1 - Flux, Turbo and Lightning checkpoints, most of the fast 2026 releases - the negative pass isn't even computed, so this node will cheerfully assemble a string that does nothing at all. It's a plain text node; it doesn't know or care what your sampler is doing. That part is on you, and it's the single most common reason people think negatives are broken.

    How it works

    Same mechanism as its positive sibling, and it reads the same prompt_tags.json. Each dropdown pulls from its own config key - Quality from negative_quality, Anatomy from negative_anatomy, Text from text_issues, Artifacts from negative_artifacts, Composition from negative_composition - anything set to none is skipped, and your Custom text is appended last. Output is a single STRING named Negative Prompt, straight into the CLIP Text Encode negative input.

    The inputs that matter

    • Quality - the "lowres, bad quality, worst quality" family. On the Illustrious family the standing advice is that worst quality, low quality alone is usually enough; there's a light option for exactly that.
    • Anatomy - bad hands, missing fingers, and friends. Pick the one that matches what you actually see in your output rather than stacking all of them.
    • Custom - the place for specific, visible defects in your current image: an extra limb, a watermark, a blown-out sky. That targeted style is the negative prompting the community actually endorses, and this field is where the node earns its keep.
    • separator and newlines - same as the positive node. Newlines are handy when you're debugging what you're actually feeding the encoder.

    Installing it

    Identical to the positive node, since they ship in one pack. In ComfyUI Manager, search ComfyUI-PromptTagBuilder, install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Cordux/ComfyUI-PromptTagBuilder
    

    then restart ComfyUI. There's no pip step - the pack's requirements.txt is empty and the node uses only Python's stdlib.

    Common issues

    • Edited prompt_tags.json and nothing changed: the file is loaded at startup. Full restart, every time.
    • Dropdowns empty: the JSON failed to parse; the node falls back to built-in defaults and logs Config load failed... Falling back to defaults. Validate the file and restart.
    • Negatives appear to do nothing: check your CFG before blaming the node. If you're at CFG 1, no negative node in the world will help.

    One more thing to resist: the longest Anatomy option is the full bad anatomy, bad hands, extra fingers, mutated hands, poorly drawn hands boilerplate, and on sensitive checkpoints overlong negatives can actively conflict with your positive prompt. This is a small, quiet pack with no real community signal, but it's also hard to break - it only joins strings. Use the light options, put your real defects in Custom, and it's a handy little tool.

    Categoryutils/prompt

    Inputs (8)

    NameTypeDefaultDescription
    QualityCOMBOnone4 options: none, lowres, bad quality, lowres, bad quality, worst quality, lowres, worst quality, bad quality, jpeg artifacts
    AnatomyCOMBOnone4 options: none, bad anatomy, bad hands, bad anatomy, bad hands, missing fingers, bad anatomy, bad hands, extra fingers, mutated hands, poorly drawn hands
    TextCOMBOnone3 options: none, signature, watermark, text, signature, watermark, text, username, artist name
    ArtifactsCOMBOnone2 options: none, blurry, deformed, ugly
    CompositionCOMBOnone2 options: none, cropped, out of frame, bad composition
    CustomSTRING
    separatoroptSTRING,
    newlinesoptBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    Negative PromptSTRING