Krea2 Reference Text Encode
Feed Krea2 four images and one sentence
- clip
- vae
- image1
- image2
- image3
- image4
- CONDITIONING
Krea 2 ships with no editing support. The hosted style-reference and moodboard module was explicitly not released, and the official edit model is still "a few months out." So when you see a workflow that takes a Krea2 image, four reference pictures and one sentence and returns an edit, the thing doing the heavy lifting is usually this pack - and Krea2ReferenceTextEncode is the input end of the whole thing. It replaces CLIPTextEncode when you're running a Krea2 edit LoRA.
That's worth underlining: this node isn't for ordinary text-to-image. It's the piece that gets a picture (or four) into the conditioning so a reference-guided edit can happen at all.
How it works
Krea 2's text encoder is Qwen3-VL - an actual vision-language model, not a CLIP text tower. That's the whole reason multi-reference editing on Krea2 is plausible: the encoder can look at images, and the node exploits it. It feeds your reference images through the VLM using the exact tag format the adapter was trained on - <reference_1><|vision_start|><|image_pad|><|vision_end|></reference_1>, and so on for slots 2–4, then your prompt. The VLM sees a downscaled copy (capped at 512×512) for semantic understanding.
The second half only activates if you connect a vae. Then the node VAE-encodes each reference at full resolution - capped at 1024×1024 and snapped to multiples of 16 - and stashes the latents under a reference_latents key in the conditioning metadata. That's the payload Krea2ModelPatcher later consumes. No VAE, no latent references: you get text-driven reference conditioning only, and the patched model will behave like a plain (bad) edit rather than a pixel-anchored one.
The inputs that matter
The info_schema is small, which is nice:
clip- from thekrea2CLIPLoader with the Qwen3-VL encoder. No CLIP, no node.prompt- multiline. Describe the edit as an instruction ("replace the sky with a stormy sunset").vae(optional) - connect it to attach full-res reference latents. Do this if you want real editing, not just "inspired by."image1–image4(optional) - the references, in order. Slot 1 is conventionally the base image being edited; slots 2–4 are style/content references. Order matters because it maps to the trained slot convention.
The single output is a CONDITIONING tensor that feeds the KSampler - specifically a KSampler whose model has been through Krea2ModelPatcher.
Installing it
The pack has no requirements.txt to speak of - its only real import is einops, which ComfyUI already ships. Install is the usual two-step:
cd ComfyUI/custom_nodes
git clone https://github.com/molbal/ComfyUI-Krea2-MultiRef
Restart ComfyUI. Or open ComfyUI Manager → Custom Nodes Manager, search ComfyUI-Krea2-MultiRef, install, restart. Manager will find it once the repo is indexed.
What you do need separately are the model files, and this is where people get burned. You need all three: the Krea2 checkpoint (Raw or Turbo), the Qwen3-VL text encoder (~8GB), and the Qwen-Image VAE (~250MB). The last two are routinely forgotten, and the workflow just silently misbehaves without them. Krea2 also needs ComfyUI 0.25.0+ for the native krea2 text-encoder support this node imports. The trained adapter LoRA itself comes from molbal's HuggingFace (currently an early test checkpoint) and loads through a normal LoRA node.
Troubleshooting
- The edit never happens. Nine times out of ten the model wasn't patched - feed the conditioning through
Krea2ModelPatcher's output or the references are silently dropped. - Missing text encoder. If ComfyUI errors on
comfy.text_encoders.krea2, your ComfyUI predates native Krea2 support. Update. - Fuzzy, drifting results on the base image. That's the classic edit-model failure mode (re-emitting the whole frame instead of patching pixels), and it's worse when your
image1resolution doesn't match the output. Keep the base latent and the generation size in agreement.
One honest caveat: this whole pack is research-grade. molbal is a real Krea2 contributor - he did the Krea2 GGUF conversions - but the adapter behind this was trained to maybe 7500 of its planned 50,000 steps before GPU budget ran out. Expect rough edges, and check his repo for where the weights landed.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| prompt | STRING | — | |
| vaeopt | VAE | — | |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |