Krea 2 Identity Edit
Keep the face, change everything else
- clip
- vae
- image
- image2
- fuse_with
- sources
- target_latent
- CONDITIONING
The headline feature of this pack. Krea2IdentityEdit is how you do the thing Krea 2 can't do with stock ComfyUI nodes: "create a photo of this person at a night market" - same face, same outfit, relit and re-placed. It's an instruction-driven, identity-preserving edit node, and it's the whole reason most people install this pack.
What it needs first
Two things you must have or nothing works. First, a krea2_edit LoRA loaded at strength 1.0 via LoraLoaderModelOnly - the community one is conradlocke/krea2-identity-edit (weights on HuggingFace, also on Civitai as krea2_identity_edit). Second, the qwen3vl_4b text encoder via CLIPLoader type krea2 and the qwen_image_vae. Without the right encoder the node will error out with a message telling you exactly that. ComfyUI 0.25.0+ has native Krea 2 support, so the model side is stock.
How it works
The identity magic is dual conditioning, the same recipe the original ComfyUI-Krea2Edit pack (lbouaraba, Apache-2.0) introduced. Your source image gets encoded twice, through two different paths:
- Clean source latents ride in-context at RoPE frames 1..N - the LoRA's "preserve this" signal, delivered the way QwenImage and Flux edit models deliver references, not as semantic description.
- The instruction is grounded on the source through Qwen3-VL, so the model understands what it's editing while looking at it.
That second path is why grounding_px exists: it caps the longest side fed to Qwen3-VL. Lower = the model follows your instruction more loosely but obeys it more; higher = it preserves likeness. 768 is the balanced default, and 1024+ if the subject is a person's face. The LoRA trained at 384–768px, so 0 disables resizing entirely.
The inputs that matter
clipandprompt- the edit instruction.promptempty means "keep the image."vae- required the moment an image is connected. Without it you get a text-grounded encoding and no identity preservation, plus a console error telling you so.image/image2- for two-ref workflows, scene first, subject second. Single-ref: justimage.ref_boost- the reference-fidelity dial. It multiplies target→reference attention, applied to the last ref (the subject). 1.0 = off; the v1.2 LoRA author suggests 2–6; below 1 loosens. Set it on the positive node, leave the negative at 1.0.ref_boost_ais the same dial for the earlier ref (the scene).target_latent+fit_mode- connect your empty sampling latent here and the v1.2 fit geometry kicks in: refs are fitted in pixel space to the output resolution before VAE-encoding. This is the blur fix. The v1.1 LoRA had a known blurring/ghosting problem and a strict "match the source aspect ratio" requirement; v1.2 trained on this fit geometry and it removes both.crop (legacy)restores the old geometry for v1/v1.1 weights.fuse_with- feed a Moodboard Encode conditioning to fuse style-from-references with identity-from-source.
The negative node trick
For CFG > 1 you need two of these: one on the positive with your instruction, one on the negative with an empty prompt but the same image. That's the training unconditional, and it's required for the math to work. If CFG > 1, connect the same target_latent to both so both passes share one geometry. This is the classic wiring mistake people hit - the negative node isn't optional, it just doesn't need a prompt.
Common issues
- It completely ignores the reference. Check the VAE is connected, the LoRA is at 1.0, and you loaded the
krea2CLIP. In the release threads this is almost always one of those three. - Blurry or ghosted output. That's the v1.1-era AR-mismatch problem. Connect
target_latentand use the defaultfitmode; also matching the output resolution to the source still gives the best results. - It just recreates the reference instead of editing. Your instruction isn't getting through - check
grounding_pxisn't tiny, and on Turbo run 8–12 steps (8 favors composition, 12 favors face detail).
Output is a single CONDITIONING, straight into the KSampler positive. Pair it with the fusion node or a Moodboard Encode on fuse_with and you get style-plus-identity in one pass.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| prompt | STRING | Edit instruction. Leave empty on the negative node. | |
| vaeopt | VAE | — | |
| imageopt | IMAGE | — | |
| image2opt | IMAGE | — | |
| grounding_pxopt | INT | 7680–4096 | Cap on the longest side fed to Qwen3-VL (the identity LoRA trained with 384-768px). 0 = never resize. |
| fuse_withopt | CONDITIONING | Optional conditioning to fuse in front of this one (e.g. Krea 2 Moodboard for scene/style vibe). Its token rows are prepended; this node's identity reference latents are kept. Matches the Neo moodboard+edit fusion layout. | |
| sourcesopt | KREA2_SOURCES | chained sources (Krea2 Edit Source Chain) — appended after image/image2 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. Applies to the LAST ref (the subject in two-ref workflows, the only ref in single-ref). 1.0 = off; >1 pulls harder toward the reference's appearance (the v1.2 edit-LoRA author suggests 2-6); <1 loosens. Set on the POSITIVE node; leave the negative at 1.0. |
| ref_boost_aopt | FLOAT | 1.000–10 | same dial for the earlier refs (the scene in two-ref workflows). No effect in single-ref workflows. 1.0 = off |
| target_latentopt | LATENT | connect your (empty) sampling latent to enable the v1.2 'fit' geometry: 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 it to the negative edit node too so both passes share one geometry. | |
| fit_modeopt | COMBO | fit | how refs fit a mismatched output AR (needs target_latent + vae): fit = resample to the target grid at a centered offset, matching how the v1.2 edit LoRA was trained; crop (legacy) = center-crop to the target AR then resize (v1/v1.1 geometry, for older weights). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |