Nuke Dissolve
Nuke Dissolve is the blend node ComfyUI keeps making you rebuild
- A
- B
- IMAGE
The boring node you'll reach for more than you think
Nuke Dissolve does one thing: it takes image A, image B, and a single which value, and crossfades between them. That's it. No mask, no blend modes, no 28-operation dropdown. In a pack where the sibling NukeMerge ships a full Porter-Duff table, Dissolve is the deliberate minimalist, and it's the one I actually wire up most.
A linear crossfade is one of those operations people keep rebuilding by hand - two scale nodes into a Blend, or a custom math rig - when all they needed was a lerp. This is the lerp. If you've ever wanted to ease between a "before" and "after" of a generation, or slide a result toward a reference, you've wanted this node and just didn't know its name.
How it works (the mechanism)
It's exactly as simple as it looks. The source does:
result = A * (1 - which) + B * which
then clamps to 0–1. A straight, channel-wise linear interpolation between two tensors. There's no color math hiding in here - which matters, because it means the blend is only "correct" if your inputs are in the same space. Crossfading two sRGB PNGs directly lerps gamma-encoded values, which sags the midpoint and makes the transition look muddy. The right way is to decode to linear first; the pack's own NukeRead can hand you images already converted to the OCIO working space, and then the dissolve happens in linear light, which is what a crossfade wants. That's the one piece of compositing lore worth respecting here.
Two details from the code worth knowing. First, if A and B have different resolutions, both get bilinearly resampled up to the larger of the two dimensions before blending - forgiving, silently. Second, which is a single scalar applied to the whole batch, so a batch of N frames all get blended at the same ratio in one run. A real per-frame ramp (dissolve over time) means re-running at stepped which values or tweening downstream - one pass won't do it for you.
The inputs that matter
There are exactly three, and only one is a knob:
- A (IMAGE) - the image or batch you start from.
- B (IMAGE) - the image or batch you crossfade into.
- which (FLOAT, 0–1, default 0, steps of 0.01) - 0 gives you pure A, 1 gives you pure B, and anything between is a straight blend. The tooltip just says "0 = A, 1 = B", which is the whole manual.
The single output is an IMAGE of the blended result, same alpha handling as the inputs - since it's a channel-wise lerp, RGBA alpha crossfades along with color, which is usually exactly what you want for a transition. Wire it into anything that takes an image: a preview, a save, or further compositing. If you need a mask-driven mix instead of a global one, that's the sibling NukeKeymix - Dissolve deliberately doesn't do masks.
Installing it
ComfyUI Manager, search "Nuke Nodes", install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/sumitchatterjee13/nuke-nodes-comfyui.git nuke-nodes
cd nuke-nodes
pip install -r requirements.txt
Then restart ComfyUI and it appears under the Nuke menu, in the Nuke/Merge submenu. The pack pulls in three real dependencies as prebuilt wheels - OpenImageIO >= 2.5, OpenColorIO >= 2.2, and opencv-python-headless. Dissolve itself only needs torch, but the pack insists on all of them at install time, so expect the download to take a minute. No model files, no API keys.
Where people get burned
- Old workflows break on 2.x. In the 2.0.0 rewrite the node was renamed from
NukeMixtoNukeDissolve, and inputs becameA/B/which. A saved workflow from 1.x that references NukeMix needs re-wiring. Worth knowing before you drag in an example graph from a blog post. - The $OCIO trap is a pack-wide one, but it bites the dissolve hardest. Color dropdowns are resolved at ComfyUI startup, so if you set
$OCIOto a show config you must restart ComfyUI for it to take effect - same as launching Nuke from a show environment. - It's a numeric lerp, not a color-managed transform. Feed it mismatched color spaces and you'll get a technically perfect blend of two wrong things. When a crossfade looks gray and dead in the middle, that's usually gamma, not the node.
One aside: the author clearly lives in VFX-pipeline land - their other public tool is a 32-bit EXR stack processor - so these nodes carry real compositor habits into ComfyUI. Treat Dissolve as the cheap, deterministic primitive it is: reach for it before you rebuild a blend, and save the 28 modes for when you actually need them.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| A | IMAGE | — | |
| B | IMAGE | — | |
| which | FLOAT | 0.000–1 | 0 = A, 1 = B |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |