Latent Tile Sampler (Mikey)
Latent Tile Sampler (Mikey Nodes) — a tiled detail pass that stays in latent space
- base_model
- samples
- positive
- negative
- samples
This is Mikey Nodes' answer to the classic "I upscaled it and now it looks soft" problem, but done as a standalone node instead of buried inside the pack's all-in-one sampler chain. It takes a latent, chops it into tiles, resamples each tile at a light denoise, and stitches the result back together - the latent-space equivalent of a hires-fix second pass, minus the VRAM spike of resampling the whole image at once.
Why tiling instead of just resampling the whole thing
The tiled-diffusion idea isn't new to this pack - Ultimate SD Upscale and Tiled Diffusion have been the community's standard answer to "how do I add detail on a big image without running out of VRAM" for years, and the split-into-tiles-then-blend approach is what makes arbitrary output sizes possible on a 6-8GB card. This node applies the same principle purely in latent space: it never round-trips through pixels or a separate upscale-with-model step, so you'd typically hand it a latent you've already upscaled some other way (LatentUpscale, or an image-space upscale followed by VAE Encode) and let this node run the detail pass on top.
On a real workflow thread, someone recommending Mikey Nodes for exactly this kind of job pointed people at its sampler family as a drop-in for a plain VAE Decode step when what you actually want is more detail after upscaling - swap the decode for a Mikey tiled sampler, keep both the before and after around, and compare. That's the same job this node does, just scoped to latent space rather than the full image-based sampler chain.
The inputs that matter
samples,base_model,positive,negative- your existing latent and the model/conditioning that produced it. This node re-samples using the same model, so hand it the base checkpoint you generated with.denoise(default 0.25) - the important dial. Low values (0.2-0.4) add detail without changing composition; push it too high and you'll get the classic hires-fix failure where faces and hands drift or duplicate. The default sits squarely in the range the community settled on for detail passes generally.tile_size(default 1024, range 256-4096 in steps of 64) - how big each tile is before blending. 1024 lines up with SDXL's native training resolution, which is a sane default if that's your base model; smaller tiles use less VRAM per pass but take more passes to cover the same latent.steps,cfg,sampler_name,scheduler- standard sampler controls, same meaning as on a regular KSampler.
Output is a single samples LATENT - feed it into VAE Decode like any other latent, or chain another pass on top if you're doing a multi-stage upscale.
Installing
Bundled with the whole pack: ComfyUI Manager, search "Mikey Nodes," install, restart - or git clone https://github.com/bash-j/mikey_nodes into ComfyUI/custom_nodes manually. No separate model download for this node itself; you'll want an upscale model in ComfyUI/models/upscale_models for whatever step you use to enlarge the latent before handing it here, but that's a different node's job.
Where it goes wrong
- Denoise too high, faces scramble. This is the single most common failure across every tiled/hires-fix tool, not unique to this node - 0.3-0.4 is the accepted safe ceiling before composition starts drifting.
- Visible seams between tiles. If tile edges show up as faint grid lines, that's usually a tile-size-versus-content mismatch; try a different
tile_sizeor accept that very high denoise makes seams more visible regardless of tile size. - Slow with no visible gain. If you're feeding it a latent that's already sharp and detailed, an extra tiled pass mostly costs time and can drift the style slightly - same rule as any detail pass: only run it on something that actually needs it.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| base_model | MODEL | — | |
| samples | LATENT | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| seed | INT | 00–18446744073709550000 | — |
| denoise | FLOAT | 0.250–1 | — |
| steps | INT | 301–1000 | — |
| cfg | FLOAT | 5.00–1000 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| tile_size | INT | 1024256–4096 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| samples | LATENT | — |