LatentPhaseMagnitudeOffset
Nudge 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
This is the additive member of RES4LYF's phase/magnitude family. Where LatentPhaseMagnitudeMultiply scales a latent channel's structure and texture by a factor, LatentPhaseMagnitudeOffset shifts it by a fixed amount instead - same eight per-channel dials (phase and magnitude, across luminosity, cyan-red, lime-purple, and pattern-structure), different arithmetic underneath.
The distinction is worth knowing before you touch it: multiplying is proportional (a channel that's already near zero barely moves even at a big multiplier), while adding is not (it shifts everything by the same amount regardless of where it started). If you want a consistent nudge across very different latents, offset behaves more predictably than multiply does.
How it works
Same four-channel phase/magnitude decomposition as the rest of the family. Each of the eight phase_*/magnitude_* floats gets added to its corresponding channel's phase or magnitude value. latent_0_normal and latent_out_normal control normalization in and out.
One thing worth flagging plainly: every one of these fields ships with a default of 1, the same defaults as the Multiply node's - which is a sensible no-op for a multiplier but not obviously one for an offset. Don't assume 1 means "no change" here the way it does on the Multiply sibling; if you want a genuine no-op baseline to compare against, try 0 first.
The inputs and outputs that matter
latent_0_batch- the latent you're adjusting.phase_luminosity,phase_cyan_red,phase_lime_purple,phase_pattern_structure- additive shifts to each channel's structural component.magnitude_luminosity,magnitude_cyan_red,magnitude_lime_purple,magnitude_pattern_structure- additive shifts to each channel's texture/energy component.latent_0_normal/latent_out_normal(defaultfalse) - normalization toggles.- Optional
SIGMASvariants of each float, for scheduling the offset across steps rather than holding it fixed. - Output:
LATENT- the shifted latent.
How to install it
Via ComfyUI Manager, search "RES4LYF" and install. Or manually from ComfyUI/custom_nodes:
git clone https://github.com/ClownsharkBatwing/RES4LYF/
cd RES4LYF
pip install -r requirements.txt
Activate your venv first if you have one; on portable builds, use python_embedded\Scripts\pip.exe instead of pip. Restart ComfyUI once it's installed.
Common issues & troubleshooting
Left everything at default and the image looks wrong. See above - the defaults here are all 1, inherited from the same schema as the Multiply and Power siblings, and there's no guarantee that's a no-op for an additive node. Set every field to 0 first to establish what "unchanged" actually looks like on your workflow, then move from there.
Small offsets do nothing, big ones blow things out. Phase and magnitude aren't on an intuitive human scale - expect to sweep by whole units rather than fractions to see an effect, and expect large offsets to introduce noise or contrast artifacts rather than a clean shift, since you're pushing raw frequency-domain values around directly.
You wanted proportional scaling instead. That's LatentPhaseMagnitudeMultiply - reach for it if you want a channel that's already near zero to stay near zero rather than jump by a fixed amount.
No community documentation exists for this node. It's obscure even by this pack's standards, with nothing written up outside the parameter names themselves. Change one channel at a time on a fixed seed and compare against a 0-offset baseline rather than looking for a guide.
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 | — |