DOGMA Tile Batch → Mapped List v25
The five-line node that changes how your graph runs
- images
- tiles
What it is
DOGMATileBatchToListV25 does exactly one thing: it takes an IMAGE batch and returns a ComfyUI list of single-image batches, one per tile. Four lines of body code, one input, one output.
Its docstring names the payoff: "Split a D&C IMAGE batch into a real Comfy mapped IMAGE list, one tile per item."
Divide-and-conquer tile pipelines produce a batch - 16 or 40 or 120 tiles stacked in one tensor. A batch is a single object as far as the graph is concerned, so everything downstream processes the whole batch in one call: one sampler invocation, one prompt, one set of settings, one VRAM allocation the size of every tile at once. A list is different. ComfyUI executes downstream nodes once per list item, which is where per-tile prompting, per-tile VLM analysis, per-tile seeding and staged VRAM use become possible.
Why the DOGMA tile pipeline needs it
The pack's tile flow of this generation composes a different instruction per tile, runs a VLM barrier per tile, and gates each tile's result on whether the evidence supported the change. None of that is expressible on a batch. You need the tiles to be separate things the graph walks through.
The VRAM angle is just as practical. Sampling a batch of forty 1536px tiles means the sampler sees all forty; sampling a list means it sees one at a time, and memory peaks accordingly. On the tiling side of this pack, where tiles can be 2048px and the grid can be five by five, that's the difference between running and not running.
The name spells out the transformation: batch → list, and "mapped" here means ComfyUI's list mapping, not a Python map() call.
Inputs and outputs
images- IMAGE, the batch. It has to be 4D[B,H,W,C], and it has to have at least one frame; anything else raisesDOGMA v25 expected IMAGE batch [B,H,W,C].tiles- IMAGE list, one[1,H,W,C]item per input frame, in the same order.
That's the whole node. It has no parameters, because there's nothing to configure: the transformation is structural.
Where it goes in the graph
Immediately after whatever produces your tile batch - the DAC prepare plus a tile-slicing node, or an Ultimate-SD-Upscale-style grid - and immediately before the per-tile work: prompt composition, VLM analysis, sampling, gates.
The one thing that will trip you up: a list changes the execution semantics of everything downstream, not just the node you wanted to iterate. A node that expects a batched IMAGE and gets a list will process one tile at a time, and if it does batch-relative math (per-frame normalisation, batch statistics, anything with a mean over the batch dimension) it will quietly compute per-tile numbers instead. That's usually what you want here - and it's exactly why you should know it's happening. The pack ships an inverse for the tiles that need batching back together.
Note the version: this is the v25 generation of the tiling line, so it sits later in the pack's history than the v21/v22 semantic crops. Trailing numbers are iteration order across the whole pack, not per-line counters.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
# restart ComfyUI
ComfyUI Manager → DOGMA Nodes is the other route. No dependencies - the pack's requirements.txt is a single comment line - and nothing to download. This one is pure plumbing, so if all you need is a batch splitter you could write your own; the reason to reach for this one is that it lives in the same pack as the rest of the tile pipeline and the list semantics it expects.
Gotchas
- Empty or wrongly shaped input is a hard
ValueError, not a silent pass-through. - A list of one-item batches is not the same thing as a batch of one. If you feed the list into a node that concatenates batches for display, you'll get the original grid back; if you feed it into a node that previews everything, you'll get forty separate previews. Both outcomes are correct and both confuse people.
- There's no community documentation for this pack - zero reddit threads name it, and its README covers the WAN VACE prep nodes and the DOGMA samplers instead of the tiling half. Read the source; in this case it's genuinely four lines.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| tiles | IMAGE | — |