None if same Image
Compare two images and hand back a 'nothing changed' signal
- image
- compare
- IMAGE
- is_same
The name tells you the trick: if two images are the same, this node gives you back a "None" stand-in and a True flag instead of a duplicate. If they differ, it passes the first image through untouched. It's a change-detection node, and its natural home is any loop or batch workflow where you want to act only when something actually changed.
Think about what that buys you. In a frame-to-frame video or animation pipeline, you often reprocess a previous output - but if the frame didn't change, rerunning the whole chain is wasted time and VRAM. This node gives you the boolean to gate on: is_same feeds a switch that says "skip the heavy node, keep what we had," and the IMAGE output keeps your graph from breaking by always emitting something.
How it works
The comparison is exact: torch.equal(image, compare). Both inputs are optional, which makes the edge cases deliberate rather than accidental. Both empty → you get a small black 32×32 image and is_same = False. Only one connected → the connected one passes through, False. Both connected and identical → black placeholder out, is_same = True. Both connected and different → the first image out, is_same = False.
The thing to internalize: "same" here means bit-for-bit identical tensors. This is not perceptual similarity.
Inputs and outputs
image(IMAGE, optional) - the primary image, passed through when things differ.compare(IMAGE, optional) - the reference to test against.IMAGE(IMAGE) - your image, or a black 32×32 placeholder when they matched.is_same(BOOL) -Truewhen the two were identical.
Wire is_same into a switch or conditional gate to skip downstream work, and route IMAGE either to the next stage or into a preview so you can see what the node decided.
Installing it
It ships in ComfyUI Fictiverse Nodes, a dependency-free single-author utility pack - no Python packages beyond ComfyUI's own stack, no model files.
- ComfyUI Manager → search ComfyUI Fictiverse Nodes → Install, restart.
- Or:
cd ComfyUI/custom_nodes && git clone https://github.com/Fictiverse/ComfyUI_Fictiverse, restart.
Common issues
The exact-match behavior is the trap, and it's worth spelling out. If your two images went through any lossy step - a JPEG encode, a bilinear resize, even a different resize path with a rounding difference - they will never be torch.equal, and the node will always report "different." That's usually what you want when both sides come from the same controlled pipeline (same save format, same resolution, same run), and useless if you're comparing an image against a re-uploaded copy. Compare like for like, or you'll wonder why change detection never fires.
And the pack-level note: because Fictiverse nodes appear in shared animate/video workflows, the most common "this node is broken" report is actually a missing install - ModuleNotFoundError: No module named 'custom_nodes.ComfyUI_Fictiverse' when you load a workflow that references the pack. Install it, restart, reload.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| imageopt | IMAGE | — | |
| compareopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| is_same | BOOL | — |