Nodes/comfyui-ralu-sampling/SD3TwoStageDenoise
ComfyUI Node

SD3TwoStageDenoise

The 'just run SD3 RALU' node

By Milkyawaway·Created 3 months ago·Updated 3 months ago· 0
SD3TwoStageDenoise
  • model
  • conditioning
  • latent
  • noise_state
  • negative_conditioning
  • latent
  • debug_info
lowres_steps10
highres_steps20
e_transition0.35
downscale_factor2
cfg_scale5.00
use_ralu_defaulttrue
end_sigma0.00

If SD3LowResDenoise and SD3HighResDenoise are the microscope slides, this is the microscope: SD3TwoStageDenoise runs both stages of the SD3 RALU pipeline in a single node, with the latent handoff handled internally. You get the same low-res-then-high-res denoise - half-res coarse pass, upsample, Cholesky-correlated noise, full-res finish - without the two-node choreography.

The one thing worth understanding before you use it is the use_ralu_default toggle, because it silently decides which of your settings actually count.

The default-lock gotcha

Flip use_ralu_default to true (the default) and the node ignores your lowres_steps, highres_steps, and e_transition values and locks in the researched presets: N=[10, 20] steps and e1=0.35, with the Z=6.317 shared with FLUX RALU level 4. It's not being sneaky about it - the debug_info output literally reports your requested values next to the resolved ones, including a steps_locked_by_default flag. Turn use_ralu_default off and your explicit steps and transition are used instead.

Why does the lock exist? Because this pack is an export of experiments, and the experiments were tuned to those presets. If you're just trying SD3 RALU, leave it on. When you want to poke at the schedule - which is the whole point of a research pack - flip it off.

Inputs and outputs

  • latent + noise_state - empty SD3 latent and RALUNoiseSource output, same as the two-node version.
  • lowres_steps (10), highres_steps (20), e_transition (0.35) - only honored when use_ralu_default is off.
  • downscale_factor - fixed at 2, don't touch it.
  • cfg_scale (5.0) - SD3's CFG knob; real.
  • end_sigma (0) - stop-denoising point for the high-res stage.
  • negative_conditioning - optional, SD3 can use it.

Outputs: latent (decode with your SD3 VAE) and debug_info - this node's is the most verbose in the pack, showing resolved versus requested steps, the transition, and sub-reports from both stages. Read it once to see what the defaults actually did.

Installing

cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/Milkyawaway/comfyui-ralu-sampling.git
cd /path/to/ComfyUI
python -m pip install opencv-python numpy typing-extensions
python main.py

ComfyUI Manager search "comfyui-ralu-sampling", restart. Model files as usual - sd3.5_large.safetensors plus its text encoders in the standard folders.

Common issues

  • Changing steps and seeing no difference - that's the default-lock. Check debug_info; if steps_locked_by_default is true, either that's the behavior you want or flip use_ralu_default off.
  • Grid artifacts - expected on this path; the author's README is upfront that the SD3 side is "a two-stage approximation" built to study SD3's regular latent-grid limitations. The FLUX side is the more faithful RALU implementation.
  • No nodes in the palette - old ComfyUI; this pack registers via comfy_api.latest, so update.
  • Family confusion - this node doesn't take a family input; it's SD3-only by construction.

Bottom line: if you want to say "I ran SD3 with RALU sampling" without debugging a five-node graph, this is the node. Leave the defaults on, wire a prompt and an empty latent, and read the debug string if you're curious about what actually happened.

Categorysampling/custom_sampling/sd3_ralu

Inputs (12)

NameTypeDefaultDescription
modelMODEL
conditioningCONDITIONING
latentLATENT
noise_stateNOISE
lowres_stepsINT101–10000
highres_stepsINT201–10000
e_transitionFLOAT0.350.01–0.99
downscale_factorINT22–2
cfg_scaleFLOAT5.000–100
use_ralu_defaultBOOLEANtrue
end_sigmaFLOAT0.000–1
negative_conditioningoptCONDITIONING

Outputs (2)

NameTypeDescription
latentLATENT
debug_infoSTRING