UNet Block Noise Patch (Nukun)
Inject noise into the UNet itself, not just the latent
- model
- model
Every noise-sampling node you've seen works on the latent - the initial noise you feed the sampler. This patch is different: it injects noise into the UNet's block activations as it denoises, separately for the input, middle, and output block groups. Same general idea - more variation in the signal - but at a different layer of the stack, and that's a genuinely different tool in your box. It's experimental, it's stronger and more model-sensitive than changing the initial noise, and it's the kind of thing you reach for when your Illustrious/Pony results are too uniform and latent-noise tweaks aren't doing it.
The README is unusually clear about where this sits: "For IllustriousXL, prefer the Illustrious Noise Sampler before trying UNet Block Noise Patch, which is stronger and more model-sensitive." Read that as a warning, not a suggestion. Initial-noise recipes are the gentle lever; this is the sledgehammer.
How it works
You patch the MODEL before the guider or sampler - the model output goes into your CFGGuider/sampler path, while a Nukun Advanced Noise Sampler (or any sampler) still controls the initial latent noise. Each of the three block groups has its own noise_type, noise_strength, and noise_seed:
input_noise_*- injected after each UNet input block.middle_noise_*- after the single middle block pass.output_noise_*- after output blocks.
All three default to strength 0, so adding the patch starts neutral - you have to explicitly turn it on, which is the right default for something this intrusive. Block noise strength is relative to the current feature magnitude of the activations, so small values (0.05–0.3) are the intended range; this is not a latent-scale number where 1.0 means "a lot." Input and output strengths spread across their repeated blocks; middle applies to its single pass.
start_percent / end_percent (defaults 0 → 1) constrain when during denoising the patch is active. Set end_percent to 0.5 and you perturb only the early, structure-forming half of the trajectory - often the only half you want. Each seed gives reproducible per-block, per-sigma-step noise.
Installing it
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/OnekoSL/Nukun_ComfyUI_Nodes.git
Restart ComfyUI, or use Manager (search "Nukun"). No companion packages - it's a model patch built on ComfyUI's patching machinery, with the pack's own numpy/scipy/PyWavelets underneath.
Common issues
The #1 mistake is treating noise_strength like a latent-noise multiplier and setting it to 1.0 - because the strength is relative to feature magnitude, that's an enormous perturbation and you'll get chaos. Start at 0.05 and climb. Second: patching the wrong model path. The patch must sit on the MODEL that actually feeds the sampler's guider; if you patch a branch that's not used, nothing happens and it's confusingly silent. Third: this is the most model-sensitive node in the pack - a setting that works on Illustrious can wreck a Pony v7 run. When you find a working strength range, write it down with the checkpoint name, because it won't transfer. And remember start_percent/end_percent are your safety valve: if a full-trajectory patch is too strong, restricting it to the early denoising window often keeps the benefit and drops the artifacts.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| start_percent | FLOAT | 0.0000–1 | Denoising start for the block noise patch. |
| end_percent | FLOAT | 1.0000–1 | Denoising end for the block noise patch. |
| input_noise_type | COMBO | gaussian | Noise injected after each UNet input block. |
| input_noise_strength | FLOAT | 0.000–5 | Noise amount relative to the current input block feature magnitude. |
| input_noise_seed | INT | 00–18446744073709550000 | — |
| middle_noise_type | COMBO | gaussian | Noise injected after the UNet middle block. |
| middle_noise_strength | FLOAT | 0.000–5 | Noise amount relative to the current middle block feature magnitude. |
| middle_noise_seed | INT | 00–18446744073709550000 | — |
| output_noise_type | COMBO | gaussian | Noise injected into each UNet output block input. |
| output_noise_strength | FLOAT | 0.000–5 | Noise amount relative to the current output block feature magnitude. |
| output_noise_seed | INT | 00–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |