Nodes/ComfyUI-SA-Nodes-QQ/Power Compare Video (QQ)
ComfyUI Node

Power Compare Video (QQ)

A/B your video generations in the graph, no mp4 file juggling

By siraxe·Created 11 months ago·Updated 2 days ago· 72
Power Compare Video (QQ)
  • images
  • images_b
  • images
fps24
output_pickA

Every Wan workflow ends the same way: you tweak a prompt or a LoRA strength, re-run the sampler, and now you have two videos and no honest way to tell which one is better. Your eyes lie across a gap of seconds and pixels. That's the problem Power Compare Video was built for: it plays your new generation in the node itself and lets you drag a divider across it against the previous run - same clip, same frames, side by side in one window, like rgthree's Image Comparer but for moving images instead of stills.

It's part of the "QQ" node family from siraxe (ComfyUI-SA-Nodes-QQ, the "(QQ)" suffix is this author's naming habit across every node). That pack is a companion set for kijai's ComfyUI-WanVideoWrapper, where it adds the spline/TTM animation tools you see in the demos. This particular node is the boring-but-essential part: nothing to generate, no model to load, just a preview and a switch you'll reach for on every iteration loop.

How it works

Feed it an IMAGE tensor - a stack of frames shaped [N, H, W, 3], which is exactly what comes out of a VAE decode or off PowerLoadVideo's image output. Each execution the node writes every frame as a JPEG into ComfyUI's temp folder, tagged with its own node ID, and tells the frontend to draw them. You get an in-node playback area with the same timeline as the pack's Load Video node: play/pause, scrubbing, and [/] loop markers.

The clever part is where the other video comes from. When you don't connect a second input, the node promotes last run's frames to become the B side on your next run - a plain file rename, no re-encode. Run once, A is your current clip. Run again with a change, and A is the new one while B is what you had before. There's a same-input guard too: it hashes your incoming frames and if they're bit-identical to last time (say, upstream was fully cached), it leaves both sides alone so B doesn't get clobbered by a rerun that changed nothing. If the two clips have different frame counts, playback just runs the longer one while the shorter freezes on its last frame.

The few controls that matter

Most of the knobs hide behind the row of buttons drawn above the playback area:

  • Compare mode - slide (the default drag-divider), right, or bottom for where B sits relative to A.
  • A / B pick - this decides what the images output returns, which is the sneaky useful bit.
  • fps - playback speed, 24 by default; you adjust it via the little stepper rather than hunting for the widget.

The inputs are just images (required, the current run) and an optional images_b - connect a second IMAGE sequence and it overrides the previous-run cache, handy when you want to compare against an explicit reference clip instead of your last attempt. And output_pick, the A/B selector: set it to B and the node returns the other video losslessly through its images output, so this isn't a dead-end preview. Wire the output forward to your save node and it becomes a real A/B switch - pick the winner and pipe it on.

Installing it

ComfyUI Manager → search "ComfyUI-SA-Nodes-QQ", install, restart. Or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/siraxe/ComfyUI-SA-Nodes-QQ

Then restart ComfyUI. The pack's requirements.txt is empty - nothing extra to pip install for this node. It needs no model files of its own, though you'll obviously want kijai's WanVideoWrapper upstream if you intend to generate anything.

Gotchas worth knowing

  • The pack was renamed. In v1.3.4 ComfyUI-WanVideoWrapper_QQ became ComfyUI-SA-Nodes-QQ, and the README warns that old workflow JSONs may still point at the old name and trigger an unintended install. If you had the old folder, delete it before updating so you don't run two copies.
  • B is only as durable as your temp folder. The comparison cache lives in ComfyUI's temp directory, which is a scratch space - restart ComfyUI or clear it out and the first run has no B side; picking B then silently falls back to A.
  • If you've switched on the experimental Nodes 2.0 frontend and the playback canvas renders empty, that's the classic fate of heavily custom in-canvas widgets - the same breakage that took down rgthree's comparer - and the standing fix is running the classic frontend.

In one line: images in, images out, with A and B decided by output_pick and the two of them watched through the drag slider. It's a small thing, but when you're on your ninth Wan re-run trying to see whether that 0.05 LoRA change actually helped, it's the difference between eyeballing two files in separate players and dragging a slider across both at once.

CategoryPower/Video

Inputs (4)

NameTypeDefaultDescription
imagesIMAGE
fpsoptFLOAT241–120
images_boptIMAGE
output_pickoptCOMBOA2 options: A, B

Outputs (1)

NameTypeDescription
imagesIMAGE