π’ CR Interpolate Latents
Blend Two Latents Together Without Re-Running the Sampler
- latent1
- latent2
- LATENT
- show_help
CR Interpolate Latents blends two latents together at a weight you set - a cheap way to get something in between two images, in latent space, without generating a third image from scratch.
How it works. Wire in latent1 and latent2, set weight (default 0.5, range 0β1), and pick a method - the schema surfaces lerp, plain linear interpolation, as the option. Read weight as the blend point: 0 leans fully toward latent1, 1 leans fully toward latent2, and 0.5 sits exactly halfway between the two. Output is a single blended LATENT you can decode normally with a VAE, or feed straight into another sampling pass.
What this is and isn't. It's worth being precise about the mechanism here, because it's easy to overstate. This is a straight mathematical blend of two latent tensors - not a trained model generating a plausible in-between frame. It's the model-agnostic, low-tech version of an idea that AnimateDiff's SparseCtrl extension made trainable: give the pipeline a start frame and an end frame and let a temporal module fill in motion between them. That approach needs a checkpoint with a trained motion component behind it. This node needs nothing beyond two latents and a number - it works with any checkpoint, but what you get back is a genuine blend, not a plausible intermediate the way a trained interpolation model would produce. For a big jump between two very different latents, expect a blend that looks like a cross-dissolve, not a smooth generated transition.
Where it's actually useful. Cheap in-between frames for a simple two-keyframe animation where a full crossfade look is what you want rather than generated motion; blending two img2img-encoded starting latents before sampling, to nudge a generation partway toward a second reference without fully committing to it; or quick experimentation where re-running the sampler for every intermediate step would be slow and this gives you an instant approximation.
Inputs and output that matter. latent1, latent2 (the two latents to blend), weight (0β1, the blend point), method (lerp). Output is a single LATENT plus show_help.
Install. ComfyUI Manager: search "Comfyroll Studio", install, restart. Manually: cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, restart. No models needed - this operates purely on latents already in your graph.
Troubleshooting. Blending latents from two very different sources (different resolutions, or images that share almost nothing in composition) tends to produce muddy, low-quality results after decoding - that's inherent to a linear blend in latent space, not a sign the node is broken; it works best on latents that are already fairly close to each other. The pack-wide caveat applies as always: Comfyroll registers its entire node set from one shared file, and real reports on r/comfyui document a single broken import (Failed to load Graphics nodes / Failed to load Utility nodes) taking down every Comfyroll node at once. If nodes are missing after install, redo it with a clean git clone.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| latent1 | LATENT | β | |
| latent2 | LATENT | β | |
| weight | FLOAT | 0.500β1 | β |
| method | COMBO | 1 options: lerp |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | β |
| show_help | STRING | β |