Nodes/ComfyUI-Simple-Prompt-Batcher/πŸ“ Simple Prompt Batcher
ComfyUI Node

πŸ“ Simple Prompt Batcher

Paste twenty prompts, queue once, get twenty images β€” model stays warm the whole time

By ai-joe-gitΒ·Created 8 months agoΒ·Updated 7 months agoΒ· 52
πŸ“ Simple Prompt Batcher
    • prompt
    β—„prependβ–Ί
    β—„promptsβ–Ί
    β—„appendβ–Ί

    The name is a lie in the best possible way: "Simple Prompt Batcher" sounds like an app that needs an account, and it's actually a paste-a-list-and-go text node. You drop one prompt per line into a multiline box, wire its single output into a CLIPTextEncode, hit Queue once, and ComfyUI grinds through every line. No API, no key, no models to download, zero dependencies. It's the kind of tiny utility that looks like a toy until you're testing eight camera angles or four art styles and realize the alternative is re-queuing and re-waiting for a model load every single time.

    The author (ai-joe-git) built it for exactly that. The repo ships a FLUX.2 Klein workflow that renders one character from eight camera angles - close-up, wide, aerial, 45Β° rotations - in a single queue, and that's the pattern this node exists for. It's also just the right tool for style sweeps ("same car, photoreal vs anime vs watercolor"), season/scene exploration, or systematic A/B tests where you keep the subject fixed and vary one clause.

    How it actually works

    Read the class and there's almost nothing there - that's the point. It splits the prompts text on newlines, trims whitespace, drops blank lines, optionally prepends or appends a shared string, and returns a Python list flagged with OUTPUT_IS_LIST = True. The real machinery is ComfyUI's list expansion: when a downstream node receives a list, ComfyUI runs the rest of the graph once per item inside a single queue execution. The models loaded by your checkpoint/UNet loader stay in VRAM the whole time instead of being dropped and reloaded per prompt.

    One honest caveat on the README's "~50% faster" number. ComfyUI actually keeps models in memory between queued jobs too, so the time savings only materialize if your models were unloading between runs - low VRAM, or swapping checkpoints between each test. The universal win is convenience: one queue click, one workflow, N images out, and the output feeds cleanly into anything that accepts a STRING. Don't install it for the speedup; install it because batching a list is dramatically less fiddly than re-queuing.

    The inputs and output that matter

    • prompts - the batch. One prompt per line, no separator syntax, no {} or bracket logic. Blank lines get filtered automatically.
    • prepend - text glued to the front of every prompt, joined with a comma. Your shared style block or a persistent LoRA trigger word lives here.
    • append - same idea on the tail, for a constant quality suffix.
    • prompt (output) - a STRING list. Goes into CLIPTextEncode positive or negative, or any text input.

    That's the whole schema. There's no seed control, no rate limiter, no wildcard engine - it's a text splitter with a comma joiner, and it doesn't try to be more.

    Installing it

    No dependencies, no model files, no install step beyond the clone:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ai-joe-git/ComfyUI-Simple-Prompt-Batcher.git
    

    Restart ComfyUI and the node appears as πŸ“ Simple Prompt Batcher under utils/text. The README recommends ComfyUI Manager, but take that with salt: on the author's own workflow thread, a commenter reported the node doesn't show up in Manager's search. If Manager can't find it, the manual clone above is the reliable path - it's what the pack's pyproject.toml actually requires (Python β‰₯3.9 and nothing else).

    Where people get burned

    • Manager search comes up empty - real report, don't fight it. Clone manually.
    • One logical prompt wrapped across two lines becomes two prompts. Each line is sacred; a mid-prompt newline splits it. If you need a genuinely multi-line prompt, this isn't the node for that job.
    • prepend and append are comma-joined, so don't end them with a comma - you'll get subject, , style and feed the model a stray empty tag. Minor, but it'll puzzle you for a minute.
    • Empty prompts field just encodes a blank prompt. The node prints a warning and returns [""]; harmless but pointless.

    Pair it with a good seed setup if your batch shares a subject - same prompt plus same seed gives you the same image, which turns "batching" into "duplicating." The README's camera-angle and style-variation examples are the right mental model: keep the subject constant, vary one thing per line.

    Categoryutils/text

    Inputs (3)

    NameTypeDefaultDescription
    prependSTRINGText prepended to every prompt.
    promptsSTRINGEach line is treated as a separate prompt for batch processing.
    appendSTRINGText appended to every prompt.

    Outputs (1)

    NameTypeDescription
    promptSTRINGβ€”