Nodes/comfy-plasma/Blend Images
ComfyUI Node

Blend Images

Crossfade two images with one slider — but match the sizes first

By Jordach·Created 3 years ago·Updated 2 years ago· 81
Blend Images
  • IMAGE_A
  • IMAGE_B
  • IMAGE
blend0.500

JDC_BlendImages is the simplest possible thing with the simplest possible name: take two images, mix them at a ratio you control, output the result. One slider from 0 to 1, where 0 is pure image A and 1 is pure image B. It's the "crossfade" node of the comfy-plasma pack by Jordach, and it's dead simple to use - with exactly one footgun hiding in the code that you should know about before you wire it up.

How it works

Mechanically it's a straight Pillow Image.blend - a linear interpolation between the two images. For each pixel: out = A * (1 - blend) + B * blend. At blend = 0.5 you get the even mix; anywhere else you get a weighted one. It's the same operation as a classic cross-dissolve, and there's nothing cleverer happening - no masks, no modes, no gamma-aware blending. That's the entire feature set, and honestly for a crossfade that's all you need.

It takes IMAGE_A, IMAGE_B, and the blend float (0–1, step 0.001, default 0.5). Output is a single IMAGE.

The footgun: sizes must match

Here's the thing the README doesn't warn you about. The source tries to handle mismatched sizes - if image B isn't the same dimensions as image A, it attempts to resize B to A's size before blending. But the resize result is silently thrown away and never assigned. The code then calls Image.blend anyway, which raises a hard "images do not match" error when the dimensions differ.

So if you plug in two images of different sizes, you don't get a weird hybrid - you get a crash. The fix is easy and you should just do it preemptively: resize both images to the same dimensions before they hit this node. The pack's own JDC_ResizeFactor works, or ComfyUI's core image scale node. Make them match and the node is flawless.

This is a genuinely common place for people to get stuck, so: same size in, same size out, always.

When you'd reach for it

Crossfading is surprisingly useful in ComfyUI. Blend two generations to smooth over an inpainting seam. Cross-dissolve between an img2img input and a fully denoised output to dial in how much of the original you keep - though for that specific job, denoise strength on the sampler is usually the cleaner knob. Fade a texture over a base image for subtle effects. It's a utility node; it earns its keep a dozen small ways.

Install

No requirements.txt, no models, nothing to download. ComfyUI Manager → Install Custom Nodes → search comfy-plasma → install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/Jordach/comfy-plasma

Restart ComfyUI. The node shows up under image/postprocessing.

Common issues

  • "Images do not match" error - the size mismatch bug above. Resize both inputs to identical dimensions first.
  • No batch support - single images in, single image out. Don't feed it batched frames and expect per-frame blends.
  • There's no alpha handling worth relying on - it blends full RGB frames, so transparency from inputs gets flattened into the composite.
Categoryimage/postprocessing

Inputs (3)

NameTypeDefaultDescription
IMAGE_AIMAGE
IMAGE_BIMAGE
blendFLOAT0.5000–1

Outputs (1)

NameTypeDescription
IMAGEIMAGE