Nodes/Prompt PostProcessor/ACB PPP Run Mode Options
ComfyUI Node

ACB PPP Run Mode Options

The 'Don't Blow Up Your Batch' node for Prompt PostProcessor

By acorderob·Created 3 years ago·Updated 25 days ago· 54
ACB PPP Run Mode Options
    • options
    results_limit100
    results_shufflefalse
    comb_random_fixedtrue
    default_samplerrandom
    next_seedrandomize

    ACBPPPRunModeOptions - displayed as "ACB PPP Run Mode Options" - is the settings-bundle node that keeps Prompt PostProcessor (PPP) from cooking your batch alive. It doesn't touch a single pixel. It packages five settings into one options object and hands them to the main ACBPromptPostProcessor node through its rm_options input, so your run-mode behavior lives in the workflow JSON instead of a config file.

    The reason it exists: PPP has three run modes - single, multiple, and combinatorial. If you only ever process one prompt at a time, you will never touch this node and that's fine; it's optional and there's no penalty for ignoring it. The moment you start generating batches of prompt variations from wildcards and choices - {dress|skirt|shorts}, __background__, the usual suspects - you want multiple or combinatorial, and those are exactly the modes these five knobs control.

    How it works

    Mechanically this node is deliberately boring: it reads its inputs and returns a dict of the custom type PPP_OPTIONS_RM. All the actual work happens in the main PPP node, which unpacks that dict and merges it into its processing state. Leave the rm_options socket unconnected and PPP just uses the defaults from ppp_config.yaml. The node exists because ComfyUI saves workflows as JSON, and nobody wants to edit a yaml file to tune a batch that's supposed to be reproducible.

    Combinatorial mode is where the danger lives. PPP expands every choice and wildcard into every combination - two wildcards with ten entries each is 100 combos, three is a thousand. The pack's own docs warn about it in bold: "Beware of the combinatorial mode with no limits." This node is your ceiling. When the console prints an "Estimated combinations" line during a run, take it seriously - it's a lower bound, not the final count.

    The inputs that matter

    All five are optional with defaults, and the tooltips are accurate:

    • results_limit (default 100): the cap on results in multiple and combinatorial modes. 0 means no limit - the button you only press once you've seen the estimate.
    • results_shuffle (default false): shuffles the order of the returned results.
    • comb_random_fixed (default true): in combinatorial mode, random samplers pick once and that value is reused across every combination, instead of re-rolling per combination. Leave it on unless you want the chaos.
    • default_sampler (random or cyclical): the default choice sampler when the prompt doesn't specify one. Combinatorial mode treats the default as cyclical no matter what you set here.
    • next_seed (randomize | input | increment | decrement): what happens to the seed for each subsequent prompt in multiple/combinatorial mode - new random, stay on the input seed, or step up and down.

    The single output, options, is the PPP_OPTIONS_RM object.

    Installing and wiring

    Install is the whole pack, so it's one step:

    1. ComfyUI Manager → Custom Nodes Manager → search "Prompt PostProcessor" → Install, then restart ComfyUI.

    Or from a terminal:

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

    Dependencies are light - lark, numpy, ruamel.yaml, and pydantic 2.x from the pack's requirements.txt. No model downloads, no API keys. Wire the options output into the main PPP node's rm_options socket; that's the only input that accepts this custom type, so if you get a type-mismatch error you've plugged it into the wrong options socket.

    Gotchas

    • Combination explosion is the real failure mode. Start with results_limit at 1, read the estimated-combinations log line, then raise it. Even a "small" wildcard set can outrun the number of images ComfyUI will actually produce.
    • This is a cross-host pack - it ships for A1111, Forge, and SD.Next too - so if you migrated from one of those, the semantics are the same, and the pack predates your ComfyUI habit by a while. It's a mature, MIT-licensed utility that's been quietly getting use since 2024.

    If you're only ever doing single-prompt runs, you can skip this node entirely and never miss it. But once you're batch-sampling prompt variations, it's the difference between a curated dozen and a 30,000-image disk killer.

    CategoryACB

    Inputs (5)

    NameTypeDefaultDescription
    results_limitoptINT100Limit for combinatorial/multiple mode
    results_shuffleoptBOOLEANfalseShuffle the results
    comb_random_fixedoptBOOLEANtrueFix the value of any specified random samplers across all combinations in combinatorial mode
    default_sampleroptCOMBOrandomDefault choice sampler
    next_seedoptCOMBOrandomizeNext seed strategy

    Outputs (1)

    NameTypeDescription
    optionsPPP_OPTIONS_RM