Nodes/comfyui-rtx4090-nodes/Batch Latent Processor πŸš€
ComfyUI Node

Batch Latent Processor πŸš€

Slerp and Latent Upscale Are Useful β€” 'Denoise' Is Just a Blur

By JosephOIbrahimΒ·Created 8 months agoΒ·Updated 8 months agoΒ· 4
Batch Latent Processor πŸš€
  • latents
  • reference_latent
  • LATENT
β—„operationβ–Ύβ–Ί
β—„strength1.00β–Ί
β—„blend_factor0.50β–Ί

Batch Latent Processor does operations on the latent tensor itself - before VAE decode, while it's still in the compressed space the sampler works in. That's a genuinely interesting place to do work: latent-space upscaling and latent interpolation are real techniques with real uses. The catch is that this particular node bundles them with a "denoise" mode that's actually just a Gaussian blur, so it's a mixed bag where you have to know which buttons to press.

What each operation actually is

The source is short, so there's no ambiguity:

  • denoise - builds a Gaussian kernel (size and sigma driven by strength) and convolves it over the latent channels. That's blurring, not denoising. Real denoising in diffusion is what a KSampler does - removing noise step by step against a noise schedule. Blurring a latent just smooths it, which in practice makes the decoded image look soft and smeared. The name is doing a lot of work it shouldn't. If you want to lightly clean up a latent, that's a KSampler with denoise set below 1.0, not this node.
  • upscale - bilinear interpolation of the latent by strength as a scale factor. strength 2 doubles the latent resolution. This is the classic latent-hires trick: upscale in latent space, then run a second sampling pass at the higher resolution. Legit and useful.
  • blend - linear mix between your latents and a reference_latent using blend_factor. Simple, works, and it needs that reference wired in.
  • interpolate - spherical interpolation (slerp) between your latents and reference_latent, again governed by blend_factor. This is the fun one: latent morphing between two images' latents gives smooth, natural transitions - a classic trick for animation and video work.

The trap: silent no-ops

Here's where people get bitten. blend and interpolate both require reference_latent - but the node won't tell you. Read the code and it's elif operation == "blend" and reference_latent is not None: leave the reference unplugged and the node silently returns your input unchanged. No error, no warning, just a wasted run and an image that looks identical to what you started with. If you pick blend or interpolate and "nothing happened," this is why. Wire a second latent into reference_latent first.

The inputs that matter

  • latents - your LATENT tensor (required).
  • operation - the dropdown: denoise / blend / interpolate / upscale.
  • strength - 0–2, default 1. For upscale it's the scale factor; for denoise it drives the blur kernel. Irrelevant to blend/interpolate.
  • reference_latent - the second latent, mandatory for blend and interpolate even though it's listed optional.
  • blend_factor - 0–1, default 0.5; how far you move toward the reference.

One output, a single LATENT - wire it into a KSampler to continue sampling (after an upscale, that's the intended flow) or straight into a VAE decode to look at what you've got.

Worth it?

The two useful operations - latent upscale and slerp - are exactly the sort of thing you'd otherwise need a dedicated node pack for, and this does them with clean defaults. strength for upscale, blend_factor for interpolation, and you're done. Just skip denoise unless you specifically want a blurry latent, and remember the reference-latent rule.

Install is the shared pack route:

cd ComfyUI/custom_nodes
git clone https://github.com/joe002/comfyui-rtx4090-nodes.git

Restart (or use Manager, "comfyui-rtx4090-nodes"). Pure PyTorch, no torchvision dependency, no models. For latent morphing and latent-hires workflows it's a handy little node - once you know to ignore a third of its dropdown.

CategoryRTX4090/batch

Inputs (5)

NameTypeDefaultDescription
latentsLATENTβ€”
operationCOMBO4 options: denoise, blend, interpolate, upscale
strengthFLOAT1.000–2β€”
reference_latentoptLATENTβ€”
blend_factoroptFLOAT0.500–1β€”

Outputs (1)

NameTypeDescription
LATENTLATENTβ€”