Nodes/radiance/Multipass Extract (Legacy)
ComfyUI Node

Multipass Extract (Legacy)

Multipass Extract is retired — here's what replaced it

By FXTD-Studios·Created 8 months ago·Updated about 18 hours ago· 246
Multipass Extract (Legacy)
  • beauty
  • depth_map
  • normal_map
  • prev_frame
  • source_passes
  • passes
  • beauty
  • albedo
  • normal_map
  • depth
  • roughness
  • specular
  • metallic
  • ao
  • emission
  • transmission
  • highpass
  • world_position
  • curvature
  • shadow_mask
  • midtone_mask
  • highlight_mask
  • reflection_mask
  • motion_vector
  • segmentation_id
  • motion_visualization
  • alpha
◄luma_weightsRec.709 / sRGB►
◄auto_depth_modeldisabled►
◄depth_near_is_whitetrue►
◄depth_scale10.0►
◄fov_degrees60►
◄dsine_model_pathauto►
◄normal_strength2.0►
◄normal_conventionOpenGL (Y-Up)►
◄albedo_shading_radius80►
◄albedo_eps0.0010►
◄specular_floortrue►
◄roughness_fine_radius2.0►
◄roughness_coarse_radius15►
◄transmission_sensitivity2.00►
◄highpass_radius8.0►
◄highpass_strength1.0►
◄highpass_contrast1.0►
◄shadow_threshold0.20►
◄highlight_threshold0.75►
◄mask_softness0.15►
◄ao_radius15►
◄ao_strength1.0►
◄ao_samples8►
◄lk_window_radius7►
◄motion_coherence0.50►
◄batch_is_sequencefalse►
◄object_id_segments16►
◄object_id_spatial_weight0.25►

If you opened a workflow from a tutorial and this node came up red, nothing is broken in your install. Multipass Extract (Legacy) - RadianceMultipassMaster in the Radiance pack - is a retired node. It's hidden from the Add Node menu (DEPRECATED in the source), it still loads inside old graphs so those graphs don't lose their wiring, and it refuses to run. Executing it raises a message that names its replacements.

That's deliberate. The author's own stop message says the quiet part out loud: the albedo, specular, roughness, metallic, emission, transmission, reflection and object-ID passes this node produced "were image filters, not measurements, and its depth-derived passes had no real scale." Read that back and it's a warning about the whole genre - the outputs looked like a render layer stack while actually being contrast tricks and blurs driven by a depth map whose units were a guess. In a comp, that's worse than nothing, because it's plausible.

For context: this is the corner where ComfyUI meets an actual VFX pipeline. The rest of the ecosystem treats the pixels as the product; a comp pipeline wants passes with physical meaning, scene-linear float, and a colour management story. Radiance exists to be that bridge - the KB's post-processing.md covers that handoff and why it stays niche.

What to use instead

Two nodes, and the right one depends on where your passes come from.

  • Multipass Estimate if you're starting from a plate - a photo, a generated frame, footage. It estimates geometry with MoGe-2 and materials/lighting with Marigold, so the normals, roughness and lighting passes are model predictions with units attached rather than filters over the beauty. Be warned, per the pack's KNOWN_ISSUES: these are estimates. MoGe-2's metric scale is typically within 10–20% indoors, Marigold was trained mostly on synthetic interiors (it can call a painted wall slightly metallic), and video is estimated frame by frame, so a fixed seed limits flicker rather than removing it. Expect large model downloads too - the README flags Multipass Estimate as "substantially larger" than SDR → HDR.
  • Read AOVs if your passes come from a renderer. Real EXR AOVs are ground truth. Nothing you estimate will beat them, and if you have them you should never be estimating.

Then feed the result into Multipass Relight if the goal was always to move the key light.

What it used to do, if you're just curious

The old node took beauty as its only required input, plus optional depth_map, normal_map, prev_frame and source_passes (an internal RADIANCE_PASSES type the newer nodes still speak). Everything else was tuning: auto_depth_model (Depth Anything V2 Small/Base/Large, downloaded on demand) if you had no depth to give it, luma_weights to pick Rec.709, ACEScg or Rec.2020 luminance, fov_degrees and depth_scale to give synthetic geometry a scale, normal_strength and normal_convention for the shaded normals, and a pile of radius and sensitivity knobs behind the albedo, roughness and highpass passes.

