π Simple Prompt Batcher
Paste twenty prompts, queue once, get twenty images β model stays warm the whole time
- prompt
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, , styleand feed the model a stray empty tag. Minor, but it'll puzzle you for a minute. - Empty
promptsfield 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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| prepend | STRING | Text prepended to every prompt. | |
| prompts | STRING | Each line is treated as a separate prompt for batch processing. | |
| append | STRING | Text appended to every prompt. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | β |