Nodes/Mikey Nodes/Latent Tile Sampler (Mikey)
ComfyUI Node

Latent Tile Sampler (Mikey)

Latent Tile Sampler (Mikey Nodes) — a tiled detail pass that stays in latent space

By bash-j·Created 3 years ago·Updated 10 months ago· 188
Latent Tile Sampler (Mikey)
  • base_model
  • samples
  • positive
  • negative
  • samples
seed0
denoise0.25
steps30
cfg5.0
sampler_name
scheduler
tile_size1024

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_size or 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.
CategoryMikey/Sampling

Inputs (11)

NameTypeDefaultDescription
base_modelMODEL
samplesLATENT
positiveCONDITIONING
negativeCONDITIONING
seedINT00–18446744073709550000
denoiseFLOAT0.250–1
stepsINT301–1000
cfgFLOAT5.00–1000
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
tile_sizeINT1024256–4096

Outputs (1)

NameTypeDescription
samplesLATENT