Nodes/ComfyUI-NynxzNodes/Create Fade Compare Video
ComfyUI Node

Create Fade Compare Video

Before/after videos without leaving the graph

By Nynxz·Created 9 months ago·Updated 2 months ago· 0
Create Fade Compare Video
  • start_image
  • end_image
  • options
  • images
  • fps
upscale_toLarger Image
duration1.0
time_padding0.0

Create Fade Compare Video turns two images into a short crossfade clip: it starts on start_image, dissolves into end_image, and hands you the frames plus the fps so you can write them out as a real video file. If you've ever wanted to post one of those smooth before/after morphs of a LoRA, a checkpoint, or an upscale pass and didn't want to drag the pair into an external editor, this is the node that keeps the whole thing inside ComfyUI.

The workflow shape is the interesting part. In the wider graph, "before" and "after" are just two IMAGE tensors you already have - say, a base SDXL render and its upscaled version, or a checkpoint output and its LoRA variant. Wire them in, set a duration, and the node does the rest.

How it works

Both images are resized to a shared target: the larger or smaller of the two by pixel area, per the upscale_to input, with dimensions rounded up to even numbers. Resizing uses your chosen upscale_method and scale_mode, then any leftover mismatch is padded or center-cropped onto background_color. Then it crossfades start → end over duration seconds at the fps, using plain alpha blending (numpy, no model involved).

That upscale_to option deserves a caution: "Larger Image" means the smaller image gets resampled up to match the big one - it's not a super-resolution model, it's a resize. If your two images are wildly different resolutions, the upscaled one will look soft by comparison. Keep sources close in size and the comparison is fair.

Inputs you'll actually set

  • start_image / end_image - the two IMAGEs. Order matters; the clip always goes first → second.
  • duration - 0.1 to 10 seconds, default 1. This is the length of the actual dissolve.
  • time_padding - 0 to 5 seconds of frozen frames tacked onto each end. A little padding gives the viewer a beat to register the before state before the morph starts. Underrated.
  • upscale_to - "Larger Image" (default) or "Smaller Image"; whichever is the master canvas.
  • options (optional) - the bundle from Compare Video Options carrying fps, background, scale mode, and resampling. Leave it unplugged and the defaults hold.

Outputs and getting an actual file

You get images (the frame batch as an IMAGE) and fps (a FLOAT). This is the same frames-plus-fps contract the standard video-combine nodes expect, so wire both into something like VHS Video Combine (or a core SaveVideo) and out comes your mp4. Feed the node's fps output into the combine node's fps input - that's the single most common mistake, and it's also the easiest to avoid.

One real limitation: if your images have very different aspect ratios, contain mode leaves black bars and cover crops content. Neither is wrong, but they change what the viewer compares. For a pixel-level honest comparison, use the wipe node instead - fades hide detail changes under motion blur while a slow wipe lets you park the divider at the spot that differs.

Install & troubleshooting

Part of Nynxz/ComfyUI-NynxzNodes, installable from ComfyUI Manager (search "Nynxz" or "ComfyUI-NynxzNodes") or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/Nynxz/ComfyUI-NynxzNodes

Then restart. No extra pip dependencies, no model downloads - it only uses numpy/PIL/torch that ComfyUI already has. The pack is built on the newer comfy_api.latest API, so if the nodes don't show up, update ComfyUI itself first. If the clip plays at the wrong speed, check that your combine node got the fps output rather than its own default.

CategoryNynxz

Inputs (6)

NameTypeDefaultDescription
start_imageIMAGEStarting image
end_imageIMAGEEnding image
upscale_toCOMBOLarger ImageChoose whether to upscale the start and end images to the larger or smaller of the two images
durationFLOAT1.00.1–10Duration of the compare video in seconds
time_paddingFLOAT0.00–5Optional time padding (in seconds) added to start and end of the video
optionsoptNYNXZ_COMPAREVIDEO_OPTSCompare Video Options

Outputs (2)

NameTypeDescription
imagesIMAGE
fpsFLOAT