Nodes/⚗ AlchemicaSampler/⚗ Alchemica · Solver & Detail
ComfyUI Node

⚗ Alchemica · Solver & Detail

Solver, detail boost and ancestral noise — and why 0.40 is the setting that ruins skin

By Nessuno76·Created 23 days ago·Updated 6 days ago· 3
⚗ Alchemica · Solver & Detail
  • opts
  • ALCHEMICA_OPTS
◄solvereuler►
◄detail_amount0.30►
◄detail_start0.15►
◄detail_end0.95►
◄detail_peak0.60►
◄detail_sigma_hi0.00►
◄detail_sigma_lo0.00►
◄eta0.50►
◄sigma_gate0.65►
◄gate_hi0.85►
◄contraction0.85►

This is the option node that changes how each individual step is taken and how much texture the run ends up with. It's also the group where the single most common self-inflicted wound lives, so read the detail section before you touch it.

Solver

A 47-entry dropdown: the pack's own solvers (euler, euler_2m, heun …) plus every core ComfyUI sampler, prefixed comfy: - comfy:euler, comfy:euler_cfg_pp, comfy:euler_ancestral, comfy:dpm_2, comfy:heunpp2, comfy:exp_heun_2_x0_sde and the rest. Picking a comfy: solver hands the step loop straight back to ComfyUI's implementation.

euler is the fast default; euler_2m (a second-order midpoint variant) is what the calibrated presets use, because it extracts more per step at the cost of an extra model evaluation. The _cfg_pp samplers deserve a note here - they exist for low-CFG models like this one and rewrite how the guidance term is applied; on SDXL at CFG 7 they were a common disappointment, which is a different problem entirely.

The detail boost, honestly

detail_amount - 0 off, negative softens. It works by adding a small extra component to the prediction inside a window, which raises high-frequency energy: skin micro-relief, fabric weave, fine material detail, without touching chroma.

The measurement that matters: 0.12 is the validated value. 0.40 covers skin with coloured speckles. 0.12 raised skin micro-relief by 24% with the same chroma noise as a clean reference. The node's own default is 0.3, which is a generic default rather than a recommendation for Krea 2 - the presets set 0.12 for a reason, so type it in.

Where the window sits can be given two ways, and they interact:

  • as fractions of the trajectory - detail_start (0.15), detail_end (0.95) and detail_peak (0.6), i.e. a smooth bump that peaks a bit past the middle.
  • as absolute sigmas - detail_sigma_hi and detail_sigma_lo, where 0 means "use the fraction fields instead" and −1 means "take the window from the calibration profile". The profile places it over the measured detail window (the pack's numbers: sharpness grows between sigma 0.57 and 0.13), which is more trustworthy than any fraction you'd guess.

Ancestral noise and the contraction

eta - how much fresh noise is injected along the way, 0 to 1.5. This is where per-seed texture variation comes from; 0 makes the run deterministic. The pack's clean value is around 0.5–0.6.

sigma_gate (0.1) and gate_hi (0.35) - the gate. Below sigma_gate, eta is forced to 0, so the final steps add no grain. Above gate_hi, eta is at full strength. Between the two it ramps. That's a genuinely sensible shape: noise early to create texture, none at the end to add speckle.

contraction - scales the initial noise, 0.3 to 1.2, default 1.0 in this node and 0.85 in the calibrated presets. Slightly contracting the starting noise (0.85, i.e. starting a touch closer to the mean) is one of those small deltas that shows up in a same-seed comparison and disappears in a different-seed one.

Output

One ALCHEMICA_OPTS socket. Chain it in front of the advanced sampler:

Alchemica · Solver & Detail ─opts→ AlchemicaSampler · opts

It overrides only its own group - solver, detail, eta, gates, contraction - and leaves whatever the preset said about schedule, restart, CFG and stages alone. The optional opts input exists so you can stack it with the other four option nodes.

Installing

Part of the pack:

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

Restart the server - the nodes won't register on a browser reload. ComfyUI 0.36.0+, no pip install (the project ships an empty dependency list). Solver registration is extensible from alchemica/solvers.py if you want your own.

Traps

Turning detail up to fix blurriness. Blurriness at 8 steps on a distilled model usually means the step schedule is wrong or the resolution is too high, not that detail needs more. 0.4 on skin is the pack's own cautionary measurement.

Setting detail_sigma_hi/_lo and wondering why detail_start/_end/_peak do nothing. Any non-zero sigma pair takes over; 0 hands control back to the fractions.

Running comfy:euler_ancestral alongside a non-zero eta. You've now asked for ancestral noise twice, from two different mechanisms. Pick one - Alchemica's eta inside an Alchemica solver, or a Comfy ancestral sampler with eta at 0.

Category⚗ AlchemicaMente/sampling/options

Inputs (12)

NameTypeDefaultDescription
solverCOMBOeuler47 options: euler, euler_2m, heun, comfy:euler, comfy:euler_cfg_pp, comfy:euler_ancestral, +41
detail_amountFLOAT0.30-1–1Detail boost (0 = off, negative = softer)
detail_startFLOAT0.150–1Fraction of the trajectory where it starts
detail_endFLOAT0.950–1Fraction of the trajectory where it ends
detail_peakFLOAT0.600.05–0.95Where it peaks
detail_sigma_hiFLOAT0.00-1–1Sigma window: start. 0 = use detail_start/end, -1 = from the profile
detail_sigma_loFLOAT0.00-1–1Sigma window: end. 0 = use detail_start/end, -1 = from the profile
etaFLOAT0.500–1.5Ancestral noise at high sigma (variety/texture). 0 = deterministic
sigma_gateFLOAT0.650–1Below this sigma eta = 0. Keep this at or above the profile's detail_sigma_hi, or eta reinjects noise while skin/fabric detail is forming (wet-look artifacts)
gate_hiFLOAT0.850–1Above this sigma eta is at full strength (pure composition phase)
contractionFLOAT0.850.3–1.2Scale of the initial noise. 1 = standard
optsoptALCHEMICA_OPTSChain from another Alchemica options node

Outputs (1)

NameTypeDescription
ALCHEMICA_OPTSALCHEMICA_OPTS—