Nodes/🐰 MaraScott Nodes/🐰 Image to tiles - v1 /m
ComfyUI Node

🐰 Image to tiles - v1 /m

Turn one image into a grid of tiles

By MaraScottΒ·Created 3 years agoΒ·Updated 10 months agoΒ· 179
🐰 Image to tiles - v1 /m
  • image
  • McBoayty Pipe
  • image
  • tiles
  • tiles - canny
β—„upscale_modelβ–Ύβ–Ί
β—„tile_size512β–Ί
β—„control_net_nameNoneβ–Ί
β—„low_threshold0.60β–Ί
β—„high_threshold0.60β–Ί

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:

  1. Formats the image so its dimensions are divisible by 8 (the tiler pads/crops to a sampler-friendly size).
  2. Optionally upscales it with an upscale_model from models/upscale_models/ - set to None and it tiles at input resolution.
  3. Slices it into a grid of tile_size squares with a fixed 10% overlap (that overlap is what makes the later stitch invisible - the untiler blends the feathered edges).
  4. 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 the low_threshold/high_threshold pair (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 it None and 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.

Category🐰 MaraScott/Utils

Inputs (6)

NameTypeDefaultDescription
imageIMAGEβ€”
upscale_modelCOMBO1 options: None
tile_sizeINT512320–4096β€”
control_net_nameCOMBONone1 options: None
low_thresholdFLOAT0.600.01–0.99β€”
high_thresholdFLOAT0.600.01–0.99β€”

Outputs (4)

NameTypeDescription
McBoayty PipeMC_BOATY_PIPEβ€”
imageIMAGEβ€”
tilesIMAGEβ€”
tiles - cannyIMAGEβ€”