Nodes/ComfyUI-Majoor-ImageOps/〽️ Image Ops Preview
ComfyUI Node

〽️ Image Ops Preview

The preview node that turns a pile of frames into something you can actually watch

By MajoorWaldi·Created 8 months ago·Updated 8 days ago· 11
〽️ Image Ops Preview
  • image
  • mask
  • image
  • mask
preview_targetauto
modeimages

Once you start generating video in ComfyUI, the default preview stops being useful. A row of separate image thumbnails tells you nothing about whether the motion actually works - you need to see the motion. That's the gap ImageOps Preview is built for. It's an output/display node that inspects a batch of frames and shows them as a strip, or as an actual animated WebP or GIF you can watch, without dragging ffmpeg into the picture.

It comes from a pack whose whole pitch is batch-first image work. The author (MajoorWaldi, who also maintains the popular ComfyUI Assets Manager) describes ImageOps as trying to bring a "compositor brain" into ComfyUI - treat images as frames you manipulate and inspect, not "mysterious PNG ghosts floating through the graph." This node is the inspection end of that promise.

What it actually does

Think of it as a passthrough bridge with a display on top. You feed it an image and/or a mask, it shows you what you asked for, and it hands both back out unchanged through its image and mask outputs. That passthrough is the part people underestimate: you can drop it in the middle of a chain to check what a mask looks like without disturbing the graph at all.

The mode dropdown is where it earns its keep:

  • images - plain per-frame previews, the boring-but-reliable default.
  • strip - one horizontal contact sheet of your frames (capped at 16, tiles at 256px tall). Great for a quick scan of a whole batch.
  • animated_webp / animated_gif - writes the batch out as a single animated file so you can actually watch the motion. These are PIL-built, so no ffmpeg dependency.

preview_target (auto / image / mask) decides what gets drawn - flip it to mask and the canvas becomes the greyscale matte, which is the fastest way to sanity-check whether a keyer or an alpha channel actually did what you think it did.

The one thing it is not

Here's the trap, and it's a weird one: the pack's README used to claim this node had histogram, waveform, vectorscope, zebra, and A/B-compare modes. Those were never shipped, and the author has since scrubbed them from the docs - the changelog says so explicitly. So if you read an old write-up promising a waveform on ImageOps Preview, that's the ghost of a feature that never existed. The real mode list is just the four above. (An A/B reference input is on the roadmap, but don't hold your breath - "planned" has meant "not shipped" here before.)

Also worth separating: this output node is not the pack's famous embedded live preview. Every ImageOps processing node renders an instant in-node preview in the browser (via a JS renderer that walks the graph and replays the op on a canvas) so you can tweak sliders without queuing. That's a frontend trick with no queue. This node is the one that writes actual preview files for whole batches.

Installing it

Part of ComfyUI-Majoor-ImageOps:

cd ComfyUI/custom_nodes
git clone https://github.com/MajoorWaldi/ComfyUI-Majoor-ImageOps

or search "ComfyUI-Majoor-ImageOps" in ComfyUI Manager, restart, and hard-refresh the browser (Ctrl+F5, Cmd+Shift+R on macOS). No extra Python deps, no models to download - the animated modes use PIL, which is already there. ComfyUI ≥ 0.13.0 required.

Where people get burned

Animated previews write temp files into ComfyUI's temp directory, same as any save node - they accumulate, and there's no cleanup mechanism specific to this node, so clear your temp dir occasionally if you run long batches. And if the graph loads but the node shows nothing, check that your upstream is actually producing an IMAGE batch: the README notes that "some packs expose video via custom types," and frame sources behave best when they arrive as plain IMAGE batches.

Categoryimage/imageops

Inputs (4)

NameTypeDefaultDescription
preview_targetCOMBOauto3 options: auto, image, mask
modeCOMBOimages4 options: images, strip, animated_webp, animated_gif
imageoptIMAGE,VIDEOImages/Video input. Accepts IMAGE batches and VIDEO frame sources.
maskoptMASK

Outputs (2)

NameTypeDescription
imageIMAGE
maskMASK