Nodes/RES4LYF/LatentPhaseMagnitudeMultiply
ComfyUI Node Runs on cloud

LatentPhaseMagnitudeMultiply

Scale a latent's structure and texture, per channel

By ClownsharkBatwing·Created 2 years ago·Updated 18 days ago· 1,222
LatentPhaseMagnitudeMultiply
  • latent_0_batch
  • phase_luminositys
  • phase_cyan_reds
  • phase_lime_purples
  • phase_pattern_structures
  • magnitude_luminositys
  • magnitude_cyan_reds
  • magnitude_lime_purples
  • magnitude_pattern_structures
  • LATENT
phase_luminosity1.000
phase_cyan_red1.000
phase_lime_purple1.000
phase_pattern_structure1.000
magnitude_luminosity1.000
magnitude_cyan_red1.000
magnitude_lime_purple1.000
magnitude_pattern_structure1.000
latent_0_normalfalse
latent_out_normalfalse

Break a latent's channels down into phase (structure) and magnitude (texture/energy) and you get eight independent dials to turn - one phase and one magnitude per channel, times four channels. LatentPhaseMagnitudeMultiply is the simplest of RES4LYF's phase/magnitude family: it doesn't blend two latents together, it just scales one latent's own phase and magnitude, channel by channel, by a multiplier you set.

If LatentPhaseMagnitude is the "combine two sources" tool, this is the "adjust one" tool - closer to an equalizer than a mixer. Push magnitude_pattern_structure up to amplify high-frequency detail energy in that channel; push phase_luminosity toward zero to flatten that channel's structural signal without touching the others.

How it works

A standard SD/SDXL-style latent has four channels - luminosity, cyan-red, lime-purple, and pattern-structure - and each gets decomposed into phase and magnitude. This node multiplies each channel's phase and magnitude by its own float, all defaulting to 1 (no change). latent_0_normal and latent_out_normal toggle normalization on the way in and out.

The inputs and outputs that matter

  • latent_0_batch - the single latent you're adjusting.
  • phase_luminosity, phase_cyan_red, phase_lime_purple, phase_pattern_structure - multipliers on each channel's structural component. All default to 1.
  • magnitude_luminosity, magnitude_cyan_red, magnitude_lime_purple, magnitude_pattern_structure - multipliers on each channel's texture/energy component, same defaults.
  • latent_0_normal / latent_out_normal (default false) - normalization toggles, off by default here (unlike the two-latent version, which defaults them on).
  • Optional SIGMAS variants of every phase/magnitude float, for scheduling a value across steps instead of holding it fixed.
  • Output: LATENT - the adjusted latent.

How to install it

Via ComfyUI Manager, search "RES4LYF" and install. Manually, from ComfyUI/custom_nodes:

git clone https://github.com/ClownsharkBatwing/RES4LYF/
cd RES4LYF
pip install -r requirements.txt

Activate a venv first if you're using one; on portable installs, swap pip for python_embedded\Scripts\pip.exe. Restart ComfyUI once installed.

Common issues & troubleshooting

Everything at 1 and nothing happens. That's correct behavior, not a bug - a multiplier of 1 is a no-op by construction. You have to move a value away from 1 to see any effect; start with something obvious like 0 (kill that channel's phase or magnitude entirely) or 2-3 (exaggerate it) before dialing in something subtler.

Values above 1 blow the image out or introduce artifacts. Magnitude channels represent energy - pushing them well past 1 is closer to overdriving a signal than adding detail, and you'll see it as noise or blown contrast rather than a clean intensification. Move in small increments once you're past a rough working range.

You want to shift rather than scale. Multiplying is not the same operation as adding - if you're trying to nudge a channel by a fixed amount regardless of its current value, use LatentPhaseMagnitudeOffset instead. If you want a nonlinear curve rather than a straight scale, LatentPhaseMagnitudePower is the sibling for that.

No community write-ups exist for this node specifically. It's deep, undocumented territory even by this pack's standards. Treat the defaults as your baseline, change one channel at a time on a fixed seed, and lean on that comparison rather than a written guide - there isn't one yet.

CategoryRES4LYF/latents

Inputs (19)

NameTypeDefaultDescription
latent_0_batchLATENT
phase_luminosityFLOAT1.000-10000–10000
phase_cyan_redFLOAT1.000-10000–10000
phase_lime_purpleFLOAT1.000-10000–10000
phase_pattern_structureFLOAT1.000-10000–10000
magnitude_luminosityFLOAT1.000-10000–10000
magnitude_cyan_redFLOAT1.000-10000–10000
magnitude_lime_purpleFLOAT1.000-10000–10000
magnitude_pattern_structureFLOAT1.000-10000–10000
latent_0_normalBOOLEANfalse
latent_out_normalBOOLEANfalse
phase_luminositysoptSIGMAS
phase_cyan_redsoptSIGMAS
phase_lime_purplesoptSIGMAS
phase_pattern_structuresoptSIGMAS
magnitude_luminositysoptSIGMAS
magnitude_cyan_redsoptSIGMAS
magnitude_lime_purplesoptSIGMAS
magnitude_pattern_structuresoptSIGMAS

Outputs (1)

NameTypeDescription
LATENTLATENT