Latent Channel Stats Preview
See what your latent's channels are actually doing
- latent
- image
Latent Channel Stats Preview is the diagnostic node in the Skoogeer-Noise pack: it renders a bar chart of each channel's mean and standard deviation straight from a latent tensor. Nothing gets decoded, nothing gets sampled - you point it at a latent and get a picture of its channel statistics. It's the closest thing the pack has to a "show me what's under the hood" button.
Why would a beginner want this? Because the moment you start touching latents - channel transforms, frequency splits, noise injection - you're flying blind without it. A channel whose std collapsed to near zero is a dead channel. A channel whose mean drifted far from the rest is about to produce artifacts when the VAE decodes. This node makes those failures visible before you waste a sample.
How it works
It computes the mean and standard deviation of every channel in the latent's samples tensor, then draws both as a bar chart. channel_limit (default 16) caps how many channels you see - SD/SDXL latents have 4 channels, Flux has 16, so 16 is a sensible default. height (default 256) just sets the output image height; the layout adjusts itself.
Two inputs, one output:
- latent - whatever you're curious about.
- channel_limit / height - cosmetic and display controls.
- image (
IMAGE) - the rendered chart, which you wire into a preview node likePreviewImage.
The node is marked dynamic (IS_CHANGED returns NaN), so ComfyUI refreshes the preview reliably instead of caching a stale chart - handy when you're tweaking a transform and want the stats to update on every run.
Where it earns its keep
The pack's README explicitly recommends pairing it with the channel transforms: run LatentChannelStatsPreview before and after a Latent Channel Nonlinear Transform (or the linear one, or a frequency split) and compare the charts. You'll instantly see which channels moved, whether any died, and whether match_stats did its job of keeping the distribution in range. It's also the fastest way to sanity-check that a LatentChannelMatch actually transferred the reference's statistics - the whole point of that node is a visible shift in these very numbers.
Installing it
Part of the Skoogeer-Noise pack. ComfyUI Manager: search "Skoogeer-Noise", install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/ttulttul/Skoogeer-Noise
# restart ComfyUI
Standard deps only (torch, numpy, einops, pyyaml) - nothing to download.
Gotchas
- It's a diagnostic, not an output. You still need a preview node on the
imageoutput to actually see the chart. - Don't mistake the chart for a decoded image. This shows statistics, not content. It can't tell you what the image looks like - only that a channel is healthy or not.
- Flux.2 latents are patchified (128-channel, 2x2).
channel_limitcaps at 64, so you won't see all of them at once; if you need the full picture, unpatchify first with the pack'sUnpatchify Flux.2 Latent. - If the chart looks like a wall of noise, that's often exactly the info you needed - the latent is disorganized and the decode will be too.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| latent | LATENT | — | |
| channel_limitopt | INT | 161–64 | — |
| heightopt | INT | 25672–1024 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |