Nodes/RES4LYF/Sigmas ReactionDiffusion
ComfyUI Node Runs on cloud

Sigmas ReactionDiffusion

Run a sigma schedule through a Turing-pattern simulation

By ClownsharkBatwing·Created 2 years ago·Updated 18 days ago· 1,222
Sigmas ReactionDiffusion
  • sigmas
  • SIGMAS
systemgray_scott
iterations10
dt0.10
param_a0.040
param_b0.060
diffusion_a0.10
diffusion_b0.05
normalize_outputtrue

This is probably the strangest node in RES4LYF's sigma family, and that's saying something given the company it keeps. Reaction-diffusion systems are real mathematical models - Gray-Scott, FitzHugh-Nagumo, the Brusselator, all three offered here by name - famous for turning smooth, boring initial conditions into spots, stripes, and other self-organizing patterns. It's the same class of math behind simulating animal coat patterns. This node takes your sigma schedule as the starting condition for one of those systems and lets it evolve for a few iterations before handing back whatever comes out.

Feed a smooth, monotonically decreasing sigma curve in, and what comes out is not going to be smooth or monotonic anymore - reaction-diffusion systems exist specifically to introduce structure and oscillation into flat inputs. That's either exactly what you're looking for, if you're deliberately chasing an unconventional, textured schedule shape, or a warning sign that this node isn't for a normal generation pass. There's no community precedent for using this in a production workflow; treat it as a sandbox for people who find the math itself interesting.

How it works

sigmas is the required starting schedule. system picks which of the three named reaction-diffusion equations governs the simulation. iterations and dt set how many simulation steps run and how large each one is - more iterations or a larger dt means more time for patterns to develop, and more chance of the result drifting far from your input. param_a and param_b are the system's own reaction-rate constants; diffusion_a and diffusion_b control how quickly the two interacting components spread. normalize_output (on by default) rescales the result back into a sane range afterward, which you'll generally want left on unless you're chaining into another node that expects to do its own rescaling.

The inputs and outputs that matter

sigmas is the only required schedule input; everything else (system, iterations, dt, param_a, param_b, diffusion_a, diffusion_b, normalize_output) is a required scalar or toggle with a sane default. One output, SIGMAS.

Installing it

ComfyUI Manager: search RES4LYF, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ClownsharkBatwing/RES4LYF/
cd RES4LYF
pip install -r requirements.txt

Use the portable install's embedded pip.exe if that applies to you. Restart and hard-refresh afterward.

Where people get tripped up

The defaults are tuned to be a mild starting point, not a guaranteed-safe one - push iterations or dt up and the output can diverge into something with no resemblance to a usable noise schedule at all. Start low, check the result (a plot or preview node earns its keep here), and increase gradually.

If a sampler fed this schedule produces obviously broken output, that's the expected failure mode, not a bug to chase: this node doesn't guarantee a decreasing curve, and most samplers assume one. Leave normalize_output on, and if you need the result to actually behave like a schedule again, run it through Sigmas Percentile or Sigmas QuantileNorm afterward rather than feeding it straight to a sampler.

CategoryRES4LYF/sigmas

Inputs (9)

NameTypeDefaultDescription
sigmasSIGMAS
systemCOMBOgray_scott3 options: gray_scott, fitzhugh_nagumo, brusselator
iterationsINT101–100
dtFLOAT0.100.01–1
param_aFLOAT0.0400.01–0.1
param_bFLOAT0.0600.01–0.1
diffusion_aFLOAT0.100.01–1
diffusion_bFLOAT0.050.01–1
normalize_outputBOOLEANtrue

Outputs (1)

NameTypeDescription
SIGMASSIGMAS