Divide Image Select 988
The cutter in the DaC upscale pipeline
- image
- dac_data
- tiles
- matrix
DaC Algorithm plans the tiling, Combine Tiles stitches it back - and somewhere between those two, the image has to actually be cut into tiles. That's Divide Image Select 988. It takes the upscaled image and the dac_data plan, crops out every tile at its exact coordinate, and hands them to you either all at once or one at a time. Simple job, but it's the socket the whole "process each tile independently" part of the workflow plugs into.
The name is a leftover of the node's lineage (this pack is a port of Steudio's ComfyUI_Steudio, which called it "Divide Image and Select Tile") - the "select" part is real, though: the tile input doesn't just decide how many tiles you get, it lets you pull a single tile out of the grid.
How it works
Under the hood it recomputes the tile coordinates from the dac_data (using the same shared coordinate logic the combine node uses, which is why the two always agree), then crops the image at each position. The output order follows the tile_order stored in the plan - linear or spiral - and this order is the contract you must respect downstream: Combine Tiles assumes tiles arrive in exactly this order.
The one input that matters
image- the upscaled image from DaC Algorithm.dac_data- the plan; wire it from the same DaC Algorithm output.tile-0returns all tiles as a list; any otherNreturns just tileN. That single-tile mode is how you debug one region without running the whole pipeline, or how you re-process just the tile that came out wrong.
Outputs
tiles- the image list (all tiles, or the single selected one). Feed it into your processing pass - img2img, an upscaler, ControlNet-tile, or straight through to Combine Tiles if you're just testing the geometry.matrix- the text grid visualization again; pipe it into Display UI 988 to see the layout you're about to process before you burn the compute.
Where it fits in practice
The classic DaC workflow processes each tile through a diffusion upscaler at low denoising - the tile-ControlNet + tiled-diffusion approach the KB's upscaling essay calls "still one of the most reliable upscaling workflows for photorealistic content." Each tile is a small, VRAM-friendly generation. Divide Image Select is what makes that per-tile processing possible instead of a single out-of-memory attempt at the whole image.
Troubleshooting
- Tiles come out in the wrong place: the
dac_dataand the image don't match - usually because you resized the image after the algorithm ran. Re-run DaC on the actual image. - A tile looks like a different image than expected: check whether your processing pass reordered the list before Combine Tiles.
matrixis blank: it's a string, not an image - view it through Display UI 988.
Install
Part of ComfyUI-988: Manager (search "ComfyUI-988") or:
cd ComfyUI/custom_nodes
git clone https://github.com/kajan988/ComfyUI-988
cd ComfyUI-988
pip install -r requirements.txt
Then restart. Light dependencies only; nothing to download.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| dac_data | DAC_DATA | — | |
| tile | INT | 0 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| tiles | IMAGE | List of image tiles; tile=0 returns all tiles |
| matrix | STRING | Visual tile matrix string |