Nodes/Forbidden Vision/Forbidden Vision 💎 Refiner
ComfyUI Node

Forbidden Vision 💎 Refiner

One node that actually fixes washed-out colors

By luxdelux7·Created about a year ago·Updated about a month ago· 101
Forbidden Vision 💎 Refiner
  • latent
  • vae
  • image
  • refined_latent
  • refined_image_preview
enable_upscalefalse
upscale_modelSimple: Bicubic (Standard)
upscale_factor1.20
neural_correctortrue
corrector_tone1.00
corrector_color0.70
depth_relightfalse
depth_relight_stringth0.30
depth_dof_enablefalse
depth_dof_strength0.40
depth_dof_focus0.75
depth_dof_modelV2-Small
maintain_aspect_ratiotrue
enforce_mod32_boundariestrue
use_tiled_vaefalse
tile_size512
offload_models_to_cputrue

Half the reason people stop sharing a first pass is that it looks flat: muddy shadows, washed-out highlights, colors that lean too warm or too dead. The Refiner (LatentRefiner) is Forbidden Vision's answer to that - a single node that analyzes an image with a custom-trained neural corrector and fixes exposure, black levels, and tone automatically, then optionally upscales it and even fakes depth of field. It's the pack's second-most-used node for a reason: you can drop it after any sampler, hit go, and the output simply looks more finished.

How it works

The core is the neural corrector, a model trained on curated pairs to reproduce the color-and-exposure adjustments the author used to do by hand. It runs a YUV-based analysis, lifts shadows, protects highlights from clipping, and balances color. Two strength dials blend between your original and the fully-corrected result: corrector_tone (default 1.0, full power) and corrector_color (default 0.7). If the image comes out too bright or too dark in places, pull corrector_tone down; if the "temperature" shifts, lower corrector_color. That's the entire tuning model - two sliders.

On top of that sit three optional extras, all off by default:

  • Upscaling - enable_upscale + upscale_factor (the author's pick is 1.2 before a second diffusion pass). It loads any upscaler from your upscale_models folder, with a plain Bicubic fallback.
  • AI relight - depth_relight gently brightens the foreground subject using a depth map, useful for lifting a face without flattening shadows.
  • Depth of field - depth_dof_enable blurs background and foreground around a computed focus plane. depth_dof_focus (0.5–0.99) sets where that plane sits; depth_dof_model chooses Depth Anything V2-Small (faster, less VRAM) or V2-Base (more stable). The depth-estimation lineage here is solid - Depth Anything V2 is the standard modern monocular depth estimator, not an obscure hack.

Inputs, outputs, and where it goes

The node accepts a latent, an image, or both, plus a vae. The convenience design: if you feed it a latent it decodes it (with caching so repeated runs don't re-decode), processes the pixels, and if a vae is connected it re-encodes the result - so it works mid-workflow and as a final enhancer. Outputs are refined_latent and refined_image_preview.

The two quirks to know about:

  • use_tiled_vae - if you're re-encoding a high-res image, tiled VAE encoding avoids seams and cuts VRAM. tile_size default 512; bigger tiles are faster but hungrier.
  • maintain_aspect_ratio and enforce_mod32_boundaries - the node may crop a few edge pixels to keep the output a multiple of 32 and unstretched. Leave them on.

The README's suggested slot is a pre-pass before your second sampling stage: refine the tone first, then resample on top of a correctly-graded image. The neural corrector model auto-downloads on first run with the rest of the pack. One honest note: the corrector is marked experimental by the author, and tone corrections are taste - if it's too aggressive for your checkpoint, the tone/color sliders are there to dial it back rather than off.

CategoryForbidden Vision

Inputs (20)

NameTypeDefaultDescription
enable_upscaleBOOLEANfalse
upscale_modelCOMBOSimple: Bicubic (Standard)1 options: Simple: Bicubic (Standard)
upscale_factorFLOAT1.201–8
neural_correctorBOOLEANtrue
corrector_toneFLOAT1.000–1
corrector_colorFLOAT0.700–1
depth_relightBOOLEANfalse
depth_relight_stringthFLOAT0.300–1
depth_dof_enableBOOLEANfalse
depth_dof_strengthFLOAT0.400–1
depth_dof_focusFLOAT0.750.5–0.99
depth_dof_modelCOMBOV2-Small2 options: V2-Small, V2-Base
maintain_aspect_ratioBOOLEANtrueIf Enabled: Crops edges slightly to fit grid without stretching.
enforce_mod32_boundariesBOOLEANtrueForces output resolution to be a multiple of 32.
use_tiled_vaeBOOLEANfalse
tile_sizeINT512256–2048
offload_models_to_cpuBOOLEANtrueMove neural corrector and depth models from VRAM to RAM after processing. Frees GPU memory for other nodes (e.g. checkpoint swaps in queued workflows). Disable if you're chaining many refiner passes and want to skip the small reload overhead.
latentoptLATENT
vaeoptVAE
imageoptIMAGE

Outputs (2)

NameTypeDescription
refined_latentLATENT
refined_image_previewIMAGE