Nodes/ComfyUI-LTXVideo/πŸ…›πŸ…£πŸ…§ LTXV Stat Norm Latent
ComfyUI Node Runs on cloud

πŸ…›πŸ…£πŸ…§ LTXV Stat Norm Latent

Rescale an LTX latent's statistics in one shot

By LightricksΒ·Created 2 years agoΒ·Updated about a month agoΒ· 3,956
πŸ…›πŸ…£πŸ…§ LTXV Stat Norm Latent
  • latents
  • LATENT
β—„target_mean0.00β–Ί
β—„target_std1.00β–Ί
β—„percentile95.0β–Ί
β—„factor1.00β–Ί
β—„clip_outliersfalseβ–Ί

This is the one-shot, no-model-patching version of LTX's latent statistics normalization. LTXVStatNormLatent takes a latent and rescales its distribution - mean and standard deviation - toward targets you set, once, right there in the graph. Where the per-step patchers apply their correction throughout generation by wrapping the model, this node just operates on a latent you already have. It's the simpler, more predictable tool: no scheduling, no model surgery, just "normalize this latent and pass it on."

Where it earns its keep is between stages. LTX two-stage workflows (generate low, then upscale/refine) pass a latent from one sampler to the next, and if that latent's statistics are off - too hot, too much spread, outliers from a blowout - the second stage inherits the problem. Dropping a stat-norm in the middle cleans the latent before it goes downstream. It's also handy for taming a latent whose level drifted, without committing to a per-step patch on the whole generation.

How it works

It reads your LATENT, measures its distribution (optionally ignoring the extreme tail via a percentile), and rescales toward the target mean and std. A factor lets you apply the correction partially rather than fully, so you can nudge rather than hard-snap. Out comes a corrected LATENT.

The inputs and outputs that matter

  • latents (LATENT) in, LATENT out - drop it inline wherever the latent needs cleaning.
  • target_mean (FLOAT, default 0) and target_std (FLOAT, default 1) - the distribution you're normalizing toward. Mean 0, std 1 is the neutral standardization; leave them unless you're deliberately shifting level.
  • factor (FLOAT, default 1) - how much of the normalization to apply. 1.0 is the full correction; lower it to blend between the original latent and the normalized one. This is the knob for "clean it up a bit" versus "hard-reset the statistics."
  • percentile (FLOAT, default 95) - excludes the extreme tail when measuring spread, so a handful of outlier values don't skew the rescale.
  • clip_outliers (BOOLEAN, default false) - clamp the outliers outright. Turn on when specular blowouts are the specific issue.

How to install it

ComfyUI Manager: Ctrl+M, Install Custom Nodes, search LTXVideo, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/Lightricks/ComfyUI-LTXVideo

then restart. Official Lightricks pack. Pure latent math - nothing to download - but it sits inside an LTX-2 workflow with the usual model footprint elsewhere.

Common issues & troubleshooting

The corrected latent looks washed out after decode. Full normalization can strip contrast. Pull factor below 1.0 to blend the original back in, or leave clip_outliers off so you're rescaling rather than clamping.

It didn't change anything. If factor is near 0 the node barely touches the latent. Also check you actually rewired the downstream node to consume this node's output - it's easy to insert a normalizer and forget to route the corrected latent onward.

Per-step vs. one-shot - which should I use? Use this when you want a single, controllable correction between stages or before a decode. Use LTXVPerStepStatNormPatcher when the drift happens during generation and you need it corrected on every step. Same underlying math; different point of application. Reach for this one first - it's simpler to reason about and doesn't alter how the model samples.

Overcooked lights specifically. As with the patchers, the KB's first move for blown highlights on LTX-2.3 is tuning CFG (roughly 1.1–2.0 on single-stage T2V). Use stat-norm as the cleanup when a CFG tweak alone doesn't fully settle it, and enable clip_outliers for the bright specular case.

CategoryLightricks/latents

Inputs (6)

NameTypeDefaultDescription
latentsLATENTβ€”
target_meanFLOAT0.00-10–10β€”
target_stdFLOAT1.000.01–10β€”
percentileFLOAT95.050–100Percentile of distribution to use for statistics calculation
factorFLOAT1.00-10–10β€”
clip_outliersBOOLEANfalseβ€”

Outputs (1)

NameTypeDescription
LATENTLATENTβ€”