๐ Preset Sigma Generator
Ten known noise schedules on demand, without touching the KSampler
- sigmas
- preset_info
- seed
The KSampler buries its schedule choice in a dropdown, and the dropdown is the only place it lives - you can't easily inspect, modify, or reuse the schedule it generates. PresetSigmaGenerator pulls the schedule out into the open. It generates a SIGMAS tensor from one of ten named schedules (karras, exponential, vp, ve, linear, polyexponential, lms, ddim, euler, heun), with full control over the parameters. Once it's a tensor, you can analyze it, reshape it, join it, or feed it straight to a sampler.
The inputs
preset(dropdown, defaultkarras) - the schedule family. These are the names you recognize from scheduler dropdowns: Karras and exponential are the aggressive ones, linear is the even one, vp/ve/ddim/euler/heun are the classic family-specific curves.steps(INT, 2โ1000, default 20) - how many noise levels in the schedule.sigma_min(FLOAT, default 0.002) - the noise level at the end of the schedule.sigma_max(FLOAT, default 14.6146) - the starting noise level. That 14.6146 is the canonical base noise the standard Karras schedule launches from, so the default preset reproduces a familiar-looking curve.rho(FLOAT, 1โ20, default 7) - the schedule curvature parameter, mainly used by Karras and the exponential-family schedules. Higher rho pushes more denoising effort toward the end; 7 is the classic value.seed(INT) - here for reproducibility bookkeeping (see below).
The outputs
sigmas(SIGMAS) - the generated schedule, sorted descending. This is the payload.preset_info(STRING) - a JSON blob describing what you generated (preset, steps, min/max, rho, actual min/max achieved). Feed it to a text-display node if you want to read it.seed(INT) - echoes your seed back out.
One honest note on that seed: it doesn't randomize anything. All ten schedules are deterministic - same parameters, same tensor, every time. The seed is threaded through so you can keep a single seed value flowing around a workflow for reproducibility, but it doesn't shake the schedule. Don't expect changing it to vary your noise.
The one piece of advice that matters
The default preset is karras, and Karras is a great default if you're on a DDPM-style model (SD 1.5, SDXL, and their finetunes). For flow-matching models - Flux, Z-Image, Klein, and friends - Karras and exponential are a known trap: they aggressively reshape the sigma curve, and on a near-straight trajectory that distortion actively hurts. If your model is flow-matching, prefer linear or one of the gentler schedules, or just use the sampler's own scheduler instead of hand-feeding sigmas. Rule of thumb: know what architecture your checkpoint is built on before you go schedule-hopping.
Install
Pack: InitialB Util. ComfyUI Manager โ search "InitialB Util" โ Install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/benjiyaya/Comfyui_InitialB_Util
cd Comfyui_InitialB_Util
pip install -r requirements.txt
Restart ComfyUI. No model downloads; the requirements are torch/numpy/scipy/Pillow, all already bundled with ComfyUI. The README's clone URL is a placeholder - use the real repo above or Manager. Found under InitialB/sigma/custom, ready to hand its sigmas output to a SamplerCustom or to the pack's other sigma nodes.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | karras | 10 options: karras, exponential, vp, ve, linear, polyexponential, +4 |
| steps | INT | 202โ1000 | โ |
| sigma_min | FLOAT | 0.00200.0001โ1 | โ |
| sigma_max | FLOAT | 14.61โ1000 | โ |
| rho | FLOAT | 7.01โ20 | โ |
| seed | INT | 00โ18446744073709550000 | โ |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | โ |
| preset_info | STRING | โ |
| seed | INT | โ |