None of it is worth tuning now. Don't rebuild a pipeline on it, and don't go hunting for the weights - the Depth Anything V2 checkpoint it wanted is the same one every ControlNet depth preprocessor uses. If you just need depth, get it from the standard depth-tools pack and use Depth Anything V2 Large, which the KB's depth-anything panel still has as the daily-driver default.

Install (same as the rest of the pack)

The node ships with Radiance, so you install the pack once and it's there in old graphs.

Use ComfyUI Manager, search Radiance, install, restart, refresh the browser. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/fxtd-studios/radiance.git
cd radiance
python -m pip install -r requirements.txt

Windows portable users should run that pip line with ComfyUI's bundled python_embeded\python.exe. The dependencies that matter here are heavy: OpenEXR and OpenImageIO for EXR/DPX, opencolorio for colour management, plus diffusers and accelerate for the Marigold models Multipass Estimate loads. If pip installs into a different Python from the one running ComfyUI, you get import errors at startup - the most common install failure in this pack.

Bottom line

Retired means retired. Swap it for Multipass Estimate (plate) or Read AOVs (renderer), wire the outputs into Multipass Relight if you only wanted a light change, and move on.

CategoryFXTD STUDIOS/Radiance/VFX

Inputs (33)

NameTypeDefaultDescription
beautyIMAGE—
depth_mapoptIMAGE—
normal_mapoptIMAGE—
prev_frameoptIMAGE—
source_passesoptRADIANCE_PASSES—
luma_weightsoptCOMBORec.709 / sRGB3 options: Rec.709 / sRGB, ACEScg / AP1, Rec.2020
auto_depth_modeloptCOMBOdisabled4 options: disabled, Depth Anything V2 — Small (99 MB, fast), Depth Anything V2 — Base (390 MB, balanced), Depth Anything V2 — Large (1.3 GB, highest quality)
depth_near_is_whiteoptBOOLEANtrue—
depth_scaleoptFLOAT10.00.01–1000—
fov_degreesoptFLOAT6010–120—
dsine_model_pathoptSTRINGauto—
normal_strengthoptFLOAT2.00.1–20—
normal_conventionoptCOMBOOpenGL (Y-Up)2 options: OpenGL (Y-Up), DirectX (Y-Down)
albedo_shading_radiusoptFLOAT8010–300—
albedo_epsoptFLOAT0.00100.0001–0.1—
specular_flooroptBOOLEANtrue—
roughness_fine_radiusoptFLOAT2.01–10—
roughness_coarse_radiusoptFLOAT153–60—
transmission_sensitivityoptFLOAT2.000.5–10—
highpass_radiusoptFLOAT8.00.1–100—
highpass_strengthoptFLOAT1.00.1–10—
highpass_contrastoptFLOAT1.00.1–5—
shadow_thresholdoptFLOAT0.200–0.6—
highlight_thresholdoptFLOAT0.750.4–1—
mask_softnessoptFLOAT0.150.01–0.5—
ao_radiusoptFLOAT150–100—
ao_strengthoptFLOAT1.00–4—
ao_samplesoptINT84–32—
lk_window_radiusoptINT71–32—
motion_coherenceoptFLOAT0.500–0.95—
batch_is_sequenceoptBOOLEANfalse—
object_id_segmentsoptINT162–64—
object_id_spatial_weightoptFLOAT0.250–2—

Outputs (22)

NameTypeDescription
passesRADIANCE_PASSES—
beautyIMAGE—
albedoIMAGE—
normal_mapIMAGE—
depthIMAGE—
roughnessIMAGE—
specularIMAGE—
metallicIMAGE—
aoIMAGE—
emissionIMAGE—
transmissionIMAGE—
highpassIMAGE—
world_positionIMAGE—
curvatureIMAGE—
shadow_maskIMAGE—
midtone_maskIMAGE—
highlight_maskIMAGE—
reflection_maskIMAGE—
motion_vectorIMAGE—
segmentation_idIMAGE—
motion_visualizationIMAGE—
alphaIMAGE—