⚗ Alchemica Scheduler (SIGMAS)
Hand the sigmas to SamplerCustom instead of hiding them
- model
- opts
- sigmas
- sigma_plot
Where the steps go is most of what makes a 8-step model look good or muddy. This node is the step schedule on its own, as a SIGMAS you can put anywhere.
What it is
AlchemicaScheduler produces the sigma values - the noise levels, in order - that a sampler walks down. It's half of AlchemicaSampler's custom-sampling pair; ⚗ Alchemica Sampler Select gives you the matching SAMPLER object. Feed both into ComfyUI's SamplerCustom or SamplerCustomAdvanced and you're sampling with the pack's recipe inside core nodes, with your own guider, your own noising and your own latent.
Reach for it when you want the spacing and not the whole sampler: a hand-built two-stage setup, an unusual guider, a latent produced by someone else's node, or a control experiment where you swap samplers but keep the schedule identical. The pack itself does exactly that last one in its own comparison workflow - same Euler solver, same 8 steps, only the step spacing measured on the checkpoint.
The inputs
model- needed because the schedule is built against that model's own sampling parameters. It's not sampling anything; it just has to match the model you'll actually run.preset- the same ten presets as the rest of the pack:reference_euler_simple(ComfyUI's ownsimple, for comparison), the analyticalchemica_dualandalchemica_turbo, the two-stagealchemica_hires_2stage,alchemica_quality, the calibratedphoto_calibratedandphoto_calibrated_2K,plunge_restart,raw_base, andauto_tarato(which reads the ancestral-noise and detail values the calibration measured on your checkpoint instead of fixed ones).profile-(auto)recognises the checkpoint and uses its calibration profile;(none)skips profiles. The calibrated presets and any −1 "auto" value need one.denoise- 1.0 is the full schedule. Below 1 the schedule is truncated, which is what ComfyUI means by denoise in every other node: it's img2img, starting partway down.- Optional
opts- chain an Alchemica Options node to override the preset's schedule entries, e.g. swap the scheduler or nudge the calibrated exponent, without touching anything else.
The node is documented as single stage, and that's worth taking literally: even if you pick a two-stage preset here, what comes out is the schedule. Two stages need the pipeline that builds them - use ⚗ Alchemica Sampler (advanced) for that, and keep this node for single-stage custom sampling.
The outputs
sigmas goes into SamplerCustom's or SamplerCustomAdvanced's sigmas input. sigma_plot is an IMAGE: a drawn graph of the schedule. It's the sort of thing you'd normally never bother with, and then one day you calibrate, an 8-step schedule comes back with the steps clustered down low where Krea 2 actually builds detail, and seeing it is the moment the whole calibration idea clicks.
Pair it with ⚗ Alchemica Sampler Select using the same preset name. The preset encodes both halves of the recipe - the spacing and the solving - and matching them keeps the pairing the author measured. A photo_calibrated schedule under an alchemica_turbo sampler is legal and will produce an image; it just isn't a recipe anyone validated.
Installing it
ComfyUI Manager, search "AlchemicaSampler", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Nessuno76/ComfyUI-AlchemicaSampler
# restart the ComfyUI server
ComfyUI 0.36.0+, no extra Python packages. The SamplerCustom nodes it targets are core ComfyUI. You'll need a Krea 2 checkpoint (plus the Qwen3-VL encoder and Qwen-Image VAE) for anything to sample.
Where it goes wrong
- "NO profile for this model". Calibration profiles are created on your machine, not shipped with the pack. Run the calibration workflow for that checkpoint, or set
profileto(none)and use an analytic preset. Without a profile the analytic schedule still works - the report just says it fell back. - You picked a two-stage preset and only got one stage. Expected; see above.
- Timings or detail look wrong versus the all-in-one node. The sampler half is what applies detail boost and the ancestral noise window. Check the preset on both nodes.
- Changing
denoisedidn't shorten the schedule the way you expected. It truncates - same as any other denoise - so with a calibrated schedule the steps that survive are the ones your profile placed at the end of the trajectory, which is where the detail lives anyway. - NVFP4 is oddly slow. On a 50-series card that's a PyTorch build problem, not a schedule problem - you want a cu130 build. The pack's Calibration node prints your torch/CUDA version so you can check.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| preset | COMBO | alchemica_turbo | 10 options: reference_euler_simple, alchemica_dual, alchemica_turbo, alchemica_quality, alchemica_hires_2stage, photo_calibrated, +4 |
| profile | COMBO | 2 options: (auto), (none) | |
| denoise | FLOAT | 1.000–1 | — |
| optsopt | ALCHEMICA_OPTS | Chain from another Alchemica options node |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |
| sigma_plot | IMAGE | — |