Nodes/ComfyUI-ShaderNoiseKSampler/Shader Noise KSampler
ComfyUI Node

Shader Noise KSampler

A KSampler that treats noise like a map, not a lottery

By AEmotionStudio·Created about a year ago·Updated 3 months ago· 66
Shader Noise KSampler
  • model
  • positive
  • negative
  • latent_image
  • custom_sigmas
  • LATENT
seed8888
steps20
cfg7.0
sampler_nameeuler_ancestral
schedulerbeta
denoise1.00
sequential_stages1
injection_stages0
shader_strength0.30
blend_modemultiply
noise_transformnone
use_temporal_coherencefalse

Every KSampler run is a lottery ticket. Change the seed and you teleport to a different part of latent space; most of those neighborhoods aren't interesting, and you spend your afternoon rolling again and again hoping to land somewhere good.

ShaderNoiseKSampler treats that differently. It's a drop-in KSampler replacement that swaps the purely random starting noise for structured, procedurally generated "shader noise" - the same family of math that powers Perlin terrain and domain-warped textures - blended into the noise before and during sampling. Same seed, same prompt: the shader parameters now steer you through the neighborhood around that seed instead of abandoning it. People on r/comfyui and r/StableDiffusion describe it as "variation seed on steroids," and one poster said it basically replaced variation seeds for them. That's the right mental model: a variation engine with a lot more dials, not a magic prompt-improver.

How it works

At generation time the node builds a shader noise pattern - twelve archetypes exist, from domain warp and tensor field to curl noise - optionally runs it through a math transform, then blends it with the normal base noise using a blend mode. That crafted noise is injected over the denoising process in stages: sequential_stages divide the run into segments (default 1), while injection_stages hit specific discrete steps (default 0). Shape masks and color schemes go on top, and suddenly you have a lot of sculpting surface.

It's also model-aware. It sniffs the model's latent channel count - 4 for SD 1.5/SDXL, 16 for Flux and WAN, 128 for LTXV - and shapes the noise accordingly, so it mostly just works across image and video models. It's one of the few variation tools people actually run on WAN.

The inputs that matter

Treat it like a normal KSampler first: wire model, positive, negative, latent_image, and it spits out LATENT for your VAE Decode. Then:

  • seed - fix it. The whole point is exploring around one seed; randomize and you're back to teleporting.
  • shader_strength - the global volume knob, default 0.3. Set to 0.0 and it's a plain KSampler. Start around 0.1–0.3.
  • sequential_stages / injection_stages - how many noise stages, and whether they run over segments or at single steps.
  • blend_mode - how shader noise combines with base noise; multiply (default) for depth, add for highlights, overlay for contrast.
  • use_temporal_coherence - keeps noise consistent across frames or repeated runs. Turn it on for animation.

One honest gotcha: the per-stage knobs (noise type, scale, octaves, warp, phase) are not on this node's face. They live in a separate shader-params editor behind the "Show Shader Matrix" button (Alt+M), saved to a shader_params.json file, and parameters marked 🔄 need a save after you change them or the run uses stale values. It's the standard version's one genuinely fiddly bit.

Install

ComfyUI Manager → Install Custom Nodes → search "ComfyUI-ShaderNoiseKSampler", or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/AEmotionStudio/ComfyUI-ShaderNoiseKSampler.git

Restart ComfyUI. No pip dependencies, no model downloads, nothing to hunt down.

Troubleshooting

  • Output looks identical to a plain KSampler: shader_strength is probably 0.0, or your param changes didn't get saved (the 🔄 thing).
  • A small tweak caused a huge change: expected, not a bug. Several tooltips warn that small noise_scale or octave shifts can produce big variations. Move gently, and use the shader display to see the pattern before you queue.
  • Trying to queue runs with different params: this variant reads params at runtime, so that doesn't work here. Use the Direct variant for rapid iteration.
  • Flashing images or harsh artifacts at high intensity: the README flags visual instability with aggressive combinations. Dial strength down.

The author is upfront that this is research-grade software rather than a polished consumer tool, and the parameter sprawl shows it. But if you've ever wanted to sculpt the noise instead of rolling for it, this is the most interesting way to do that in ComfyUI right now.

Categorysampling

Inputs (17)

NameTypeDefaultDescription
modelMODELThe AI model used for image generation
seedINT88880–18446744073709550000Random seed for generation. Same seed with same parameters will generate the same image. Use fixed seed for shader noise exploration.
stepsINT201–10000Number of sampling steps. Higher values can produce better results but take longer
cfgFLOAT7.00–100Classifier-free guidance scale. Higher values follow the prompt more closely
sampler_nameCOMBOeuler_ancestralAlgorithm used for the sampling process
schedulerCOMBObetaScheduler used to determine noise level at each step
positiveCONDITIONINGPositive conditioning/prompts that guide what to include in the image
negativeCONDITIONINGNegative conditioning/prompts that guide what to exclude from the image
latent_imageLATENTInput latent image to be processed
denoiseFLOAT1.000–1Denoising strength. Lower values preserve more of the original image
sequential_stagesINT10–10Number of sequential shader stages to apply before injection stages
injection_stagesINT00–10Number of injection shader stages to apply after sequential stages
shader_strengthFLOAT0.300–1Strength of the shader noise influence for both stage types - set to 0.0 to disable and use only the base noise
blend_modeCOMBOmultiplyMethod used to blend the shader noise with the base noise
noise_transformCOMBOnoneApply mathematical transformations to the noise for creative effects
use_temporal_coherenceBOOLEANfalseEnsures consistent noise patterns. For sequences like video frames, it helps maintain frame-to-frame consistency (e.g., using the same base seed and 4D noise). For single image generations, it ensures the base noise is derived consistently from the main seed.
custom_sigmasoptSIGMASOptional custom sigma schedule to override the model's default schedule

Outputs (1)

NameTypeDescription
LATENTLATENT