Colored Noise KSampler
Swap in one node to color your noise — no custom sampling graph required
- model
- positive
- negative
- latent_image
- output
- denoised_output
If you have a working Load Checkpoint → KSampler → VAE Decode graph, this is the fastest way to try "colored noise" diffusion sampling: it's a drop-in KSampler replacement with frequency-shaping baked in. Same model, positive, negative, latent_image, seed, steps, cfg, scheduler, denoise inputs you already know, plus the spectral knobs from the rest of this pack. Swap it in where your KSampler sits and hit render - you don't have to learn the SamplerCustomAdvanced graph to find out whether colored noise does anything for your model.
What it actually does
This is the all-in-one node of the akashzeno/ComfyUI-ColoredNoiseDiffusionSampling pack, a port of the Colored Noise Diffusion Sampling paper (Davidson, Issachar & Benaim, arXiv:2605.30332). Instead of injecting plain white Gaussian noise at each stochastic step, it shapes the noise's power spectrum - and lets that shape change over the sampling trajectory: broadband early, biased toward high-frequency detail late. It plugs into ComfyUI's standard noise_sampler seam, so underneath it's just a KSampler whose per-step noise is FFT-shaped and renormalized to unit variance. The sampler you pick still controls the trajectory; only the noise flavor changes.
That's why it's worth being honest about scope: the paper's FID numbers are from SiT on ImageNet-256 and will not reproduce on SD/SDXL/Flux. Treat this as a quality/character knob, not a free quality boost - some models like it, some don't.
The inputs that matter
base_sampler- the dropdown only contains stochastic samplers (ancestral/SDE ones likedpmpp_2m_sde, plus the_RFrectified-flow variants for Flux/SD3). Deterministic samplers never inject per-step noise, so the pack doesn't even offer them - coloring them would be a silent no-op.mode+alpha_start/alpha_end- keepmode = parametricfor now. Positive alpha tilts toward low frequencies (pink/brown, softer), negative toward high frequencies (blue/violet, crisper). The default0 → -1is the CNS-style broadband-to-detail sweep.eta- stochasticity. At0the SDE step becomes deterministic and coloring is disabled entirely. Leave it at 1 unless you know why you're lowering it.
color_initial_noise is a nice extra: tick it and the starting latent gets colored too (at a constant alpha_start), instead of the plain white start. energy_scale is a deliberate "heat" knob - anything other than 1.0 changes the effective noise level, so treat it as an experiment, not a subtle trim.
Quick recipes
- White baseline (sanity check):
alpha_start = 0,alpha_end = 0 - CNS-like:
alpha_start = 0,alpha_end = -1…-2 - Constant pink/brown:
alpha_start = alpha_end = 1…2
Install
No extra dependencies - torch comes with ComfyUI, and this pack has none of its own. Either search "Colored Noise" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/akashzeno/ComfyUI-ColoredNoiseDiffusionSampling
Restart ComfyUI. It lands under sampling/colored_noise. You should see [ColoredNoiseDiffusionSampling] loaded: 3 nodes | ... in the console - that's how you know it's live.
Gotchas
The one that bites people: pick a stochastic base sampler and keep eta above 0, or you'll render identical images and assume the node is broken (it isn't - there's just nothing to color). If you try gamma_matrix mode on SD/Flux, remember the bundled matrices are SiT/ImageNet-specific heuristics; the parametric mode is the intended default. And watch the console per-generation: the pack logs a line like sampling: base=dpmpp_2m_sde | parametric alpha 0.00->-1.50 (linear) | ... so you can confirm coloring is actually active.
Inputs (24)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| latent_image | LATENT | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.00–100 | — |
| base_sampler | COMBO | dpmpp_2m_sde | 22 options: ddpm, dpm_2_ancestral, dpm_2_ancestral_RF, dpmpp_2m_sde, dpmpp_2m_sde_heun, dpmpp_2s_ancestral, +16 |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| denoise | FLOAT | 1.000–1 | — |
| color_initial_noise | BOOLEAN | false | Also color the initial latent noise (uses alpha_start as a constant color). |
| eta | FLOAT | 1.000–100 | Stochasticity. eta=0 makes the step deterministic, disabling colored noise. |
| s_noise | FLOAT | 1.000–100 | — |
| mode | COMBO | parametric | 2 options: parametric, gamma_matrix |
| alpha_start | FLOAT | 0.00-8–8 | — |
| alpha_end | FLOAT | -1.00-8–8 | — |
| interpolation | COMBO | linear | 2 options: linear, exponential |
| exp_sharpness | FLOAT | 4.00.1–16 | — |
| gamma_matrix | COMBO | none (parametric) | 3 options: none (parametric), gamma_matrix_scaled.pt, gamma_matrix_scaled_cfg_1.5.pt |
| gamma_divider | FLOAT | 1.000.1–10 | — |
| gamma_shaping | COMBO | none | 3 options: none, sqrt, power |
| power_gamma | FLOAT | 1.000.1–8 | — |
| alpha_tilting | FLOAT | 0.00-8–8 | — |
| energy_scale | FLOAT | 1.000–4 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| output | LATENT | — |
| denoised_output | LATENT | — |