Immature Image Data Loader
Replaying Yesterday's Runs, One at a Time
- seed
- width
- height
- prompt
This is the reader half of the rapidfire data loop, and it's the most unusual node in the pack. CSV Writer logs runs to a JSONL file; Immature Image Data Loader reads that log back and, on every execution, returns the next logged run's seed, width, height, and prompt. Think of it as a tape deck for your generation history: queue a batch, and each queue run plays back one more entry.
That design is what makes it powerful and what makes it confusing. Because it's stateful - it remembers where it is in the list - it doesn't behave like the stateless nodes you're used to. It's built for the "iterate on a batch" workflow where you generate a pile of candidates, then want to re-enter them one by one to review, re-roll, or continue them.
How it works
On each execution it loads the day's data.jsonl (written by CSV Writer) plus the list of .png files in output/rapidfire/<date>/<subfolder>/, matches seeds that exist in both, and sorts them. It then returns the entry at its internal counter position and advances the counter. The index input is effectively ignored except for one rule: a negative index resets the counter to 0, letting you restart the tape from the beginning.
When it runs out of entries, it raises an exception that stops the queue - intentionally. That's the "batch done" signal: the workflow errors out with a clear message rather than silently looping. That's also why this node has a learning curve; a normal ComfyUI node never stops the queue on purpose.
The date input defaults to today; blank means "today," a YYYY-MM-DD string pins a specific day. subfolder (default latent) points at which image subfolder to match against.
What you set
- index - leave 0 for normal playback; set negative to reset the counter.
- date - today by default, or any
YYYY-MM-DD. - subfolder - the image subfolder to pair with the JSONL (default
latent).
Outputs: seed (INT), width (INT), height (INT), and prompt (STRING) - wire these into your sampler, Empty Latent, and text encoder to replay the run.
Install and gotchas
Part of comfyui-rapidfire, no extra dependencies. Install via ComfyUI Manager (search "comfyui-rapidfire") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Zeks/comfyui-rapidfire
then restart ComfyUI.
Where people get burned: the loader only replays seeds that have both an image file and a JSONL entry, so if you logged runs but never saved images into the expected subfolder, nothing comes back. And because the counter is internal state, a workflow that re-runs the loader from scratch expects the negative-index reset to start the batch over - forget that and the second pass resumes where the first left off.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| index | INT | 0 | — |
| date | STRING | — | |
| subfolder | STRING | latent | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| seed | INT | — |
| width | INT | — |
| height | INT | — |
| prompt | STRING | — |