⚗ Alchemica KSampler Pro (two-phase prompt, previews)
Pick the composition before you spend the render
- model
- positive
- latent_image
- positive_detail
- negative
- refiner_model
- opts
- vae
- latent
- sigma_plot
- report
- used_seed
- image
Krea 2 Turbo locks composition in the very first step - the pack measured 98.5% of it settled by σ ≈ 0.87. Which means the expensive part of a render is deciding something you could have checked in thirty seconds. This node does the checking: it generates N cheap low-resolution previews from consecutive seeds, you look at them, you tell it which one to finish.
That's the feature that justifies the node. The two-phase prompt and the refinement variant are the supporting cast.
Previews, the actual workflow
previews = N produces N low-res images with seeds seed, seed+1, … up to about 30 seconds each. Stage 1 is exactly the stage 1 of the final image, and stage 2 is redone small with the same noise field. Measured preview→final similarity: 0.87–0.90. Clothing may change; pose and framing don't.
Then the loop, and this is the bit people miss:
- Set
previewsto something like 6. Keep the seed onfixed- a randomized seed defeats the entire mechanism. - Queue. You get six thumbnails.
- Set
previewsback to 0 andpickto the number you liked. - Queue again, at the same fixed seed. That preview's composition gets finished at full quality.
used_seed is an output for exactly this reason - it tells you which seed the run actually used, so you can go back and reproduce it. If you ran previews and didn't note the number, it's in there.
The two-phase prompt
positive is the scene prompt. positive_detail (optional input) is the rendering-only prompt, and it takes over below phase_switch_sigma:
phase_switch_sigmadefault-1, which means "where composition is locked, from the profile" - around 0.87. Lower it and the detail prompt weighs less. 0 = off.phase_blend0 = a hard switch at no cost. Above 0 cross-fades the two prompts and costs one extra model call per step inside the band.
The measurement that makes this worth reading the tooltip for: the detail prompt acts on skin, fabric, patterns and small objects, and it does not act on colours or global style - those are decided in the first step alongside composition. So don't put "warm golden light" in the detail prompt and expect anything. Two-phase prompting measured 0.996–0.997 similarity to the scene-only image, versus 0.35–0.71 for just shoving all the words into one prompt. It's a real separation, not a vibe.
Refinement variant
refine_variant changes only the second-stage noise. Same pose, same framing, different face, different lettering, different jewellery and small objects. Set it to 1, 2, 3… to roll the fine detail of a composition you already like without rolling the composition. This is the quiet hero of the node for anyone generating a series.
Everything else
Same skeleton as the all-in-one: mode (fast / balanced / max detail), two_stage, redraw (-1 = from the profile), detail 0.12, variety 0.6 (drop to 0.15–0.2 if you see wet-skin droplets with a strong LoRA), denoise 1 (below 1 = img2img, which disables previews and two stages), and a profile whose (auto) picks the profile calibrated at the closest resolution to yours.
Optional inputs: positive_detail, negative, refiner_model (stage 2 with another checkpoint), opts, vae (decodes and shows the image in the node - with previews > 0, all of them are shown), preview_method (latent2rgb instant, taesd sharper with the TAE model), degrid 0 (active only with a VAE connected).
Outputs: latent, sigma_plot, report, used_seed, image.
Installing
# ComfyUI Manager: search "AlchemicaSampler"
cd ComfyUI/custom_nodes && git clone https://github.com/Nessuno76/ComfyUI-AlchemicaSampler
ComfyUI 0.36+, no pip dependencies, restart the server. The pack's KREA2_PRO example workflow is wired for exactly this node; KreaAlchemicaMente_K2AM is the simpler line if you're just starting.
Where people get burned
A randomized seed with previews. The previews are consecutive seeds on purpose. If your seed is set to randomize, pick finishes a composition that has nothing to do with what you looked at.
Confusing previews with a batch. It's not a batch of finished images, it's a scouting pass. Running previews = 8 and keeping all eight finished images is not what happens.
Expecting the detail prompt to fix colours. It can't, and the authors measured that. Colours and style go in the scene prompt.
Forgetting the calibration. Without a profile, -1 values fall back to analytic defaults and the report says so - you lose the measured hand-off, which is precisely the number the phase switch wants to use.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | SCENE prompt (or your only prompt) | |
| latent_image | LATENT | At the final resolution (⚗ Resolution node) | |
| seed | INT | 00–18446744073709550000 | BASE seed. With previews keep it on 'fixed' |
| profile | COMBO | (auto) = profile calibrated on this model at the closest resolution | |
| mode | COMBO | balanced | 3 options: fast, balanced, max detail |
| two_stage | BOOLEAN | true | — |
| redraw | FLOAT | -1.00-1–0.95 | Hand-off sigma between the two stages. -1 = from the profile |
| detail | FLOAT | 0.120–0.25 | Micro-relief. 0.12 validated; above 0.2 coloured speckles come back |
| variety | FLOAT | 0.600–1.2 | Noise that creates texture. 0 = deterministic |
| denoise | FLOAT | 1.000–1 | 1.0 = from scratch. <1 = img2img (no two stages, no previews) |
| phase_switch_sigma | FLOAT | -1.00-1–0.99 | Sigma below which the DETAIL prompt takes over. -1 = where composition is locked (from the profile, ~0.87). Lower = detail weighs less. 0 = off. Acts on skin, fabric, patterns, small objects; NOT on colours or global style (measured: those are decided in the first step together with composition) |
| phase_blend | FLOAT | 0.000–0.4 | Width of the cross-fade between the two prompts. 0 = hard switch (no cost). >0 = gradual blend, costs one extra model call per step inside the band |
| previews | INT | 00–16 | N > 0: generates N low-resolution previews (seed, seed+1, ...), up to ~30 s each. Measured: pose and framing match the final image (0.87-0.90); clothing may change. Then set 0 again and pick the number in 'scelta' (choice) |
| pick | INT | 00–255 | With previews = 0: completes preview number k (uses seed + k) |
| refine_variant | INT | 00–9999 | Changes ONLY the second-stage noise: same pose and framing, but face, lettering, jewellery and small objects change. 0 = standard |
| positive_detailopt | CONDITIONING | DETAIL prompt (from the ⚗ Two-phase prompt or ⚗ Text node). Disconnected = behaves like AlchemicaKrea | |
| negativeopt | CONDITIONING | — | |
| refiner_modelopt | MODEL | Stage 2 with a different model | |
| optsopt | ALCHEMICA_OPTS | — | |
| vaeopt | VAE | Optional: the final image is decoded and SHOWN in this node, and returned on the 'image' output (like the Efficiency KSampler) | |
| preview_methodopt | COMBO | latent2rgb (fast) | Live preview while sampling. latent2rgb = instant, a bit soft; taesd = sharper (needs the TAE model in models/vae_approx, otherwise latent2rgb); 'ComfyUI setting' = whatever ComfyUI is set to (often none) |
| degridopt | FLOAT | 0.00–10 | Only with a VAE connected: removes the faint 2-pixel line grid of Krea 2's VAE from the image shown and returned here (the latent is untouched). Max correction in grey levels: 2 = recommended, 0 = off |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |
| sigma_plot | IMAGE | — |
| report | STRING | — |
| used_seed | INT | — |
| image | IMAGE | — |