Krea 2 Moodboard + Identity Fusion
Krea 2 Moodboard + Identity Fusion
- clip
- edit_source
- moodboard_images
- vae
- edit_source2
- sources
- target_latent
- CONDITIONING
The recommended way to combine style references with an identity edit, and the reason the pack has three different moodboard nodes instead of one. This is the fusion node: style from a moodboard plus identity from a source image, done in one encode. Same sources, same VAE, same geometry - so the classic wiring mistakes can't happen.
Why fusion beats bolting two nodes together
You can technically get style-plus-identity by feeding a Moodboard Encode into an identity edit's fuse_with input. But that concatenates two separate encodes, which has a real weakness: indirect mode (delete the moodboard rows after encoding) can't work there, because a deleted span in a concatenated pass carries nothing. This node does the whole thing as a single encode, so the instruction and the edit grounding attend the moodboard span inside the encoder. That's what makes indirect - default ON here - genuinely functional: moodboard rows get deleted after encoding, so people in your style references structurally cannot appear in the output, while the style still transfers. If your style refs contain humans, that's the difference between "nice vibe" and "your aunt shows up in every image."
The three modes
Both image inputs are optional, and which ones you connect decides what the node is:
edit_sourceonly → a plain identity edit (likeKrea2IdentityEdit).moodboard_imagesonly → plain vibe transfer (likeKrea2MoodboardEncode).- both → the fusion. This is why you're here.
Add edit_source2 for two-ref edit LoRAs (scene first, subject second), and sources for chained extra references (3+ blends identities, same caveat as everywhere in this pack).
Wiring it up
Connect vae - it's optional in the schema but the tooltip is blunt: required for actual editing, since the identity latents come from VAE-encoding the source. Wire the output CONDITIONING as your KSampler positive. The negative is a Krea2IdentityEdit with an empty prompt and the same source image - the training unconditional. Fuse the positive only; style in the negative cancels under CFG.
The identity-side dials from the edit node are here too:
ref_boost/ref_boost_a- the reference-fidelity attention boosters, and note they hit the identity refs only. The moodboard span is unaffected, which is the behavior you want. 1.0 off; 2–6 recommended with the v1.2 edit LoRA.target_latent+fit_mode- connect your empty sampling latent to enable the v1.2 pixel-space fit geometry for the edit sources. This is the blur fix: refs are fitted in pixel space to the output resolution before VAE-encoding, removing both the blur and the old "match the source aspect ratio" requirement. With CFG > 1, connect the same latent to the negative edit node too.strength,extract,reference_processing,budget_px,style_directive,grounding_px- the moodboard and grounding dials, same semantics as the sibling nodes.
The bundled krea2_identity_edit_fusion.json example ships the v1.2 wiring (target_latent connected, ref_boost exposed, v1.2 LoRA) so you've got a working starting point.
Installing
Whole pack, one install - GPL-3.0, zero third-party node dependencies:
git clone https://github.com/RedNodeAI/ComfyUI-Krea2Moodboard ComfyUI/custom_nodes/ComfyUI-Krea2Moodboard
or ComfyUI Manager, search "Krea2Moodboard", restart. Needs ComfyUI 0.25.0+, qwen3vl_4b (CLIPLoader type krea2), qwen_image_vae, and a krea2_edit LoRA at strength 1.0 for the identity side. If you're doing vibe-plus-face at all, start here - it's the least likely to surprise you.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| instruction | STRING | the edit instruction, e.g. 'create a photo of this person at a night market' | |
| strength | FLOAT | 0.500–1 | — |
| extract | COMBO | 2 options: style / vibe, subject / concept | |
| reference_processing | COMBO | 3 options: full image, quadrant crops (2x2), fine tiles (4x4) | |
| style_directive | BOOLEAN | true | — |
| indirect | BOOLEAN | true | delete moodboard rows after encoding; style survives via in-encoder attention. Safest when style refs contain people. |
| budget_px | INT | 384128–1536 | — |
| grounding_px | INT | 7680–2048 | longest-side cap for the edit source fed to the encoder |
| edit_sourceopt | IMAGE | identity source image. Not connected = pure moodboard mode. | |
| moodboard_imagesopt | IMAGE | style references (batch for several). Not connected = pure identity-edit mode. | |
| vaeopt | VAE | connect to attach the in-context identity latents (required for actual editing) | |
| edit_source2opt | IMAGE | 2nd reference for two-ref LoRAs (scene first, subject second) | |
| sourcesopt | KREA2_SOURCES | chained sources (Krea2 Edit Source Chain) — appended after edit_source/edit_source2 as frames 3..N. 3+ refs is beyond the LoRA's training; identities may blend. | |
| ref_boostopt | FLOAT | 1.000–10 | reference-fidelity dial: multiplies target->reference attention for the LAST identity ref (the subject). 1.0 = off; >1 pulls harder toward the reference (the v1.2 edit-LoRA author suggests 2-6). Positive only — the moodboard span is unaffected. |
| ref_boost_aopt | FLOAT | 1.000–10 | same dial for the earlier identity refs (the scene in two-ref workflows). No effect single-ref. 1.0 = off |
| target_latentopt | LATENT | connect your (empty) sampling latent to enable the v1.2 'fit' geometry: identity refs are fitted in PIXEL space to the output resolution before VAE-encoding — fixes blur from resolution mismatch and removes the match-the-aspect-ratio requirement. With CFG > 1, connect the same latent to the negative edit node too. | |
| fit_modeopt | COMBO | fit | how identity refs fit a mismatched output AR (needs target_latent + vae): fit = resample to the target grid at a centered offset (v1.2-trained geometry); crop (legacy) = center-crop to the target AR then resize (v1/v1.1 geometry, for older weights). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |