Nodes/DOGMA Nodes/DOGMA Tile Batch → Mapped List v25
ComfyUI Node

DOGMA Tile Batch → Mapped List v25

The five-line node that changes how your graph runs

By axior·Created 4 months ago·Updated 3 days ago· 1
DOGMA Tile Batch → Mapped List v25
  • 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 raises DOGMA 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.
CategoryDOGMA/Semantic Detailer

Inputs (1)

NameTypeDefaultDescription
imagesIMAGE

Outputs (1)

NameTypeDescription
tilesIMAGE