Nodes/ComfyUI-WaterMark-Detector/Flexible Combine Enhancements
ComfyUI Node

Flexible Combine Enhancements

Combine up to five enhancements — but the weights aren't in the UI

By hotpizzatactics·Created 2 years ago·Updated 2 years ago· 0
Flexible Combine Enhancements
  • original
  • enhanced1
  • enhanced2
  • enhanced3
  • enhanced4
  • enhanced5
  • IMAGE

Flexible Combine Enhancements looks like a strict upgrade to the pack's CombineEnhancements: instead of a fixed three enhanced inputs, it accepts up to five, all optional. Feed it one layer or five, and it blends them back onto your original. Flexible in the number of inputs, absolutely.

Here's the catch, and it's a real one: the per-layer weights (weight1 through weight5) live in the hidden section of the node's schema. Hidden inputs don't get widgets in the ComfyUI interface - they're passed as kwargs at runtime. What that means in practice is every enhanced input you connect gets the same flat weight of 0.2, and there is no slider anywhere to change that.

How it works

From the source, combine() collects whichever of enhanced1..5 are actually connected, grabs each one's weight (defaulting to 0.2), and does the same weighted blend as the rest of the pack:

combined = original * (1 - sum(weights)) + Σ (enhanced_i * weight_i)

The original's share is whatever's left over, so with one layer connected the original keeps 0.8; with three, it keeps 0.4 and each layer contributes 0.2. Result is clamped to 0–1. The implementation is tidy - it only blends what's plugged in, and it handles the zipping correctly.

The honest read

Calling it "Flexible" is half-true. The flexibility is real: optional inputs mean you can build one reusable node that does double duty for a two-layer and a four-layer blend without rewiring the graph. But the fixed weights mean you can't express "mostly CLAHE, a touch of texture." Every connected layer is a guest at the same table. If you need per-layer control, use the pack's plain CombineEnhancements (three layers, three real weight sliders) or ComprehensiveImageEnhancement (eight layers, full weight control). If you want a lot of layers at equal strength and don't want to fiddle, this is genuinely the one to grab.

Inputs and output

  • original - required IMAGE.
  • enhanced1enhanced5 - optional IMAGEs; leave any of them unconnected and they're skipped.

Output is a single IMAGE. All connected inputs need to match in resolution; mismatches surface as a zip error mid-execution.

Installing

Same as every node in this pack - no models, CPU-only:

cd ComfyUI/custom_nodes
git clone https://github.com/hotpizzatactics/ComfyUI-WaterMark-Detector

or find ComfyUI-WaterMark-Detector in ComfyUI Manager. install.py pip-installs torch, numpy, opencv-python, scipy, and PyWavelets; opencv is the only substantial one and you almost certainly already have it. Restart ComfyUI after installing.

Categoryimage/watermark

Inputs (6)

NameTypeDefaultDescription
originalIMAGE
enhanced1optIMAGE
enhanced2optIMAGE
enhanced3optIMAGE
enhanced4optIMAGE
enhanced5optIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE