Sequential Image Loader π
Sequential Image Loader π β walk through your shots one queue at a time
- image1
- image2
- image3
- image4
- image5
- image6
- selected_image
- index
The Sequential Image Loader is the batch-processing sibling of the pack's Random Image Selector. Same six inputs, opposite philosophy: instead of rolling dice, it's a carousel. Feed it a stack of reference images and every time you run the workflow it advances one slot - image 1, then 2, then 3, cycling back to the start when it runs out. It's the node you reach for when you have a row of street views, facades, or site photos that all need the same Qwen-Edit treatment, one at a time, with a human checking each result.
This comes from Urban Geo Analytics, the same pack built around running Qwen-Image-Edit in GGUF fully offline - no API, no cloud, aimed at urban and architectural work where the reference material comes as a batch of photos rather than a single hero image. The workflow shape is: sequential loader picks the current shot β the Qwen-Edit model edits it per your prompt β you look at the result, hit Queue again, and get the next one. It's the manual-approval loop, and for a lot of editing work that's exactly what you want.
How it works
The mechanism is gloriously simple and lives on the class, not the instance. A class-level counter starts at -1; on each run it increments and takes the modulo of however many images are connected, so it wraps around cleanly. Empty input slots are skipped, not counted. It also prints which slot it loaded to the console (Loaded image 2/6, etc.), which is your paper trail for keeping track.
Like its random sibling, it sets IS_CHANGED to the current time - the trick that forces ComfyUI to actually re-run the node instead of serving you a cached result. Skip that and your "sequential" loader would hand you image 1 forever. That one line is the whole reason this works as a carousel instead of a one-shot.
The quirk nobody warns you about
Because the counter lives at class level, two Sequential Image Loaders in the same workflow share one counter. Drop a second one in and they advance in lockstep rather than independently - which is almost never what you meant. Relatedly, the counter resets to the first image whenever ComfyUI restarts, so "continue where I left off" isn't a thing. For a single loader this is all fine; it only bites when you try to scale the pattern.
Inputs and outputs that matter
The six optional IMAGE inputs - image1 through image6 - are the stack you walk through. Outputs are:
selected_image(IMAGE) - the current shot. Goes into your Qwen-Edit / img2img image input.index(INT) - which position you're on, 0-based. Wire it into a text node or logger if you want to see the progress explicitly.
Installing it
Same as the rest of the pack - install once:
cd ComfyUI/custom_nodes
git clone https://github.com/perezjoan/ComfyUI-QwenEdit-Urbanism-by-UGA
Restart and it appears under image/sequence (ComfyUI Manager finds it by searching "ComfyUI-QwenEdit-Urbanism-by-UGA"). No requirements.txt, nothing to pip-install - the pack is pure Python stdlib. The real setup cost is the model stack: the Qwen-Image-Edit GGUF checkpoint, VAE, and CLIP that the UGA tutorials walk you through, all living in ComfyUI/models and all large. Note the README's "put the QwenUrbanismNodes folder in custom_nodes" is stale; the repo is self-contained at the root, so a straight clone works.
Troubleshooting
Two things to know before you build a big batch workflow on this. First, it's sequential per queue run, not an unattended batch: each Queue advances exactly one step, so this is a review-between-runs tool. If you want to blast through a folder overnight, core ComfyUI's batch image loading or an API loop does more - this is the human-in-the-loop pattern. Second, the pack currently has a broken import: its __init__.py references a debug_print module that isn't in the repository, so if you install and the nodes never show up, that's the cause (check the console for the failed pack import). Small node, small job - but knowing those two things saves you an evening.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image1opt | IMAGE | β | |
| image2opt | IMAGE | β | |
| image3opt | IMAGE | β | |
| image4opt | IMAGE | β | |
| image5opt | IMAGE | β | |
| image6opt | IMAGE | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| selected_image | IMAGE | β |
| index | INT | β |