Nodes/ComfyUI-STARWrapper/STAR Color Fix
ComfyUI Node

STAR Color Fix

Why your gorgeous upscale comes out the wrong color

By vjumpkung·Created 9 months ago·Updated 12 days ago· 3
STAR Color Fix
  • images
  • reference_images
  • images
methodAdaIN

Here's the thing nobody warns you about with generative video upscaling: the model will happily give you crisp, detailed, four-times-bigger frames that are a slightly different color than your source. STAR regenerates content, and regeneration drifts - contrast lifts, whites warm up, skin tones shift toward whatever the diffusion model thinks skin should look like. STAR Color Fix is the last node in the chain and it exists to drag those beautiful new frames back into your source video's color story before you save anything.

It takes three inputs: images (the raw enhanced frames straight out of STAR VAE Decode), reference_images (your original source frames - same ones you fed into STAR Prepare Video), and method (default AdaIN, with wavelet and none as alternatives). Out the other end: color-matched frames as a normal IMAGE batch, ready for SaveImage or a CreateVideo node. Both image inputs must have the same number of frames - the fix works frame-to-frame, matching each enhanced frame to its own original.

How the methods differ

  • AdaIN - adaptive instance normalization, the default. It matches each enhanced frame's per-channel mean and standard deviation to the corresponding source frame's, which is a fancy way of saying "keep STAR's detail, re-tint it to the source's brightness and palette." Fast, robust, usually exactly what you want. This is code the wrapper author adapted from sd-webui-stablesr's color-fix utility, a well-trodden path in this niche.
  • wavelet - splits each frame into frequency bands and rebuilds the enhanced frame's detail on top of the source's low-frequency color. Slightly more faithful in theory - it preserves more of the source's local color structure rather than just global stats - at the cost of being fussier. If AdaIN makes a scene look flat or washes out a strong color grade, this is the fallback.
  • none - skip correction entirely. Legitimately useful when your source is so degraded that matching its color just imports the problem: old film with a yellow cast, VHS with washed blacks. Sometimes the model's fresh color is the better starting point and you'd rather grade it yourself downstream.

Why it's its own node

The whole pack is split so you can change one thing without re-paying for everything upstream, and this node is the payoff. Color-fix method is the knob you'll genuinely fiddle with - "AdaIN looks flat here, try wavelet" - and because it's isolated at the end of the graph, changing it reruns only this cheap step, never the diffusion sampling. Compare that with the deprecated all-in-one STAR node the pack still ships, where a color tweak meant re-running the whole upscale. Iterating on color here is nearly free; iterate on colors there and you wait minutes per attempt.

Installing the pack

Search ComfyUI-STARWrapper in ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/vjumpkung/ComfyUI-STARWrapper
cd ComfyUI-STARWrapper
pip install -r requirements.txt

Restart ComfyUI after. Same pack-level requirements as the rest of the family: a recent ComfyUI build with the comfy_api.latest V3 API, CUDA PyTorch, a matching xformers, and the heavy dependency list (diffusers, open-clip-torch==2.20.0, opencv-python, numpy<2.3 pin and friends). First run downloads the ~2–3GB checkpoint and companion weights.

Troubleshooting

  • "images and reference_images must contain the same number of frames" - the classic. You loaded a trimmed clip for upscaling but fed the full original as reference, or vice versa. Frame counts must match exactly because the fix is per-frame.
  • Output still looks off-color - try wavelet if AdaIN flattened the grade; try none if your source's color is the problem and the enhanced version actually looks better.
  • Don't judge STAR's quality before this node - raw decode output is deliberately un-corrected. Evaluate after Color Fix or you'll be tweaking the model to fix a problem this node solves.

That's the whole pipeline: loader, prepare, text, sample, decode, fix. The color fix is the last wire, and it's the difference between an upscale that looks like a restored video and one that looks like an AI movie.

Categoryvideo/upscaling/STAR

Inputs (3)

NameTypeDefaultDescription
imagesIMAGERaw enhanced frames from STAR decode.
reference_imagesIMAGEOriginal source frames used as color reference.
methodCOMBOAdaIN3 options: AdaIN, wavelet, none

Outputs (1)

NameTypeDescription
imagesIMAGE