Sigmas ReactionDiffusion
Run a sigma schedule through a Turing-pattern simulation
- sigmas
- SIGMAS
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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | — | |
| system | COMBO | gray_scott | 3 options: gray_scott, fitzhugh_nagumo, brusselator |
| iterations | INT | 101–100 | — |
| dt | FLOAT | 0.100.01–1 | — |
| param_a | FLOAT | 0.0400.01–0.1 | — |
| param_b | FLOAT | 0.0600.01–0.1 | — |
| diffusion_a | FLOAT | 0.100.01–1 | — |
| diffusion_b | FLOAT | 0.050.01–1 | — |
| normalize_output | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |