Nodes/Prompt PostProcessor/ACB PPP Send-To-Negative Options
ComfyUI Node

ACB PPP Send-To-Negative Options

The original reason this pack exists — negative-prompt plumbing

By acorderob·Created 3 years ago·Updated 17 days ago· 54
ACB PPP Send-To-Negative Options
    • options
    separator,
    ignore_repeatstrue

    Before Prompt PostProcessor was a whole prompt toolkit, it was sd-webui-sendtonegative - a tiny extension that moved bits of your positive prompt into the negative prompt. The ACB PPP Send-To-Negative Options node is the settings knob for that feature, and it's the part of the pack a lot of wildcard users came for in the first place.

    What it does

    Here's the use case that sells it: you have a hair-color wildcard, and one option is "strawberry blonde." You don't want strawberries in every image, but only when that option wins. In the wildcard file:

    blonde
    strawberry blonde <ppp:stn>strawberry<ppp:/stn>
    brunette
    

    When the strawberry-blonde branch is chosen, PPP pulls strawberry out of the positive and appends it to the negative prompt - so the bad part never conditions the positive, and the correction is only active when the option is active. It's conditional negative prompting, computed from your own choices rather than a fixed block of negatives. Attention weights even carry over: (red apple<ppp:stn>round shape<ppp:/stn>:1.4) becomes (round shape:1.4) in the negative. You can also target positions with <ppp:stn s>, <ppp:stn e>, or numbered insertion points.

    This node just tunes that behavior. It has exactly two inputs:

    • separator - the glue used when content is added to the negative prompt. Default ", ". Harmless to leave.
    • ignore_repeats - default on. Skips content already present in the negative so the same term doesn't stack up across multiple stn commands.

    Wire its options output into the stn_options input on ACB Prompt Post Processor. If you never change the defaults, you don't need this node at all - the main node's built-in behavior is fine.

    Install

    Same pack as the main node. ComfyUI Manager → search "Prompt PostProcessor", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/acorderob/sd-webui-prompt-postprocessor
    

    Restart. No model files, no heavy deps (lark, numpy, ruamel.yaml, pydantic). Cross-platform, MIT-licensed, maintained by acorderob since 2023.

    Where people get burned

    The honest caveat from the wider prompt discourse: the negative prompt only matters when CFG actually uses it. On distilled models at CFG 1, ComfyUI's sampler skips the unconditional pass entirely and your beautifully routed negatives do nothing. On SDXL-lineage (Pony, Illustrious, and friends), negative prompting is alive and well - which is where this pack's audience mostly lives.

    Also worth knowing: the pack deliberately does not build AND/BREAK constructs when relocating content - it just appends to the negative with your separator. And if you're reading old tutorials, the pre-2023 format <!...!> is gone; it's <ppp:stn> now. Finally, if you wire ignore_repeats off and use many wildcards that all dump the same phrase, expect a negative prompt that looks like a broken record - that's the setting doing what you asked it to.

    CategoryACB

    Inputs (2)

    NameTypeDefaultDescription
    separatoroptSTRING, Separator for the content added to the negative prompt
    ignore_repeatsoptBOOLEANtrueIgnore repeated content added to the negative prompt

    Outputs (1)

    NameTypeDescription
    optionsPPP_OPTIONS_STN