π Bulk Prompt Reset Counter
The one-dropdown node that puts your batch counter back to zero
- status
This is the smallest node in the sifatrads/comfyui-bulk-prompt pack, and it does exactly one thing: resets the row counter back to 0. One dropdown in, one status string out. You'll probably use it a lot less than you think, and that's fine - it's a five-second fix for a specific annoyance.
Why it exists
The Bulk Prompt Loader remembers where it is. Its current row lives in manual_index, and that value is persisted to a state.json inside the node folder so a batch survives restarts and interruptions. That persistence is great until it isn't - because a half-run batch leaves the counter parked mid-list, and the next time you load the workflow and hit Queue, it picks up where it stopped instead of starting over. The Reset Counter exists so you don't have to hunt for the manual_index widget and scrub it back to 0 by hand.
The mechanism is a state wipe, nothing clever. When reset_all is set to yes, the node's reset() method writes an empty dict over state.json - clearing every counter the loader tracks (it keys state separately per source: file:, url:, and paste: entries, so one reset handles all of them). Set it to no and it returns a "No action." status and touches nothing. It also returns float("nan") from IS_CHANGED like the rest of the pack, so it fires on every execution rather than being swallowed by ComfyUI's cache.
When you actually reach for it
- Mid-batch restart. You were 40 rows into a 200-row CSV, changed your mind about the workflow, and want to start clean from row 0 without editing a widget.
- Shared workflows. If you're sending a workflow with this pack to someone else, a
state.jsoncarrying your row position will confuse them. Resetting before you share is polite. - Debugging loops. It's a convenient in-graph "restart the whole thing" button when
loop_foreveris on and you've lost track of which iteration you're looking at.
But note the overlap: the loader itself has reset_on_start (default yes), which already makes every fresh Queue press begin at row 0. So if you always start batches the manual way, this node rarely earns its place in the graph. Where it's genuinely useful is the continue case - reset_on_start = no plus this node gives you explicit control over when a run restarts versus resumes. The pack README also mentions a reset_counter setting on the loader; that input doesn't exist in the current node, so the dedicated Reset Counter is the real way to do it.
Using it
There's nothing to install beyond the pack itself (this node is pure standard library, no dependencies). Add it anywhere in the graph - it doesn't need to connect to anything, since it just needs to execute once - set reset_all to yes, and hit Queue once. The status output returns a confirmation string like "All row counters reset to 0.", which you can leave dangling or feed into a text display if you want to see it on the canvas.
The honest take
This is a utility node, not a feature. If you're doing one-off batches, reset_on_start = yes on the loader makes it redundant. If you batch continuously and occasionally need to blow the counter away, it's the right tool and it costs you nothing. It's also a useful read on the pack's design philosophy: the whole thing is built around the counter being the single source of truth, and this node exists purely to give you a reset button for it. Keep it in your back pocket.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| reset_all | COMBO | 2 options: yes, no |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| status | STRING | β |