Divide Image and Select Tile
Where Divide and Conquer splits your image into tiles — and lets you regenerate just one
- image
- dac_data
- SELECTED TILE
- ALL TILES
This is the node that makes Divide and Conquer different from every other tiled upscaler. Ultimate SD Upscale and Tiled Diffusion cut an image up and process every tile with the same settings, blindly. Divide Image and Select Tile hands you the tiles as individual images - so you can run each one through its own sampler, give each its own prompt, or regenerate a single tile that came out bad without touching the other forty.
You wire it right after the Divide and Conquer Algorithm node: the algorithm upscales the image and passes its plan along as dac_data; this node takes that same image plus the plan and does the cutting. Because the plan (tile size, overlap, grid, order) travels inside dac_data, you never have to match settings by hand - the split and the later combine always agree, which is the silent killer of hand-rolled tiling setups.
Inputs and outputs
image- the upscaled image straight from the algorithm node.dac_data- same wire, straight from the algorithm node.position- the one you actually touch.0passes all tiles through. Any other number (1,2,3…) passes just that single tile, numbered in the order you picked earlier (spiralorlinear) on the algorithm node.
Two outputs come out of it:
SELECTED TILE- a single IMAGE: tile #position, or the first tile whenpositionis 0. The one to feed into your img2img/KSampler chain when you want to test on one tile.ALL TILES- the whole batch as a list, for when you're ready to process everything.
So the workflow pattern is: set position to 0 and run the whole grid through your upscale chain, or set it to a specific tile to iterate on one region. That single-tile trick is the README's own tip - before committing to a full 132-tile run on an RTX 3090, generate one tile to verify your denoise strength and prompt actually work. At ~90 minutes for a big grid, that's not a nice-to-have, it's the difference between a test and a wasted afternoon.
What to feed the tiles into
The tiles want a full per-tile image-to-image chain. The author's example workflow does this properly: Florence2 captions each tile individually (so every region gets its own description instead of one shared caption), a Tile ControlNet keeps each tile faithful to its source pixels, and a KSampler regenerates at low denoise. That per-tile conditioning is the whole selling point - with a single full-image ControlNet, conditioning gets spread thin across all tiles; here each tile keeps the maximum input resolution.
One note on the batch output: it's a list of single-image tensors, not one batched tensor. That's deliberate - it's what lets each tile route through its own nodes, and it's what Combine Tiles expects on the way back in.
Install and gotchas
Part of the ComfyUI Steudio pack - one install gets the whole suite:
cd ComfyUI/custom_nodes
git clone https://github.com/Steudio/ComfyUI_Steudio
Restart ComfyUI after cloning (or install via ComfyUI Manager → search ComfyUI Steudio). No dependencies, no model files to fetch.
If you're coming from the 1.x pack, note that pre-2.0 this node had no position selector - a separate node just spat out all tiles. The current one replaces that. And if tiles come back with visible seams after combining, the fix lives upstream: raise min_overlap on the algorithm node, not here.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| dac_data | DAC_DATA | — | |
| position | INT | 0 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| SELECTED TILE | IMAGE | — |
| ALL TILES | IMAGE | — |