SMC Compand Blend
Correction too aggressive? Dial it back toward the original.
- original_image
- processed_image
- mask
- IMAGE
SMC Compand Blend (class SMCCompandBlend) is the soft-landing node for the anchor-guided workflow. After SMC Anchor-Guided Compand has done its full-strength correction, this node lets you blend the result back toward the original - so you can take 70% of the fix instead of all of it.
That's genuinely useful, because the pack's heuristic correction is a blunt instrument. At full strength it can over-correct: colors pulled too far toward the anchor, geometry that reads a touch "shrunken" on a face that only mildly drifted. A partial blend keeps the correction's benefits - inward geometry, restored color, less crop-to-frame mismatch - while leaving the original's character mostly intact. This is the classic "softer finish" step, and it's also how you A/B a correction in place: run the blend at 1.0, look at both ends, then settle on a middle value.
Inputs
original_image- the pre-correction image.processed_image- the output of SMC Compand (or any corrected image, honestly).mask- where the blend applies. Outside the mask, the original wins.blend_strength(0–1, default 1.0) - how much ofprocessed_imageto keep. 1.0 = full correction, 0 = original, 0.5 = half and half.mask_blur_radius(0–64, default 6) - feathers the blend mask so the transition at the mask edge is gradual rather than a hard border.
Output
One IMAGE - the blended result.
Install & gotchas
Install via ComfyUI Manager (search "Stable Manifold Compander") or:
cd ComfyUI/custom_nodes
git clone https://github.com/xmarre/ComfyUI-StableManifoldCompander
No extra dependencies. The implementation is simple - it's the same masked lerp pattern you'll find in a dozen other packs, with alpha = mask * blend_strength and a blurred mask. The subtle bit: the original and processed images are assumed to be the same resolution, and only the RGB channels are blended, so if your corrected image came back at a different size you'll get silent weirdness. Also note the mask is resized to the image dimensions internally - draw it on the original and it'll be snapped to match. If you keep getting a visible edge, it's almost always mask_blur_radius being too small rather than the blend itself.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| original_image | IMAGE | — | |
| processed_image | IMAGE | — | |
| mask | MASK | — | |
| blend_strength | FLOAT | 1.000–1 | — |
| mask_blur_radius | INT | 60–64 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |