Nodes/ComfyUI-IcyHider/Icy LatentUpscaleBy
ComfyUI Node

Icy LatentUpscaleBy

Upscaling before the pixels exist — LatentUpscaleBy, the honest case for it

By icekiub-ai·Created 9 months ago·Updated 9 months ago· 31
Icy LatentUpscaleBy
  • samples
  • LATENT
upscale_method
scale_by1.50

IcyLatentUpscaleBy is the IcyHider clone of LatentUpscaleBy, and before anything else, the honest framing: latent upscaling is the intermediate step in a hi-res fix, not a real upscaler. It enlarges the latent - the compressed representation the sampler works in - before it ever becomes pixels. Done right, it's how you get a higher-resolution second pass out of a model that can't sample big natively. Done naively, it's how you get mush.

What it does

Three inputs:

  • samples - a LATENT from your sampler's output (or from a VAE encode).
  • upscale_method - the interpolation: nearest-exact, bilinear, area, bicubic, bislerp. bislerp is the ComfyUI-native method for latents and the sensible default; bicubic is a common alternative. The others are there for special cases.
  • scale_by - the factor, default 1.5, range 0.01–8.0.

It outputs a LATENT at the new resolution. That's it - the node does no detail creation, only interpolation, which is why the result alone always looks soft.

The workflow it belongs to

The classic hi-res fix: generate at native res → LatentUpscaleBy (1.5×) → feed the bigger latent plus a lower denoise into a second sampler pass. The second pass re-adds the detail the interpolation smeared. This is the correct, cheap way to get a 768→1152 style bump without tiling, and it's what upscaling guides mean when they say "use a latent upscale as the intermediate step, then img2img adds detail."

Where people get burned: scaling by 2× and expecting the model to fill the gap. At some point interpolation alone can't invent that much new information, and the image turns to plastic. The fix is either a smaller factor or - for real enlargement - a proper upscaler: tiled diffusion with a tile ControlNet if you want to keep the model's hand in it, or a dedicated upscaling pass. Latent upscaling is the on-ramp, not the destination.

The "Icy" caveat

This node outputs LATENT, and while latents can be previewed, this node has no image preview for IcyHider's JavaScript to hide - so the wrapper is, once again, packaging. The exact same code runs as ComfyUI's LatentUpscaleBy. Use whichever name fits your graph.

Install

Same pack install as all the Icy nodes: ComfyUI Manager → search "IcyHider" → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider.git

Restart ComfyUI. Zero Python dependencies, no model downloads. It appears under IcyHider Comfy Core. If your second-pass output looks worse than the first pass, don't debug the node - cut the scale factor and raise the detail back into the second sampler.

CategoryIcyHider Comfy Core

Inputs (3)

NameTypeDefaultDescription
samplesLATENT
upscale_methodCOMBO5 options: nearest-exact, bilinear, area, bicubic, bislerp
scale_byFLOAT1.500.01–8

Outputs (1)

NameTypeDescription
LATENTLATENT