Near-sighted Tile
HyperTile-style detail with exactly three dials
- model
- MODEL
The purest node in the pack. Near-sighted Tile does the tiling half of Near-sighted Attention with none of the slothful style knobs attached - three inputs, one job, and that job is "make the model look at local detail more closely." If you remember HyperTile from the 2024 high-res workflow era, this is a smarter cousin: instead of just splitting the query into tiles, it also hands each tile a downsampled view of the whole image so nothing drifts too far from global context. The author measures +49.2% on UNet speed at 1024×1024 (−11.3% at 512), so like the rest of the pack, it pays for itself at big resolutions.
How it works
In a normal self-attention layer, every pixel's query attends to every pixel's keys and values - quadratic cost, and at high resolution the model spreads its attention too thin to nail small details. Tiling changes the geometry: the spatial map is split into tiles, and each tile's query only attends to its own local keys and values. That's the "near-sighted" part, and it's the same trick HyperTile popularized.
The difference from plain HyperTile is what happens to the global view. Instead of dropping it entirely, the node concatenates a coarse, downsampled version of the whole image into K and V, and global_ratio decides how much of it survives. High global_ratio = more global context = the image stays coherent. Low global_ratio = the tiles go more local = more fine detail, but the composition can fall apart. Tiles also get a deterministic per-step jitter so seams don't line up and turn into visible grid artifacts.
Tiling only applies below tiling_max_depth (default 2) - the shallow, high-resolution blocks are left alone, which is where the speed win comes from without wrecking overall structure.
The three dials
tile_size(32) - tile size in latent space, not pixels. 64 ≈ 512×512 px on SD1.5's shallowest layer. Smaller tiles sharpen local detail but break consistency faster.global_ratio(0.5) - the local-vs-global balance. If the image starts looking like separate patches stitched together, raise this.tiling_max_depth(2) - how deep into the U-Net the tiling applies. Leave it at 2 unless you know what you're doing; pushing it to 3 tiles deeper into low-res blocks where it does less good.
That's the whole node. Output is a MODEL that wires into your KSampler just like any loader output.
Install
Shared pack story, worth repeating because it trips people up: ComfyUI Manager only lists the pack under "ComfyUI Nearsighted Attention" - the project was renamed after the original "Slothful Attention" release, and the old comfyui_slothful_attention repo 404s. So either search Manager for "Nearsighted," or:
cd ComfyUI/custom_nodes
git clone https://github.com/MitoshiroPJ/comfyui_nearsighted_attention
Restart and the node shows up as "Near-sighted Tile." No pip packages, no model downloads - just torch and einops, both already in ComfyUI. Author-tested on SD1.5, SDXL and SSD-1B, and it coexists fine with LoRA, LCM-LoRA, ControlNet and IP-Adapter.
Troubleshooting
- Tile seams / patchwork look.
global_ratiotoo low. Raise it before touching tile size. - Image falls apart entirely at small tile sizes - that's the consistency cost of tiling, not a bug. Back the tile size up.
- No speedup under ~1024. Like the rest of the pack, at 512×512 you mostly pay overhead.
- Hypernetwork and token merging (ToMe) can conflict - they patch attention too, and the README warns against combining them.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| tiling_max_depth | INT | 21–3 | — |
| global_ratio | FLOAT | 0.50–1 | — |
| tile_size | INT | 3216–64 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |