LatentPhaseMagnitudeMultiply
Scale a latent's structure and texture, per channel
- 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
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(defaultfalse) - normalization toggles, off by default here (unlike the two-latent version, which defaults them on).- Optional
SIGMASvariants 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.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| latent_0_batch | LATENT | — | |
| phase_luminosity | FLOAT | 1.000-10000–10000 | — |
| phase_cyan_red | FLOAT | 1.000-10000–10000 | — |
| phase_lime_purple | FLOAT | 1.000-10000–10000 | — |
| phase_pattern_structure | FLOAT | 1.000-10000–10000 | — |
| magnitude_luminosity | FLOAT | 1.000-10000–10000 | — |
| magnitude_cyan_red | FLOAT | 1.000-10000–10000 | — |
| magnitude_lime_purple | FLOAT | 1.000-10000–10000 | — |
| magnitude_pattern_structure | FLOAT | 1.000-10000–10000 | — |
| latent_0_normal | BOOLEAN | false | — |
| latent_out_normal | BOOLEAN | false | — |
| phase_luminositysopt | SIGMAS | — | |
| phase_cyan_redsopt | SIGMAS | — | |
| phase_lime_purplesopt | SIGMAS | — | |
| phase_pattern_structuresopt | SIGMAS | — | |
| magnitude_luminositysopt | SIGMAS | — | |
| magnitude_cyan_redsopt | SIGMAS | — | |
| magnitude_lime_purplesopt | SIGMAS | — | |
| magnitude_pattern_structuresopt | SIGMAS | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |