Nodes/ComfyUI-42lux/Flux Highres Fix Scaler
ComfyUI Node

Flux Highres Fix Scaler

ComfyUI Node Guide

By 42lux·Created 2 years ago·Updated 12 months ago· 24
Flux Highres Fix Scaler
  • image
  • vae
  • mask
  • LATENT
target_resolution
upscale_method
noise_scale0.40
blend_opacity20

Hi-res fix is one of those techniques everyone tells you to use and almost nobody explains cleanly: generate at a comfortable native resolution, upscale the pixels, feed that back into the model for a second pass at low denoise so it adds real detail instead of just stretching what's there. Doing it by hand in ComfyUI is a small chain of nodes - an image upscale, a VAE encode, some noise mixing. This node collapses that chain into one, and it's the one the README calls "HighResFix Apply: all-in-one node for high-resolution generation."

Why bother instead of generating big in the first place? Flux is comfortable up to roughly 2 megapixels natively; push much past that in a single pass and you're spending a lot more compute per step without a guaranteed quality win. The two-stage approach - generate small, then scale up with a second refining pass - is the standard workaround, and it's why this node's target_resolution options start at 4MP and go to 7MP: it's meant to be the second stage, not your first.

The inputs that matter:

  • image and vae - feed it the decoded output of your first pass, plus the VAE your pipeline is already using (Flux's ae.safetensors, most likely).
  • target_resolution - 4MP through 7MP. Pick based on how big you actually want the final image, not just "bigger is better" - bigger targets cost more time on the second KSampler pass too.
  • upscale_method - the classic interpolation choices (lanczos, bicubic, bilinear, area, nearest-exact). Lanczos or bicubic for photographic work; nearest-exact only if you specifically want to preserve hard pixel edges.
  • noise_scale (default 0.4) - how much noise gets mixed back into the re-encoded latent before your second sampling pass. This is functionally your hires-fix denoise strength. Classic hires-fix wisdom applies here too: too high and you're regenerating the composition instead of refining it - keep it modest and nudge up only if the result still looks soft.
  • blend_opacity (default 20) - how strongly the refined pass gets blended back in. There's no author's note spelling out the exact math beyond the field name, so treat it as a dial to experiment with rather than a fixed rule - start at the default and adjust by feel.
  • mask (optional) - restrict the whole effect to part of the image instead of the full frame, if you only want detail added to a specific region.

It outputs a single LATENT, ready to go straight into a second KSampler at a low denoise value, then a VAEDecode for your final image.

Installing it. Search "ComfyUI-42lux" in ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/42lux/ComfyUI-42lux

Restart ComfyUI afterward. It's part of the same lightweight pack as 42lux's other Flux nodes - no separate model downloads, no heavy dependencies to fight with.

Where people get tripped up:

  • The output changed the whole composition, not just detail - that's noise_scale set too aggressively. Pull it back toward the default and give it another pass.
  • The result looks flat or soft instead of sharper - either upscale_method is too soft for your source, or noise_scale is too low to let the second pass do anything real.
  • You wired a VAE that doesn't match what encoded your original image - a mismatched VAE is a generic ComfyUI failure mode, not specific to this node, but it'll wreck your output here just the same.
  • No mask wired in means the entire frame gets refined, which is what you want most of the time - just don't be surprised if a targeted-detail workflow needs that optional input explicitly connected.
Category42lux

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
vaeVAE
target_resolutionCOMBO4 options: 4MP, 5MP, 6MP, 7MP
upscale_methodCOMBO5 options: nearest-exact, bilinear, area, bicubic, lanczos
noise_scaleFLOAT0.400–100
blend_opacityINT200–100
maskoptMASK

Outputs (1)

NameTypeDescription
LATENTLATENT