Nodes/RedNode Studio/Krea 2 Moodboard + Identity Fusion
ComfyUI Node

Krea 2 Moodboard + Identity Fusion

Krea 2 Moodboard + Identity Fusion

By RedNodeAI·Created 3 months ago·Updated 3 days ago· 14
Krea 2 Moodboard + Identity Fusion
  • clip
  • edit_source
  • moodboard_images
  • vae
  • edit_source2
  • sources
  • target_latent
  • ref_boost_mask
  • edit_mask
  • CONDITIONING
◄instruction►
◄strength0.50►
◄extract▾►
◄reference_processing▾►
◄style_directivetrue►
◄indirecttrue►
◄budget_px384►
◄grounding_px768►
◄ref_boost1.00►
◄ref_boost_a1.00►
◄fit_modefit►
◄ref_start0.00►
◄ref_end1.00►
◄edit_mask_feather2►
◄isolate_refsfalse►
◄boost_blocksall►
◄grounding_px_subject0►
◄picture_labelsfalse►
◄ref_t0_modulationfalse►
◄system_prompt►

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_source only → a plain identity edit (like Krea2IdentityEdit).
  • moodboard_images only → plain vibe transfer (like Krea2MoodboardEncode).
  • 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.

CategoryRedNode/Krea 2

Inputs (29)

NameTypeDefaultDescription
clipCLIP—
instructionSTRINGthe edit instruction, e.g. 'create a photo of this person at a night market'
strengthFLOAT0.500–1—
extractCOMBO2 options: style / vibe, subject / concept
reference_processingCOMBO3 options: full image, quadrant crops (2x2), fine tiles (4x4)
style_directiveBOOLEANtrue—
indirectBOOLEANtruedelete moodboard rows after encoding; style survives via in-encoder attention. Safest when style refs contain people.
budget_pxINT384128–1536—
grounding_pxINT7680–2048longest-side cap for the edit source fed to the encoder
edit_sourceoptIMAGEidentity source image. Not connected = pure moodboard mode.
moodboard_imagesoptIMAGEstyle references (batch for several). Not connected = pure identity-edit mode.
vaeoptVAEconnect to attach the in-context identity latents (required for actual editing)
edit_source2optIMAGE2nd reference for two-ref LoRAs (scene first, subject second)
sourcesoptKREA2_SOURCESchained sources (Krea2 Edit Source Chain) — inserted BETWEEN edit_source (scene) and edit_source2 (subject), so the subject stays the LAST ref and keeps the boost/mask dials. 3+ refs is beyond the LoRA's training; identities may blend.
ref_boostoptFLOAT1.000–10reference-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_aoptFLOAT1.000–10same dial for the earlier identity refs (the scene in two-ref workflows). No effect single-ref. 1.0 = off
target_latentoptLATENTconnect 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_modeoptCOMBOfithow 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).
ref_boost_maskoptMASKoptional region on the LAST (subject) edit source to boost, e.g. just the face — identity boost without over-copying the scene
ref_startoptFLOAT0.000–1when the identity refs become active (0 = first step). Start later to free composition before identity locks in.
ref_endoptFLOAT1.000–1when the identity refs switch off (1 = last step).
edit_maskoptMASKhard edit locality: white = the region the model may change. Everywhere else the FIRST edit source is re-imposed at each denoising step, so untouched areas stay pixel-faithful instead of relying on the LoRA. Needs the source on the target grid (matched output AR, or fit_mode 'crop (legacy)'). With CFG > 1 wire the SAME mask to the negative edit node too.
edit_mask_featheroptINT20–32soft edge for edit_mask, in latent pixels (1 latent px ≈ 8 image px); 0 = hard edge
isolate_refsoptBOOLEANfalsemulti-ref only: stop the identity references attending to EACH OTHER — reduces identity/style bleed between two people. No effect with a single reference.
boost_blocksoptCOMBOallexperimental: restrict the ref_boost dials to a depth range of the DiT. early = composition/pose-leaning pull, late = texture/detail-leaning pull, all = normal. Combines with ref_boost_mask and the ref_start/ref_end window.
grounding_px_subjectoptINT00–4096separate grounding cap for the 2nd+ edit sources (the subject in two-ref order often deserves 1024+ while the scene doesn't). 0 = use grounding_px for all refs.
picture_labelsoptBOOLEANfalseEXPERIMENTAL training-parity toggle: 'Picture N: ' prefixes on the vision blocks (ai-toolkit layout; the packed moodboard counts as Picture 1, edit sources follow). Default off. Match the negative node; A/B before adopting.
ref_t0_modulationoptBOOLEANfalseEXPERIMENTAL training-parity toggle: modulate the clean reference tokens at timestep 0 (as ai-toolkit trains). Default off. Match the negative node; A/B before adopting.
system_promptoptSTRINGADVANCED: override the vision system prompt (empty = training default). Steers HOW the encoder reads ALL references (moodboard + edit sources) — e.g. domain-neutral identity reading for anime→real. Match the negative node; A/B.

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING—