Nodes/ComfyUI/Post-Process SeedVR2 Output
ComfyUI Node Runs on cloud

Post-Process SeedVR2 Output

The node that stops SeedVR2 upscales from going orange

By Comfy-Org·Created 4 years ago·Updated about 5 hours ago· 128,055
Post-Process SeedVR2 Output
  • images
  • original_resized_images
  • images
color_correction_methodlab

Every diffusion upscaler has the same dirty secret: what comes out of the VAE decode never matches what went in. The geometry is off by a few pixels because the input got padded to a multiple of 16 for the VAE, and the colors drift because the model is busy inventing detail, not preserving your white balance. SeedVR2PostProcessing is the janitor at the end of the native ComfyUI SeedVR2 graph that fixes both. Without it you'd get a sharper image that's subtly bigger, cropped wrong, and tinted. With it, you get the upscale that keeps the input's tonal identity - which is most of the reason SeedVR2 became the community's default upscaler in the first place.

This is the second half of a matched pair. SeedVR2Preprocess pads the resized input (dropping any alpha channel), and Post-Process SeedVR2 Output reverses all of that: it crops the generated image back to the reference dimensions, re-applies the alpha from the original resized image, and - if you want - matches the output's color back to the source.

The three inputs, one of which matters

  • images - the generated image straight from the SeedVR2 VAE decode.
  • original_resized_images - the reference. This is the resized image before pre-processing, so wire it from your scale node, not from SeedVR2Preprocess's output. The padded version would color-match against padding edges and give you wrong results.
  • color_correction_method - the one you actually set, a combo with four options:

| Option | What it does | When | |---|---|---| | lab (default) | Transfer color in CIELAB space, luminance-weighted, preserving detail. Most faithful. | Always, until you have a reason not to. | | wavelet | Swaps only the low-frequency color of the reference in, keeping the upscaled high-frequency detail. | When the model added detail you like but the tint is off. | | adain | Matches per-channel mean/std. Fastest, but a global tint match. | Quick previews. | | none | Geometry alignment only, no color transfer. | You want the model's raw look, contrast lift and all. |

The output is a single images tensor you wire straight into SaveImage. It handles 4D and 5D (video) tensors, restores the batch/time structure from the reference, and crops to even dimensions on the way out.

How it's actually built

The color transfer runs on the VAE device, chunked to fit free VRAM, and if it OOMs it halves the chunk size and retries before giving up. So this stage is rarely where big upscales die - the decode in front of it is. Internally the work happens in the [-1, 1] space the model was trained in, then gets mapped back to [0, 1]. The LAB path is the most expensive (roughly 13× the per-frame memory of a raw copy, against ~6× for adain), which is why long videos process frame-by-frame.

Getting it and getting burned

It ships with ComfyUI core - the whole native SeedVR2 family (Preprocess, PostProcessing, Conditioning, TemporalChunk/Merge) landed together in July 2026, PR #14424. No install, no Manager. It needs the model files, though: the SeedVR2 checkpoint in models/diffusion_models/ and its VAE in models/vae/, from the Comfy-Org/SeedVR2 repo on Hugging Face. The community consensus, worth repeating: FP16 if it fits, FP8 tiles, GGUF does things to skin you don't want.

Where people get burned: feeding the wrong reference. This node does what you tell it - a reference that isn't the source image will happily transfer that image's colors into yours. And if your upscale comes out looking more "AI" than the input (the model's known contrast lift), lab or wavelet is the counter; none is where the lift survives.

Categoryimage/post-processors

Inputs (3)

NameTypeDefaultDescription
imagesIMAGEThe generated image to process.
original_resized_imagesIMAGEThe original resized image before pre-processing, used as reference.
color_correction_methodCOMBOlabMethod to match the generated image colors to the original image. lab: transfer color in CIELAB space, preserving detail (most faithful). wavelet: transfer low-frequency color, keeping upscaled high-frequency detail. adain: match per-channel mean/std (fastest, global tint). none: skip color transfer (geometry alignment only).

Outputs (1)

NameTypeDescription
imagesIMAGEThe aligned, color-corrected image.