π Bawk Batch Processor
Run your whole prompt batch without babysitting ComfyUI
- prompt
- seed
- steps
- guidance
- resolution
- batch_info
If you've ever sat there clicking "Queue" fifty times because you're A/B testing five prompts across ten seeds, this is the node that rescues you. Bawk Batch Processor is the automation end of the Bawk Nodes pack: it reads one row from a CSV or JSON file and hands that row's settings to the rest of your workflow. You bump batch_index, hit Queue, and the same node chain produces the next variation. It won't auto-queue itself - this isn't a scheduler - but it turns "one workflow per prompt" into "one workflow, many rows."
How it works
The node reads your file with Python's csv/json modules and auto-detects the format from the extension, or you can force it with file_format. batch_index (0-based) picks the row. Each row can carry prompt, seed, steps, guidance, and resolution; anything missing falls back to default_resolution, default_steps, and default_guidance. The batch_info output tells you exactly where you are ("Processing item 3/20 from prompts.csv"), which you'll appreciate when you come back after a coffee and can't remember.
preview_only is the trick that saves you a wasted run: flip it on and the node shows the file contents instead of generating. Check your file before you commit to a 20-minute batch.
The inputs that matter
The CSV columns are what you actually set up, per the README:
prompt,seed,steps,guidance,resolution
"beautiful sunset",12345,30,3.5,"Instagram Square - 1024x1024 - 1.0MP"
"city at night",67890,25,4.0,"FHD 16:9 - 1920x1080 - 2.1MP"
batch_file- the absolute path on the machine running ComfyUI.batch_index- which row to process. Start at 0.preview_only- verify before you commit.
Wiring it in
The pack's batch chain is Bawk Batch Processor β Bawk Wildcard Encoder β Bawk Sampler β Bawk Image Saver. prompt feeds the encoder's prompt field, and seed/steps/guidance/resolution feed the sampler's matching sockets. Since the encoder understands {wildcard|syntax} prompt syntax, you can get combinatorial variation for free on top of your CSV rows.
Install & gotchas
Install comes with the pack - ComfyUI Manager β search "Bawk Nodes" β Install β restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/juddisjudd/ComfyUI-BawkNodes.git
Restart ComfyUI afterward. The pack's requirements.txt is just torch, torchvision, safetensors, numpy and requests - everything stock ComfyUI already pulls in, so there's no extra dependency dance for this node.
Where people get burned:
- The path is server-side. If ComfyUI runs on another machine, a
C:\...path from your laptop won't resolve. The file must exist on the box running ComfyUI. - Column names must match exactly.
Resolutioninstead ofresolutionsilently falls back to the default rather than erroring. batch_indexpast the last row returns an error string in every output - you'll see it instantly, so don't panic, just reset the index.
That's the whole trick: it's a dumb, reliable settings-forwarder, and that's exactly what batch automation needs.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| batch_file | STRING | Path to a CSV or JSON file. Columns / keys: prompt, seed, steps, guidance, resolution | |
| file_format | COMBO | Auto-detect | 3 options: Auto-detect, CSV, JSON |
| batch_index | INT | 00β999999 | Row to use (0-based). Set control to 'increment' to walk through the file |
| preview_only | BOOLEAN | false | Return a text preview of the file instead of a row |
| default_resolutionopt | STRING | 1024x1024 | β |
| default_stepsopt | INT | 201β100 | β |
| default_guidanceopt | FLOAT | 3.50β20 | β |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | β |
| seed | INT | β |
| steps | INT | β |
| guidance | FLOAT | β |
| resolution | STRING | β |
| batch_info | STRING | β |