Nodes/⚗ AlchemicaSampler/⚗ Alchemica · Hybrid (fuse traits of photos) [1.0, use Alchemica Hybrid (fuse the traits of photos)]
ComfyUI Node

⚗ Alchemica · Hybrid (fuse traits of photos) [1.0, use Alchemica Hybrid (fuse the traits of photos)]

What changed, and which one your workflow is on

By Nessuno76·Created about a month ago·Updated 21 days ago· 4
⚗ Alchemica · Hybrid (fuse traits of photos) [1.0, use Alchemica Hybrid (fuse the traits of photos)]
  • clip
  • immagine_1
  • immagine_2
  • immagine_3
  • immagine_4
  • soggetto
  • report
◄peso_11.00►
◄peso_21.00►
◄peso_31.00►
◄peso_41.00►
◄idea►
◄tipocreatura / animale►
◄parole70►
◄creativita0.00►
◄seed0►
◄miscelaun tratto = una foto►
◄priorita_ideaequilibrio►
◄volto_unicotrue►
◄ritaglio_voltotrue►

This is the Italian-named first build of ⚗ Alchemica Hybrid - the node that fuses up to four photos into one new subject described in words. In 1.1 the pack restyled every node with English socket and widget names and moved the originals into a legacy (1.0) category. They're hidden from search, they still load, and their saved widget values and connections are untouched, which is the only reason they're still here.

Parameter mapping, since that's what you actually need: immagine_1 … immagine_4 → image_1 … image_4, peso_1 … peso_4 → weight_1 … weight_4, tipo → subject, parole → words, creativita → creativity, miscela → mix_mode, priorita_idea → idea_priority, volto_unico → unique_face, ritaglio_volto → face_crop. Outputs soggetto / report → subject / report. idea and seed kept their names.

What it does

Krea 2's text encoder is a vision-language model, so it can look at your photos. The node runs three steps: LOOK (read each photo into a sheet of traits - for a person, 17 of them, 14 on the face), SHARE (code allocates those traits by your normalised weights, either taking each trait whole from one photo or blending every trait across all of them), WRITE (the encoder writes the final description). Output soggetto is the resulting prompt.

Two details do most of the work in practice. volto_unico removes generic beauty words that drag every generated face toward the model's average. And creativita at 0 is fully deterministic - same photos and weights, same description every run, which is what makes this usable for building a repeatable character or a dataset rather than a one-off curiosity.

The one substantive difference in 1.1

face_crop didn't exist here. This node reads the whole photo, always. The 1.1 node defaults to reading the face from a close crop found by an insightface detector, because on a full-body photo the face is a few dozen pixels and the encoder can't describe what it can't see. If your 1.0 hybrids came out with vague faces, that's the fix, and it's worth porting for it alone.

The 1.1 node also benefits from the disk cache (ComfyUI/user/alchemica/schede_foto.json), so a photo is read once instead of on every queue.

Should you port?

If you have a working 1.0 workflow, it will keep running - the nodes are the same tested code with a rename wrapper, and the pack was careful about socket order so saved links land where they did. But there's no upside to staying: the English node is discoverable in the search box, gets the newer read path, and is where anything gets fixed.

Ported, it's a two-minute job: drop in ⚗ Alchemica Hybrid, reconnect the same four photos and the string output, and translate the two menu widgets (miscela: un tratto = una foto → one trait = one photo, miscele tratti → blended traits; tipo: creatura / animale → creature / animal).

Installing

# ComfyUI Manager: search "AlchemicaSampler"
cd ComfyUI/custom_nodes && git clone https://github.com/Nessuno76/ComfyUI-AlchemicaSampler

ComfyUI 0.36+ (the writing step uses CLIP.generate), no pip dependencies, restart the server. insightface is optional at every level - without it the 1.1 node just reads whole photos like this one.

Common issues

Not in the search box. Legacy nodes are hidden from search on purpose. Right-click → Add Node → ⚗ AlchemicaMente → legacy (1.0).

soggetto won't connect to your prompt field directly. It's a STRING. It needs a text input that then gets encoded - the pack's ⚗ Text Encode, ⚗ Two-Phase Text Encode or ⚗ Prompt node.

The description drifts between queues. Only if creativita is above 0, and then the seed is what changes it. The trait allocation itself never changes; only the wording.

Category⚗ AlchemicaMente/legacy (1.0)

Inputs (18)

NameTypeDefaultDescription
clipCLIPKrea 2's text encoder (Qwen3-VL-4B): it looks at the photos and writes the description
immagine_1IMAGE—
peso_1FLOAT1.000–4Weight of photo 1. Normalised: it sets the SHARE of this photo (1 and 1 = half each; 2 and 1 = two thirds from photo 1). 0 = ignore
peso_2FLOAT1.000–4Weight of photo 2. Normalised: it sets the SHARE of this photo (1 and 1 = half each; 2 and 1 = two thirds from photo 1). 0 = ignore
peso_3FLOAT1.000–4Weight of photo 3. Normalised: it sets the SHARE of this photo (1 and 1 = half each; 2 and 1 = two thirds from photo 1). 0 = ignore
peso_4FLOAT1.000–4Weight of photo 4. Normalised: it sets the SHARE of this photo (1 and 1 = half each; 2 and 1 = two thirds from photo 1). 0 = ignore
ideaSTRINGOptional: extra instruction for the final description. How much it weighs against the photos: 'priorita_idea'
tipoCOMBOcreatura / animaleWhich traits are compared: animal (body, coat, ears, muzzle, eyes, tail...), person (17 traits, 14 of the face), object, or generic
paroleINT7030–220Length of the hybrid description. Person: 110-140 (17 traits + the idea)
creativitaFLOAT0.000–1.50 = deterministic (same photos + weights = same description: use it for datasets). 0.5-0.9 = wording variants, change the seed. The allocation of traits never changes
seedINT00–18446744073709550000Only matters when creativity > 0
immagine_2optIMAGE—
immagine_3optIMAGE—
immagine_4optIMAGE—
miscelaoptCOMBOun tratto = una fotoone trait = one photo: every trait comes whole from one photo (weights = how MANY traits). blended traits: every trait is an in-between of all photos (weights = how MUCH each pulls): the real mix of the characters
priorita_ideaoptCOMBOequilibrioHow much the idea weighs against the photos. 'traits win': the idea sets pose, clothes and mood but never changes the traits from the photos (person: the FACE and hair stay from the photos, the idea may still set the body). 'idea wins': the idea overrides them
volto_unicooptBOOLEANtruePerson: removes generic beauty words (perfect, flawless, beautiful, symmetrical...) that pull every face to the model's average face, and asks for a specific individual
ritaglio_voltooptBOOLEANtruePerson: reads the face from a close crop (insightface detector, CPU). On a full-body photo the face is too small to describe. Off = whole photo, as in 1.0.x

Outputs (2)

NameTypeDescription
soggettoSTRING—
reportSTRING—