IAMCCS Krea 2 Identity Multi-Gen
One identity, a dozen prompt variations, a single queue
- model
- clip
- vae
- image
- image_b
- images
- count
- report
Krea 2, if you missed it, is the 12B diffusion transformer that took the open-weights world by storm in mid-2026 - a genuinely undistilled base model, permissively licensed, with a notorious quirk: the open weights went through an alignment pass the API version didn't, so identity preservation in particular wants a careful hand. This node is IAMCCS's answer to the "one identity, many shots" problem: paste a newline-separated list of prompts and it runs a full Krea 2 image-edit generation for each one, from a single reference image, with identity-preservation baked into the conditioning at every step.
The mechanism is worth understanding because it's both clever and demanding. It doesn't reinvent the Krea 2 pipeline - it composes it at runtime. The node calls Krea2EditModelPatch to patch your model with the source latent (and an optional image_b for a second reference), then Krea2EditGroundedEncode for grounded conditioning, ConditioningKrea2Rebalance with your per_layer_weights, and samples with ClownsharKSampler_Beta (the RES4LYF beta sampler). Then it loops: one encode+sample+decode per prompt line, stacking all results into one batched images output.
That means the install story is the headline gotcha: this node requires the Krea 2 nodes to already be installed. If Krea2EditModelPatch, Krea2EditGroundedEncode, or ConditioningKrea2Rebalance aren't registered, the node fails at runtime with a clear "install/update the Krea 2 Edit, Conditioning Rebalance and IAMCCS custom nodes" error. Same for ClownsharKSampler_Beta. It will not silently skip - and that's the right behavior, because a multi-gen run that silently drops its identity machinery would waste your time.
The inputs that matter:
image(and optionalimage_b) - your identity reference(s). Thesystem_promptdefault is a genuinely good identity brief ("Prioritize facial geometry, apparent adult age, eye color, hair characteristics...") - it rides along on every encode and it's the main reason generations stay on-identity.multi_prompt+separator- the list (newline by default) and the splitter. Blank lines are skipped; an empty list returns a zero-count report instead of erroring.seed+seed_mode-fixed(same seed every prompt),increment(seed + index), orrandom. Increment is the one you want for variation batches.ref_boost(1.15) /ref_boost_a(1.0) - reference conditioning strength knobs that get passed straight into the Krea 2 model patch. Pushref_boostwhen faces drift.grounding_px(768),per_layer_weights(the long default string, with heavy weights late in the list),rebalance_multiplier(4) - the grounded-encode and rebalance controls. The defaults are tuned; change them deliberately.width/height(1024),steps(8 default - Krea 2 is a few-step model),cfg(1.0),denoise(1.0),eta,sampler_name(exponential/ddim),scheduler(beta57).
Outputs: images (a batch of all generations, decode-flattened), count (how many ran), and report (JSON with the actual seeds used and how many references were active - keep this, it's your reproducibility record).
Installation: search IAMCCS in ComfyUI Manager, or clone https://github.com/IAMCCS/IAMCCS-nodes.git into custom_nodes, restart - then install the Krea 2 edit/conditioning packs and the RES4LYF pack for the beta sampler, because this node composes them. Model side: a Krea 2 checkpoint and the Qwen-Image VAE (Krea 2's VAE family).
The trap: rebalancing at default rebalance_multiplier 4 with per_layer_weights set to identity-heavy late layers is what holds the face together - if your batch drifts, it's almost always those two knobs plus ref_boost, not the prompts.
Inputs (24)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| vae | VAE | — | |
| image | IMAGE | — | |
| multi_prompt | STRING | — | |
| seed | INT | 00–18446744073709550000 | — |
| seed_mode | COMBO | fixed | 3 options: fixed, increment, random |
| width | INT | 102464–8192 | — |
| height | INT | 102464–8192 | — |
| steps | INT | 81–100 | — |
| cfg | FLOAT | 1.000–100 | — |
| denoise | FLOAT | 1.000–1 | — |
| separator | STRING | \n | — |
| negative_prompt | STRING | — | |
| ref_boost | FLOAT | 1.150–1000 | — |
| ref_boost_a | FLOAT | 1.000–1000 | — |
| grounding_px | INT | 7680–4096 | — |
| system_prompt | STRING | Prioritize facial geometry, apparent adult age, eye color, hair characteristics, skin tone, distinctive facial marks and body proportions. Preserve identity while following the requested pose, framing and environment. | — |
| rebalance_multiplier | FLOAT | 4.00-1000000000–1000000000 | — |
| per_layer_weights | STRING | 1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.5,5.0,1.1,4.0,1.0 | — |
| eta | FLOAT | 0.50-100–100 | — |
| sampler_name | STRING | exponential/ddim | — |
| scheduler | STRING | beta57 | — |
| image_bopt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| count | INT | — |
| report | STRING | — |