Nodes/Advanced Latent Control/Multiply transform
ComfyUI Node

Multiply transform

The volume knob for latents, step by step

By kuschanow·Created 2 years ago·Updated 15 days ago· 23
Multiply transform
  • offset_optional
  • TRANSFORM
start_at0.00
stop_at0.00
modecombine
multiplier1.00

Multiply transform is the simplest transform in the Advanced Latent Control pack, and secretly one of the most useful. It multiplies the denoised prediction by a number during sampling. That's it. But because it runs per step on the clean latent x0, it's a surprisingly expressive way to push contrast, punch, and saturation - and to blow things up if you're not careful.

The inputs

  • multiplier - the number to multiply by. Range -10 to 10, step 0.01. Values above 1 push contrast and energy; values below 1 flatten; negatives invert the latent, which is a chaotic funhouse effect more than anything you'd ship.
  • mode - replace multiplies the prediction outright (x * multiplier); combine averages the multiplied and original latent ((x * multiplier + x) / 2), which softens the effect into a gentler lift. Default is combine, and that default is right for beginners.
  • start_at / stop_at - the step window as fractions.
  • offset_optional - gate it to every Nth step with an OFFSET.

Why a plain multiply is worth having

Because diffusion doesn't like being pushed around, but it tolerates it for a few steps. A multiplier of 1.5 applied at every step compounds over a 20-step run and produces a blown-out, oversaturated mess - that's the classic new-user failure. Gated to a small early window (start_at: 0, stop_at: 0.1) or to every 3rd step via an offset, the same 1.5 acts like a periodic kick that the sampler mostly absorbs, giving you that extra pop without the meltdown. It's the closest thing in the pack to a "crispness" knob, and it's a great first transform to learn the timing system on.

The combine mode deserves special mention here. (1.5x + x) / 2 = 1.25x - so combine with a multiplier is a softer version of the same thing. You can use that to fine-tune how aggressive a step is without touching the timing.

The numbers game

Practical starting points, from people actually running this pack:

  • Gentle lift: multiplier 1.1–1.2, combine, full window.
  • Punchy start: multiplier 1.5, start_at: 0, stop_at: 0.15.
  • Strobe: multiplier 1.3 with a Transform offset of process_every: 3.

Watch the generated image, not the math. The same multiplier reads totally different depending on model, CFG, and sampler. And remember the pack's universal trap: start_at: 0, stop_at: 0 means nothing fires, so if your multiply does nothing, that's the first thing to check.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control

Restart, or search "Advanced Latent Control" in ComfyUI Manager. No models, no dependencies.

One caveat worth remembering

If you multiply a latent by a big positive number (above ~2) or a negative and then try to sample it as a normal latent (e.g. via the plain Latent normalize node's sibling workflows), stable diffusion chokes on the out-of-range values - that's exactly the failure mode this pack's own Latent normalize node exists to rescue. Inside the transform system it's fine, because the values stay within the sampler's flow. But if you're reaching for a huge multiplier expecting stable output, lower your expectations, or at least lower the multiplier.

Categorysampling/transforms

Inputs (5)

NameTypeDefaultDescription
start_atFLOAT0.000–1
stop_atFLOAT0.000–1
modeCOMBOcombine2 options: replace, combine
multiplierFLOAT1.00-10–10
offset_optionaloptOFFSET

Outputs (1)

NameTypeDescription
TRANSFORMTRANSFORM