DOGMA v35.1 Select 2x2 Test Tiles
Tune the settings on four tiles instead of four hundred
- image
- dac_data
- tiles
- test_data
- source_patch
- info
What it is
A cheap way to audition your tile settings before committing to a full high-res pass. DOGMASelect2x2TestTilesV351 takes the prepared tiling canvas and its DAC_DATA description, picks one 2x2 block of tiles anywhere you point it, and returns those four tiles as a list - so you can push them through a sampler at four steps, look at the result, and only then run the whole grid.
If you've ever run a 4x tiled upscale on a 6K canvas, tweaked one number, and waited eight minutes to find out it was worse, this node is the fix. It's not glamorous. It's the thing that makes iteration affordable.
How it works, concretely
The node needs dac_data - the tiling plan emitted by the pack's DAC prepare node, which contains the working canvas size, tile width and height, the overlap on each axis, the grid dimensions, and the computed stride. From that it derives stride_x = tile_width - overlap_x and stride_y = tile_height - overlap_y, then uses block_x and block_y (both 0.0–1.0, default 0.5) as normalized positions across the available block range.
So with a 4x4 grid, block_x = 0.0 is the leftmost pair of columns and block_x = 1.0 is the rightmost pair; the interior is where all the interesting overlap behaviour lives. Edge-aligned tiles get snapped to the canvas boundary so they never read past the end of the image.
It also computes source_patch: the bounding rectangle covering all four tiles, cropped from the source. That's your side-by-side reference - the same region before the sampler touched it. You want that on a Preview node next to the output, because "did this improve or just get shinier" is unanswerable from memory.
Inputs and outputs
image- the prepared high-res canvas.dac_data- from the DAC prepare node. If a list of them arrives, the node silently uses the first.block_x,block_y- floats 0.0–1.0, step 0.05, both defaulting to 0.5. This is the one control you'll actually touch: walk it around and sample a corner, a centre, and a busy edge.
Outputs: tiles is an IMAGE list of four, which is what makes the rest of the graph run once per tile instead of one batched call. test_data is a DOGMA_TEST_DATA dict carrying the four coordinates, the patch offsets, tile size, overlap and grid - wire it into the matching combine node to blend the four results back into one patch for inspection. source_patch is the untouched source region. info is a one-line summary: which block row/column, the four coordinates, and the patch size.
Why you'd use it rather than just running everything
Three real reasons.
First, seams show up at the edges first. If your overlap and blending settings are wrong, a 2x2 block that straddles an interior seam is where you'll see it - as a visible tonal step, a repeated texture, or a building that jogs sideways. Sampling that block tells you more than sampling a tile in the middle of a flat wall.
Second, per-tile prompts. The DOGMA tile nodes compose a different instruction per tile (the pack has tile prompt composer and per-tile VLM barrier nodes for exactly this), and the 2x2 test is how you check that those instructions are landing on the right content without paying for the full sweep.
Third, VRAM. Four tiles at 1536px is a manageable sample; a hundred of them isn't.
Install
ComfyUI Manager → DOGMA Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
# restart ComfyUI
requirements.txt declares no dependencies - the pack is PyTorch and ComfyUI's own APIs - and there's nothing to download. Note the display name is "v35.1" while the class is DOGMASelect2x2TestTilesV351: in this pack, the version in the class name and the version in the label are two different labelling systems that mostly agree and sometimes don't.
Gotchas
- It raises on a grid smaller than 2x2. If your tile plan produced a
grid_xorgrid_ybelow 2, the node errors with2x2 test needs at least 2x2 grid. That happens when the canvas isn't much bigger than the tile - the fix is up the target scale, not in this node. - Tiles come out as a list, so downstream nodes need to accept lists. If you feed them into a node that expects a plain IMAGE batch, you'll get one run per tile with confusing results rather than an error.
- There is no community documentation for this pack - zero reddit threads name it, and the README covers only the WAN VACE prep nodes and DOGMA samplers. Everything above is read off the source.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| dac_data | DAC_DATA | — | |
| block_x | FLOAT | 0.500–1 | — |
| block_y | FLOAT | 0.500–1 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| tiles | IMAGE | — |
| test_data | DOGMA_TEST_DATA | — |
| source_patch | IMAGE | — |
| info | STRING | — |