⚗ Alchemica Text Encode (scene / detail / negative)
Scene, detail and negative, encoded for NAG in one go
- clip
- positive_scene
- positive_detail
- negative
- detail_text
- positive
A CLIP Text Encode node has one box. This one has three, and the split is not cosmetic - it's the difference between prompting for composition and prompting for rendering.
What it is
AlchemicaTextEncode encodes three texts at once: a scene, a detail, and a negative_text. It's the plain encoding half of the AlchemicaSampler prompt toolkit - no LLM, no prompt writing, no NAG patch - so it's what you use when you already know what you want to say, or when the text came from somewhere else (a wildcard list, the Prompt Enhancer, a text file, another node entirely).
The split exists because the two texts do different jobs, and the pack's own measurements explain why. On Krea 2 Turbo, composition and palette are essentially decided in the first step - 98.5% of it is locked by σ ≈ 0.87 - while sharpness builds between σ 0.57 and 0.13. A scene prompt changes the picture; a detail prompt, delivered in the later window, changes texture, skin, fabric and optics. Which is exactly why the pack runs them as two phases in the Pro sampler and as one combined conditioning everywhere else.
The inputs
clip- Krea 2's text encoder. Loaded with typekrea2; anything else and you'll get a conditioning-size error downstream.scene- subject, pose, framing, setting, light, colours, style.detail- how surfaces render: skin, materials, grain, optics. No new objects, no colour changes.negative_text- things to avoid. It feeds NAG, not the sampler's negative socket.join-scene + detail(the default) ordetail only.
Take join seriously. scene + detail means the detail conditioning still contains the scene, so the model doesn't forget its subject halfway down the trajectory - the pack recommends it for good reason. detail only replaces the scene outright, which is the setting where a face quietly becomes a different person.
The outputs
positive- scene plus detail in one conditioning. This is the one most samplers want: send it to the KSampler's positive.positive_scene- scene only, for the first phase of ⚗ Alchemica KSampler Pro.positive_detail- the detail phase for the same node.negative- the encoded negative, for ⚗ Alchemica Attention Guidance. At cfg 1 it has no effect anywhere else.detail_text- the text actually encoded for the detail phase, which is your only way to see what ajoinsetting or a wildcard expansion actually produced.
That negative output is the part people misunderstand. Krea 2 Turbo is guidance-distilled and runs at CFG 1, and at CFG 1 there is no unconditional pass, so a negative prompt wired into a plain KSampler does nothing whatsoever - not weak, not subtle, not computed. NAG (normalized attention guidance) is the workaround: it applies the negative in attention space instead, which is why the pack ships a node for it and why this node's negative is meant for that node. Wire it into the Attention Guidance node's negative input, and from there into the sampler's model.
Installing it
ComfyUI Manager, search "AlchemicaSampler", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Nessuno76/ComfyUI-AlchemicaSampler
# restart the ComfyUI server
No extra Python packages (the pack declares none), but you need ComfyUI 0.36.0 or newer and the three Krea 2 files in place: the checkpoint in models/diffusion_models, qwen3vl_4b_fp8_scaled.safetensors in models/text_encoders, qwen_image_vae.safetensors in models/vae. Missing the text encoder is the classic "the model is broken" report - you need all three files, not one.
Where it goes wrong
- The negative output does nothing. It's meant for NAG. At cfg 1 it never reaches the image any other way.
- "Krea 2 conditioning-size error". The text encoder wasn't loaded as type
krea2. Use ⚗ Load Krea 2. - Detail prompt changed nothing at all. It's in the same conditioning as the scene; on a sampler without a separate detail phase the model decides when to listen. Use the Pro sampler's two-phase inputs, or the Two-Phase Text Encode node.
- The face drifted when you used
detail only. That's the tradeoff, not a bug. Usescene + detail.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| scene | STRING | — | |
| detail | STRING | — | |
| negative_text | STRING | — | |
| join | COMBO | scene + detail | 2 options: scene + detail, detail only |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| positive_scene | CONDITIONING | Scene only: the first phase of ⚗ AlchemicaKrea Pro |
| positive_detail | CONDITIONING | Detail phase of ⚗ AlchemicaKrea Pro (scene + detail, or detail only, see 'unione') |
| negative | CONDITIONING | Negative for ⚗ Attention guidance (NAG) |
| detail_text | STRING | The text actually encoded for the detail phase |
| positive | CONDITIONING | COMPLETE positive (scene + detail together) for samplers without a detail input |