Blend Images
Crossfade two images with one slider — but match the sizes first
- IMAGE_A
- IMAGE_B
- IMAGE
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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| IMAGE_A | IMAGE | — | |
| IMAGE_B | IMAGE | — | |
| blend | FLOAT | 0.5000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |