Nodes/⚗ AlchemicaSampler/⚗ Alchemica · Sampler (SAMPLER) [1.0, use Alchemica Sampler Select (SAMPLER)]
ComfyUI Node

⚗ Alchemica · Sampler (SAMPLER) [1.0, use Alchemica Sampler Select (SAMPLER)]

Alchemica's sampler loop as a SAMPLER socket — for people who live in SamplerCustom

By Nessuno76·Created 23 days ago·Updated 6 days ago· 3
⚗ Alchemica · Sampler (SAMPLER) [1.0, use Alchemica Sampler Select (SAMPLER)]
  • opts
  • SAMPLER
◄presetalchemica_turbo►
◄profilo▾►
◄noise_seed0►

Some people don't want another all-in-one sampler. They have a SamplerCustom graph with guiders, schedules, a custom noise node, maybe an LLM-encoded conditioning that took twelve seconds to compute - and swapping a node in it means rebuilding the graph. This node is for them: it packages the Alchemica per-step loop (solver, detail boost, gated ancestral noise) as a SAMPLER, the same type core samplers expose.

How the split works

SamplerCustom separates three jobs that a KSampler bundles together:

  • the schedule - which sigmas you visit, supplied on the sigmas input;
  • the sampler - what happens between one sigma and the next, supplied on the sampler input;
  • the CFG handling - supplied by the guider, or by SamplerCustom's own cfg field.

This node fills only the middle one. Its inputs are preset (the same nine presets the advanced sampler uses: rif_euler_simple, alchemica_duale, alchemica_turbo, alchemica_quality, alchemica_hires_2stage, foto_tarata, foto_tarata_2K, plunge_restart, raw_base), profilo ((auto) or a named profile, so −1 values can resolve), noise_seed, and the optional opts chain socket.

The output is a single SAMPLER. Wire it into SamplerCustom's sampler input and you're done.

noise_seed is the part that looks redundant and isn't. The gated ancestral noise (varieta in the all-in-one, eta in the options) injects fresh noise during the run; without a seed fixed for that, two runs with identical settings wouldn't match. It's what keeps varieta reproducible.

What it deliberately doesn't do

Two things from the presets don't survive this form, and it's worth understanding why rather than reporting a bug.

Two-stage mode is a schedule property, not a sampler property. A SAMPLER receives a latent and hands one back at the same size; it can't run stage 1 at half resolution and then upscale, because that means changing the latent between stages, which is the caller's job. So the alchemica_hires_2stage preset's stage geometry is inert here. Same for plunge and restart: those are built into the sigma list, which is why ⚗ Sigmas exists as a companion node.

If you want two stages, use AlchemicaKrea / AlchemicaKreaPro / the advanced AlchemicaSampler - they own the whole trajectory.

Wiring

⚗ Sigmas · SIGMAS ─────────────→ SamplerCustom · sigmas
⚗ Sampler (SAMPLER) ───────────→ SamplerCustom · sampler
⚗ Load Krea 2 · model ─────────→ SamplerCustom · model  (and the guider if you use one)

Match the preset on this node and on the ⚗ Sigmas node. They're separate widgets with no shared state, and a mismatch is the easiest way to get a run that looks almost right - the sigmas from one recipe, the per-step behaviour of another.

Installing

Part of the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/Nessuno76/ComfyUI-AlchemicaSampler

Then restart the ComfyUI server; new nodes never appear on a page reload. ComfyUI 0.36.0 or newer, no dependencies to install. Put the three Krea 2 files where ⚗ Load Krea 2 expects them.

Traps

Expecting the preset to bring its own sigmas. It doesn't. Feed it a schedule.

Assuming noise_seed controls the image seed. It doesn't - the image seed is on SamplerCustom's own seed field. This one seeds the ancestral noise injection only.

Using a Krea 2 preset on another architecture. The presets carry Krea 2 numbers (mu 1.15, CFG 1, the calibrated sigmas). On anything else they're meaningless, and the calibrated ones only mean something on the checkpoint they were measured on.

Forgetting the profile. Without a calibrated profile, (auto) resolves to the analytic fallback and the report says so. foto_tarata on an uncalibrated model is a fancy name for alchemica_duale.

Category⚗ AlchemicaMente/legacy (1.0)

Inputs (4)

NameTypeDefaultDescription
presetCOMBOalchemica_turbo10 options: rif_euler_simple, alchemica_duale, alchemica_turbo, alchemica_quality, alchemica_hires_2stage, foto_tarata, +4
profiloCOMBO2 options: (auto), (nessuno)
noise_seedINT00–18446744073709550000—
optsoptALCHEMICA_OPTSChain from another Alchemica options node

Outputs (1)

NameTypeDescription
SAMPLERSAMPLER—