Nodes/ComfyUI-SuperBeasts/Super Pop Residual Blend (SuperBeasts.AI)
ComfyUI Node

Super Pop Residual Blend (SuperBeasts.AI)

Dial your grade up and down live, without re-running the color model

By SuperBeastsAI·Created 2 years ago·Updated 2 months ago· 220
Super Pop Residual Blend (SuperBeasts.AI)
  • image
  • residual
  • images
  • filename_prefix
strength1.00

Super Pop Residual Blend is the tuning fork for the SuperBeasts color workflow: it lets you try different strengths of the Super Pop Color Adjustment grade without ever re-running the color model. Run the model once, capture its residuals output, and then blend those residuals onto the original image at any strength you like - 0.5, 1.5, whatever - in a fraction of the time a fresh model pass would take.

This is one of those "obvious once you see it" pieces of workflow design, and it's worth understanding why it exists. The expensive part of Super Pop isn't the blending, it's the 512×512 patch inference that predicts the residual. If you had to re-run the whole node every time you wanted to test strength 0.8 vs 1.2, you'd wait seconds to minutes per variant. By separating "compute the correction once" from "decide how strong," you can A/B strengths interactively in the same graph without the wait.

How it works

A residual, in this context, is the per-pixel difference between the corrected image and the original - think of it as a color/levels offset map the model predicted. Super Pop Color Adjustment outputs these as its third socket, typed SPCA_RESIDUAL. This node takes that, plus the original image batch, and computes:

output = clamp(original + residual × strength, 0, 1)

Nothing is re-predicted. It's pure tensor math - the residual just gets scaled and added back. That means two things: it's fast (blend speed, not inference speed), and it can't improve on what the model predicted, only apply it more or less strongly. You're choosing the amount of the grade, not the grade itself.

There's also a small correctness detail in the code: it quantizes the source image to 8-bit before blending, to match the rounding Super Pop itself used when it produced the residual. That's invisible to you and prevents a subtle mismatch that would otherwise shift the final color slightly.

The inputs that matter

Just three:

  • image - the original image batch, same one you fed into Super Pop Color Adjustment.
  • residual - the SPCA_RESIDUAL output from that node. Wire the third output socket over.
  • strength (default 1.0, range −100 to 100) - the dial. 0 is the original, 1.0 is the full grade, values above 2.0 clip into stylized territory (as with the main node). Negative values invert the grade, which is occasionally fun.

Outputs are images (the blended batch) and filename_prefix (a SPCA_<strength>_ string for Save Image). Nothing else to configure - this is deliberately a one-knob node.

Where it fits

The canonical setup: SB Load Model → Super Pop Color Adjustment → Super Pop Residual Blend, with the blend node's residual socket fed from Super Pop's third output. You tune strength here instead of re-queuing the graph. The pack's docs specifically recommend it for experimenting with strength without repeated model runs, and it pairs naturally with Super Pop's count batching (which gives you a spread of pre-rendered strengths, while this gives you arbitrary live ones).

Install

Same pack as Super Pop:

cd ComfyUI/custom_nodes
git clone https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts

Restart ComfyUI, or install via ComfyUI Manager (search "SuperBeasts"). No extra dependencies.

Common issues

The mismatch error is the one to know: if the number of residuals doesn't match the number of images, the node raises a clear "Mismatch between number of images and residuals" error. Feed it the same batch you ran through Super Pop - that's the only supported pairing. One residual with many images is handled (it broadcasts), but many residuals with one image isn't. And remember this only re-applies an existing grade; if you change the source image, you must re-run Super Pop to get fresh residuals, or you'll be blending an outdated correction onto new pixels.

CategorySuperBeastsAI/Image

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
residualSPCA_RESIDUAL
strengthFLOAT1.00-100–100

Outputs (2)

NameTypeDescription
imagesIMAGE
filename_prefixSTRING