Nodes/WAS Node Suite v3/Latent Upscale by Factor
ComfyUI Node Runs on cloud

Latent Upscale by Factor

Scale a latent by a multiplier in ComfyUI

By WASasquatch·Created 3 years ago·Updated 6 days ago· 1,844
Latent Upscale by Factor
  • samples
  • LATENT
mode
factor2.00
aligntrue

Latent Upscale by Factor (WAS) scales a latent up by a multiplier - 1.5×, 2×, whatever - rather than making you type out exact target dimensions. It's the convenience version of latent upscaling: you think in "make it twice as big," and the node does the pixel-dimension math for you. This is the heart of the classic two-pass, high-res workflow.

If you're new to it: the high-res trick is to generate at a normal resolution, upscale the latent (not the finished image), then run a second sampling pass at low denoise on the bigger latent. The second pass fills the extra space with real detail instead of just interpolated pixels. This node is the upscale step in the middle.

How it works

It takes your latent and enlarges it by the factor you set, using an interpolation method to resize the latent tensor. The output is a bigger latent - same content, more room - which you hand to a second KSampler. Because you specify a factor, the node computes the new width and height from your current latent's size, so it stays correct even if the upstream resolution changes.

The factor-based approach is the ergonomic win over the "by pixels" variant. For a standard 2× hi-res pass you set 2.0 and forget it; you're not recalculating dimensions every time you change your base resolution.

The inputs and outputs that matter

You feed in a latent (samples), set the factor (the multiplier), and usually choose an interpolation mode for how the resize is done. The output is the upscaled latent, meant to flow into a second sampler. Keep the factor sane - 1.5× to 2× per pass is the sweet spot; jumping straight to 4× in one go tends to produce mush.

How to install it

Comes with WAS Node Suite. Install once via ComfyUI Manager (search WAS Node Suite, install, restart) or clone it:

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui
pip install -r was-node-suite-comfyui/requirements.txt

then restart. On Windows portable, run the pip step with python_embeded\python.exe -s -m pip install -r ... (or install.bat). No models of its own - it's a latent resize.

Common issues & troubleshooting

The upscale looks soft or muddy. Latent upscaling alone doesn't add detail - it makes a bigger, blurrier latent. The detail comes from the second sampling pass afterward. If you upscaled and decoded straight to an image, that's your mistake: add a KSampler at ~0.4–0.6 denoise after the upscale to actually resolve the new resolution.

You got a warped or doubled image. Push the factor too high in a single step and the second pass can hallucinate extra limbs or repeat elements, because there's too much empty latent to fill coherently. Do it in smaller hops (2× then 2× again with a pass between) instead of one giant jump.

Latent vs model upscale confusion. This scales the latent. If you want to enlarge an already-finished image with a dedicated upscale model (ESRGAN and friends), that's a pixel-space upscaler - a different node entirely. Use latent upscale for the mid-generation hi-res pass; use a model upscaler for post-processing a final image. Many workflows use both.

The suite won't import. WAS Node Suite is large and unmaintained since late 2023; the recurring failure is an "Import Failed" after a ComfyUI update, from a dependency version clash (opencv especially). Reinstall the requirements against your ComfyUI Python and restart. The upscale node is dependable - the suite install is the fragile bit.

CategoryWAS Suite/Latent/Transform

Inputs (4)

NameTypeDefaultDescription
samplesLATENTThe latent to resize.
modeCOMBOHow new values are worked out between the existing ones. `nearest` copies the closest value and is blocky; `bilinear` and `bicubic` interpolate and are progressively smoother; `area` averages over the source region and suits shrinking rather than enlarging.
factorFLOAT2.000.1–8Multiplier applied to both the height and the width. 2.0 doubles the size, 0.5 halves it, 1.0 leaves it as it is. A factor small enough to shrink an axis away leaves one latent block of it, so the result is never empty.
alignBOOLEANtrueWhether the outermost values are pinned to the edges of the result instead of to the centres of the corner samples, which shifts the image very slightly. Only the bilinear and bicubic modes use this; `area` and `nearest` ignore it.

Outputs (1)

NameTypeDescription
LATENTLATENTThe resized latent.