Shader Noise KSampler (Direct)
The shader sampler with every knob on the node — no save required
- model
- positive
- negative
- latent_image
- custom_sigmas
- LATENT
The standard Shader Noise KSampler is brilliant until you want to tweak ten parameters quickly. Its per-stage settings live in a separate editor, changes need a save, and queuing runs with different parameters doesn't work. ShaderNoiseKSamplerDirect is the same engine with every shader knob dragged onto the node's face, so you can just... turn them. No save step, no shader display, no ceremony. It's the version you reach for when you're iterating.
It shares the exact mechanism: same class underneath, same multi-stage injection of procedural shader noise into the sampling process, same automatic latent channel detection (so it runs on SD 1.5, SDXL, Flux, WAN, LTXV and friends without you thinking about it). The one real trade-off is the missing shader display - the standard node shows you the pattern you're about to use; here you're flying by feel. Which is fine. Feel is what iteration is.
The inputs that matter
Everything a KSampler has, plus the shader controls. Wire model, positive, negative, latent_image; get LATENT out for VAE Decode. Then the ones you'll actually touch:
shader_type- the noise archetype:domain_warp,tensor_field, orcurl_noise. These are the three freely available patterns; the other archetypes live in the standard node's params editor (a couple are supporter-gated on the author's Ko-fi per the README).noise_scale- the zoom. Lower values, bigger blobby features; higher values, finer detail.octaves- detail and complexity, like layering noise on noise. 1 is calm, 8 is chaos.warp_strength- how much the pattern distorts and swirls.phase_shift- shifts the pattern to produce variations; nudge it to animate or walk through the seed's neighborhood.shader_strength- global volume, default 0.3; 0.0 disables the whole thing.shape_type/shape_mask_strengthandcolor_scheme/color_intensity- spatial masks and color mapping applied to the noise before it touches sampling, not post-processing (the tooltips insist on this).
The warning worth repeating: these tooltips repeatedly note that small value shifts can produce large visual changes. The node's whole vibe is "sensitive instrument." Move noise_scale, octaves, and warp_strength in small increments, and expect the odd jarring jump.
Install
Same pack, same two ways. 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.
When to pick Direct vs standard
If you're ideating - hunting for a look by flicking parameters and queuing run after run - Direct is the one. Nothing to save, and because every parameter is a real node input, queuing different sets works the way it does on any normal node. If you want the shader visualization, saved presets, or the full twelve-archetype library, the standard node is the way in. Most people end up with both on the palette.
Watch out for the same things as its sibling: visual instability at high intensities (the README warns about flashing and harsh artifacts), and don't expect it to shine in image-to-video or video-to-video, where the author says effects are less pronounced. For text-to-image and text-to-video, it's genuinely the most controllable "variation on a seed" tool in ComfyUI right now.
Inputs (26)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The AI model used for image generation | |
| seed | INT | 88880–18446744073709550000 | Random seed for generation. Same seed with same parameters will generate the same image. |
| steps | INT | 201–10000 | Number of sampling steps. Higher values can produce better results but take longer |
| cfg | FLOAT | 7.00–100 | Classifier-free guidance scale. Higher values follow the prompt more closely |
| sampler_name | COMBO | euler_ancestral | Algorithm used for the sampling process |
| scheduler | COMBO | beta | Scheduler used to determine noise level at each step |
| positive | CONDITIONING | Positive conditioning/prompts that guide what to include in the image | |
| negative | CONDITIONING | Negative conditioning/prompts that guide what to exclude from the image | |
| latent_image | LATENT | Input latent image to be processed | |
| denoise | FLOAT | 1.000–1 | Denoising strength. Lower values preserve more of the original image |
| sequential_stages | INT | 10–10 | Number of sequential shader stages to apply before injection stages |
| injection_stages | INT | 00–10 | Number of injection shader stages to apply after sequential stages |
| shader_strength | FLOAT | 0.300–1 | Strength of the shader noise influence for both stage types. Set to 0.0 to disable and use only base noise. |
| blend_mode | COMBO | multiply | Method used to blend the shader noise with the base noise |
| noise_transform | COMBO | none | Apply mathematical transformations to the noise for creative effects |
| use_temporal_coherence | BOOLEAN | false | Ensures 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. |
| shader_type | COMBO | domain_warp | Select the type of shader noise pattern to use in the visualization [different types have different characteristic outputs] |
| shape_type | COMBO | none | Apply a shape mask to the shader noise pattern to create more complex structures [not post processing - is applied to shader noise pattern before rendering] |
| color_scheme | COMBO | none | Choose a color palette to apply to the shader noise visualization [not post processing - is applied to the shader noise pattern before rendering] |
| noise_scale | FLOAT | 1.0000.1–10 | Adjust the scale of the shader noise pattern - lower values create larger, zoomed-in features; higher values create smaller, zoomed-out features [small value shifts can lead to larger variations] |
| octaves | FLOAT | 1.01–8 | Number of shader noise layers to combine - higher values add more detail and complexity [small value shifts can lead to larger variations] |
| warp_strength | FLOAT | 0.5000–5 | Control how much the shader noise pattern warps and distorts - higher values create more swirling or complex transformations [small adjustments are good for subtle variations] |
| shape_mask_strength | FLOAT | 1.00000–2 | Adjust the intensity of the shape mask's effect on the shader noise pattern - higher values make the shape more prominent [small adjustments are good for subtle variations - not effective without shape mask] |
| phase_shift | FLOAT | 0.50000–2 | Shift the phase of the shader noise pattern to create different variations or animate patterns over time [small adjustments are good for subtle variations] |
| color_intensity | FLOAT | 0.80000–1 | Adjust the intensity of the color scheme application - lower values are more desaturated, higher values are more vibrant [small adjustments are good for subtle variations - not effective without color scheme] |
| custom_sigmasopt | SIGMAS | Optional custom sigma schedule to override the model's default schedule |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |