Simple Tile Cropper
Cut a tile out of a big image, with context to spare
- image
- cropped_tile
- tile_info
- crop_width
- crop_height
Tiled upscaling is a farming operation: you slice the field, tend each plot, and combine the harvest. This node is the first pass - it cuts one tile out of your big image so the sampler can process it without trying to hold the whole thing in VRAM. The trick is that it crops more than the tile: the crop includes the overlap region, which becomes the context the diffusion model needs to keep details continuous with the neighbor tiles.
It's part of the "Simple USDU" tiling subsystem inside ComfyUI-ArchAi3d-Qwen - Amir Ferdos's pack, best known for Qwen-VL interior-design nodes, with this tiling pipeline being the part the README doesn't talk about. The "USDU" in the category name is a nod to Ultimate SD Upscale; this suite is a from-scratch version of that idea, piece by piece.
How it works
Give it an image and a tile index, and it calculates where that tile lives in the grid, then crops it including the overlap padding so the sampler sees surrounding context. Two things worth knowing:
- Tiles are indexed left-to-right, top-to-bottom, starting at 0.
- Edge tiles get cropped smaller when they extend past the image boundary - the node doesn't pad them. That's handled downstream.
The node also emits tile_info, a JSON string containing the full geometry of this crop (grid position, crop rect, overlap, step sizes). That string is the hand-off between cropper and compositor - the Compositor reads it to know exactly where to put the processed tile back.
Inputs
- image - the IMAGE to crop.
- tile_idx - which tile (0 to total_tiles-1).
- tile_width / tile_height - tile size including overlap.
- tiles_x / tiles_y - grid dimensions.
- overlap - the context padding. The tooltip is explicit: this is context for the sampler, not just spacing.
Outputs: cropped_tile (IMAGE), tile_info (STRING, JSON - feed to the Compositor), and crop_width / crop_height (INT) for checking the actual crop size when an edge tile comes back smaller than expected.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/amir84ferdos/ComfyUI-ArchAi3d-Qwen.git
cd ComfyUI-ArchAi3d-Qwen
pip install -r requirements.txt
Or ComfyUI Manager → "ArchAi3d Qwen". No model files, no heavy deps for this node. Free for personal use; the pack's license requires a paid license for commercial work.
One honest note
You wire this per-tile: one cropper per tile_idx, feeding the sampler, feeding the compositor. That's the explicit, learn-everything-about-tiled-upscaling path and it's genuinely educational - you can see the whole machine. But on a 4×4 grid you're placing 16 of them. The Batch sibling crops the whole grid in one node, and the Smart Tile line in this same pack does the whole thing through SEGS. Use the single cropper to understand the pipeline; use the batch version to actually ship an upscale.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| tile_idx | INT | 00–1000 | — |
| tile_width | INT | 51264–4096 | — |
| tile_height | INT | 51264–4096 | — |
| tiles_x | INT | 21–100 | — |
| tiles_y | INT | 21–100 | — |
| overlap | INT | 640–512 | Overlap between tiles (context padding) |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| cropped_tile | IMAGE | — |
| tile_info | STRING | — |
| crop_width | INT | — |
| crop_height | INT | — |