Nodes/⚗ AlchemicaSampler/⚗ Alchemica · Prompt [1.0, use Alchemica Prompt (enhance + encode + NAG)]
ComfyUI Node

⚗ Alchemica · Prompt [1.0, use Alchemica Prompt (enhance + encode + NAG)]

Loader to sampler in one node, prompt and negative included

By Nessuno76·Created about a month ago·Updated 21 days ago· 4
⚗ Alchemica · Prompt [1.0, use Alchemica Prompt (enhance + encode + NAG)]
  • clip
  • model
  • immagine
  • model
  • positive
  • negative
  • report
◄modogenera da idea►
◄idea►
◄scena►
◄dettaglio►
◄negativo►
◄stilefoto realistica►
◄parole80►
◄creativita0.00►
◄seed0►
◄nag_scala3.0►
◄nag_tau2.5►
◄nag_alpha0.25►
◄nag_blocchitutti►
◄nag_sigma_da-1.00►
◄nag_sigma_a0.00►
◄strutturaspenta►
◄struttura_scala0.00►
◄struttura_blocchi8-19►
◄seg_sfocatura10.0►
◄struttura_sigma_da-1.00►
◄struttura_sigma_a0.00►
◄pelleliscia (senza peluria)►
◄istruzioni►

A stock Krea 2 graph is a text encoder, a prompt box, a conditioning, a NAG patch and a latent. This node is all of them standing in a line, which is why the pack's starter workflow only needs five nodes total.

What it is

AlchemicaPrompt is the 1.0 all-in-one prompt block from ComfyUI-AlchemicaSampler: it writes the prompt with Krea 2's own text encoder (or takes yours as written), encodes scene and detail into one conditioning, and patches the negative into the model's attention. Model in, model out with the guidance applied; text in, conditioning out. Nothing else sits between the loader and the sampler.

Fair warning on the name. It shows up as "⚗ Alchemica · Prompt [1.0, use Alchemica Prompt (enhance + encode + NAG)]" with Italian widgets, because 1.1 renamed everything: this node became AlchemicaPromptAllInOne, and that was then superseded by AlchemicaPromptStudio, which adds the list/string/example modes, Ollama and the start latent. All three run the same core. New graph, use PromptStudio; this one is here because your saved workflow points at it.

How it works

modo has two settings and they define everything.

genera da idea - you write a few words in idea (any language), and Krea 2's Qwen3-VL text encoder writes the prompt for you: a SCENE paragraph, a DETAIL paragraph about surfaces, skin, fabric and optics, and a NEGATIVE list. The encoder is the same model that then encodes the result, which is why this costs a model call on the first run and why the prompt appears in the report rather than in a widget. stile picks the photographic register, parole sets the scene length, and creativita at 0 is fully deterministic - same text every queue - while 0.6–0.9 gives variations and makes seed matter. Connect immagine with idea empty and it describes the image instead. The author's rules are worth knowing because they show up in the output: affirmative language only, and it will not describe skin as wet, dewy or glistening, because that phrasing reliably produced sweaty-looking renders.

tal quale - your scena, dettaglio and negativo are used exactly as typed. dettaglio empty means scene only. This is the mode for when you already know what you want to say.

Then the interesting part: NAG. Krea 2 Turbo is guidance-distilled and runs at CFG 1, and at CFG 1 there is no unconditional pass, so a negative prompt box does nothing at all - that's true of every distilled model of this generation, not a quirk here. What actually has no unconditional pass is the guidance term; NAG (normalized attention guidance) intervenes in attention space instead, so your negativo does something at CFG 1. Defaults are the calibrated ones: nag_scala 3, nag_tau 2.5 capping how far it may push away from the positive, nag_alpha 0.25 blending back toward the original attention, nag_blocchi for which DiT blocks participate. nag_sigma_da at −1 is the clever default: NAG switches on at the profile's hand-off sigma (~0.87), below which composition is already locked, so you remove unwanted things without moving the picture. The pack's own measurement: water droplets removed, image 99.3% identical to the run without it, about +40% time on the refinement stage.

struttura is the other guidance lever: PAG sharpens and adds contrast, SEG blurs the queries - and the tooltip is honest that SEG halos above 0.3.

Inputs and outputs

model and clip come in from the loader (or the LoRA stack); positive and negative go to the sampler, and negative only matters if you push the sampler's cfg above 1. model is the one to watch: NAG rides on it, so wire this output to the sampler, not the loader's. report is your only window into what the encoder wrote.

Installing it

ComfyUI Manager, search "AlchemicaSampler", or:

cd ComfyUI/custom_nodes
git clone https://github.com/Nessuno76/ComfyUI-AlchemicaSampler
# restart the server, not just the page

ComfyUI 0.36.0+ is a hard requirement here - the prompt writing uses CLIP.generate, which landed in that version. There are no extra Python packages, but you need the three Krea 2 files (krea2_turbo_nvfp4 or its fp8 sibling, the Qwen3-VL encoder, the Qwen-Image VAE) in models/diffusion_models, models/text_encoders and models/vae.

Where it goes wrong

  • "Krea 2 conditioning-size error". The text encoder was loaded with a type other than krea2. Use ⚗ Load Krea 2, or set CLIPLoader's type by hand.
  • First queue is slow. The encoder writes the text, then the image model has to be brought back. Later runs reuse the cached answer - and changing the NAG values or the resolution won't trigger a rewrite, but editing istruzioni will.
  • The negative does nothing. Check nag_scala isn't 0 and that you're at cfg 1 with the patched model, not the raw loader output.
  • New widgets, old values. If you update the pack and the node still looks wrong, restart the server. The pack prints a warning when it sees unrecognised inputs for exactly this reason.
Category⚗ AlchemicaMente/legacy (1.0)

Inputs (26)

NameTypeDefaultDescription
clipCLIPText encoder di Krea 2: scrive il prompt (se 'genera da idea') e lo codifica sempre
modelMODELQui arriva NAG/struttura applicati, pronto per il sampler
modoCOMBOgenera da ideagenera da idea = scrive scena/dettaglio/negativo da 'idea'. tal quale = usa 'scena'/'dettaglio'/'negativo' come li scrivi, senza generazione
ideaSTRINGUsata solo con 'genera da idea'. Qualunque lingua, bastano poche parole. Vuota + immagine = descrive l'immagine
scenaSTRINGCon 'tal quale': il prompt usato com'e'. Con 'genera da idea': ignorata (la scrive il text encoder: leggi il risultato nel 'report')
dettaglioSTRINGCon 'tal quale': dettaglio usato com'e' (vuoto = solo 'scena'). Con 'genera da idea': ignorato
negativoSTRINGCon 'tal quale': negativo per il NAG, usato com'e'. Con 'genera da idea': ignorato
stileCOMBOfoto realisticaUsato solo con 'genera da idea'
paroleINT8030–200Lunghezza della SCENA (il dettaglio e' il 30-50% in piu'). Usato solo con 'genera da idea'
creativitaFLOAT0.000–1.50 = deterministico (stesso testo ogni volta). 0.6-0.9 = variazioni; cambia il seed. Usato solo con 'genera da idea'
seedINT00–18446744073709550000Conta solo con 'genera da idea' e creativita > 0
nag_scalaFLOAT3.00–20NAG: forza del negativo a cfg 1. 0 = spento. Tarato: 3
nag_tauFLOAT2.51–10NAG: limite della norma (quanto puo' allontanarsi dal positivo)
nag_alphaFLOAT0.250–1NAG: mescola con l'attenzione originale
nag_blocchiSTRINGtuttiBlocchi DiT (0-27): 'tutti', '0-13', '5,8,10-12'
nag_sigma_daFLOAT-1.00-1–1NAG attivo da questa sigma in giu'. 1.0 = da subito (puo' cambiare la composizione). -1 = dalla sigma di passaggio del profilo (~0.87): togli il negativo SENZA cambiare la composizione
nag_sigma_aFLOAT0.000–1NAG attivo fino a questa sigma
strutturaCOMBOspentaPAG = attenzione identita': piu' nitido e contrastato. SEG = query sfocate: aloni sopra 0.3
struttura_scalaFLOAT0.00-5–10Forza della guida di struttura. 0 = spenta
struttura_blocchiSTRING8-19—
seg_sfocaturaFLOAT10.00.5–1000SEG: sigma gaussiana in token (>=1000 = infinita)
struttura_sigma_daFLOAT-1.00-1–1Finestra della guida di struttura: da questa sigma... (-1 = dal profilo)
struttura_sigma_aFLOAT0.000–1...fino a questa (costa solo dentro la finestra)
immagineoptIMAGERiferimento visivo (Qwen3-VL lo guarda). Solo con 'genera da idea'
pelleoptCOMBOliscia (senza peluria)Solo con 'genera da idea'
istruzionioptSTRINGTue istruzioni extra per l'enhancer, qualunque lingua. Solo con 'genera da idea'

Outputs (4)

NameTypeDescription
modelMODELCon NAG/struttura applicati: collega qui il sampler
positiveCONDITIONINGScena + dettaglio in un solo conditioning: collega qui il 'positive' del sampler
negativeCONDITIONINGNegativo codificato: serve solo se nel sampler metti cfg > 1
reportSTRING—