Nodes/comfy-plasma/Plasma KSampler
ComfyUI Node

Plasma KSampler

A KSampler with a noise dial — for when plain latent noise is boring

By Jordach·Created 3 years ago·Updated 2 years ago· 81
Plasma KSampler
  • model
  • positive
  • negative
  • latent_image
  • LATENT
noise_seed0
steps20
cfg7.0
denoise0.90
latent_noise0.05
distribution_type
sampler_name
scheduler

The KSampler is the workhorse of every ComfyUI workflow: it takes a latent, adds noise, and iteratively denoises toward your prompt. JDC_PlasmaSampler is that exact node, re-skinned, with two things the stock one doesn't give you: a latent_noise dial that controls how much fresh noise gets added to the latent, and a distribution_type switch that swaps the noise distribution. It's the sampler half of comfy-plasma by Jordach, and it exists to let you start sampling from your own noise instead of the default Gaussian mush.

What it actually changes

Read the source and you'll see it's a light modification of ComfyUI's own sampler. The key difference: it calls the sampler with disable_noise=True, then adds its own noise manually, scaled by latent_noise (float, 0–1, default 0.05).

  • latent_noise = 0 - no noise is added at all. The sampler just denoises whatever is already in the latent. Feed it a VAE-encoded plasma or image and it works from that, nearly unchanged.
  • latent_noise = 1 - all the noise, essentially the default KSampler behavior.

So the knob is a blend between "denoise my supplied image" and "denoise pure noise." The README's warning is worth quoting in spirit: crank denoise high at high resolutions and you can get "faces within faces"; keep it low and the result stays closer to your input image or noise. For latent_noise itself, values around 0.05–0.2 are the interesting zone - enough fresh noise to give the sampler room, not so much that your structured start disappears.

The distribution_type switch changes the noise source:

  • default - torch.randn(), the standard Gaussian. Smooth and predictable, but the author notes it "can't make very dark, very bright, or high-contrast images."
  • rand - torch.rand(), a uniform distribution rescaled to roughly ±1.73. The author's own description: it "doesn't stick to a single random distribution and can change wildly based on input." That's less a bug and more a feature - the uniform distribution has fatter tails, so you get wilder, spikier starts.

The inputs that matter

It's a full sampler, so the list is familiar: model, positive, negative, latent_image, steps, cfg, denoise, sampler_name (the full 30+ list), scheduler, plus noise_seed, latent_noise, and distribution_type. Output is a LATENT, ready for VAEDecode. Note the seed is a plain widget with no "control after generate" - change it manually when you want a new roll.

The workflow it was built for

The author's example wires JDC_PlasmaVAEEncodeJDC_PlasmaSampler. Generate fractal plasma, encode it to a latent, then let the sampler denoise it with a touch of fresh noise mixed in. Structured noise in, structured image out. The pack's noise nodes actually got community attention back in the SD3 era specifically for this kind of noise-injection experimentation, so you're standing on shoulders here.

Install

No requirements.txt, no models. ComfyUI Manager → Install Custom Nodes → search comfy-plasma → install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/Jordach/comfy-plasma

Restart ComfyUI. It's under sampling.

Where people get burned

  • Don't run this on Flux. It's an SD1.5/SDXL-era sampler clone, and the noise-injection approach assumes the old latent-noise model. Flux has its own sampler expectations; use the right tool.
  • latent_noise = 0 is not "safe." It means zero fresh noise, so the sampler is denoising whatever latent you handed it - pair that with a high denoise on a VAE-encoded image and you can get weird doubling artifacts. If you just want a normal generation, set latent_noise to 1 and don't look back.
  • The uniform "rand" distribution can produce unexpectedly wild results. Start with default.
Categorysampling

Inputs (12)

NameTypeDefaultDescription
modelMODEL
noise_seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT7.00–100
denoiseFLOAT0.900–1
latent_noiseFLOAT0.050–1
distribution_typeCOMBO2 options: default, rand
sampler_nameCOMBO34 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +28
schedulerCOMBO9 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +3
positiveCONDITIONING
negativeCONDITIONING
latent_imageLATENT

Outputs (1)

NameTypeDescription
LATENTLATENT