π° Image to tiles - v1 /m
Turn one image into a grid of tiles
- image
- McBoayty Pipe
- image
- tiles
- tiles - canny
McBoaty v6 doesn't start with an upscale node - it starts with this. The Tiler is the dedicated front end of the v6 pipeline: it takes a single image, optionally upscales it, slices it into overlapping tiles, and produces the McBoaty Pipe that the Configurator and Refiner consume. If the v5 set buried tiling inside the Upscaler node, v6 pulled it out and made it a reusable utility. That's the whole point of the redesign.
What it does
Feed it an image and it runs this sequence:
- Formats the image so its dimensions are divisible by 8 (the tiler pads/crops to a sampler-friendly size).
- Optionally upscales it with an
upscale_modelfrommodels/upscale_models/- set toNoneand it tiles at input resolution. - Slices it into a grid of
tile_sizesquares with a fixed 10% overlap (that overlap is what makes the later stitch invisible - the untiler blends the feathered edges). - Optionally computes canny edges for every tile - if you pick a canny/union ControlNet in
control_net_name, the dropdown only lists models with "canny" or "union" in the name - using thelow_threshold/high_thresholdpair (both 0.6). Those canny maps are what the Refiner uses to anchor each tile to the source.
Outputs:
McBoayty Pipe- into the Configurator (note the pack's own typo in the output name).image- the (possibly upscaled) full image.tiles- the tile grid as an image batch.tiles - canny- the canny edge maps, when a ControlNet is selected.
The settings that matter
tile_size(default 512, range 320β4096, step 64) - the big dial. Smaller tiles = more tiles = finer per-tile control but slower and more VRAM-friendly; 512 is the sweet spot for SD1.5/SDXL-era samplers.upscale_model- where you apply your 4x-UltraSharp or similar before tiling, so each tile gets the model's detail budget.control_net_name- the canny anchoring. This is the "keep it faithful" switch; leave itNoneand the Refiner has no structural guide and tiles can wander.
One thing to watch: the tiler enforces a hard cap on tile count (16384 in the code, and the node raises a clear error telling you to increase tile_size if you blow past it). If you get that error, your image is enormous or your tile size is tiny - bump tile_size, don't fight it.
Where it fits
The intended v6 graph is Tiler β Configurator β TilePrompter β Refiner, and the Tiler is also genuinely reusable on its own: want to inspect how a big image slices into tiles before committing to a pipeline? Feed it, read the tiles output, done. You could even grab the tiles and canny outputs and feed them into a hand-built tiled workflow.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/MaraScott/ComfyUI_MaraScott_Nodes
Restart or ComfyUI Manager β "MaraScott". No extra models for tiling itself; an upscale model and canny ControlNet are optional per your workflow. And the pack-level caveat still applies - the README flags the v6 line as broken (issue #187), so if the tiler feeds a v6 pipeline that then misbehaves, blame the pipeline, not the slicing. The tiling math itself is straightforward and solid.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| upscale_model | COMBO | 1 options: None | |
| tile_size | INT | 512320β4096 | β |
| control_net_name | COMBO | None | 1 options: None |
| low_threshold | FLOAT | 0.600.01β0.99 | β |
| high_threshold | FLOAT | 0.600.01β0.99 | β |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| McBoayty Pipe | MC_BOATY_PIPE | β |
| image | IMAGE | β |
| tiles | IMAGE | β |
| tiles - canny | IMAGE | β |