FL Krea Reference
Style, palette, or subject? FL Krea Reference picks what to borrow
- image
- reference
Krea 2 is unusual among open image models in that it reads images and text as one sequence. There's no separate IP-Adapter, no ControlNet graph, no CLIP-vision bolt-on: you hand it pictures and words together and it just... uses them. That's great, right up until you want to be specific about what it takes from the picture. FL Krea Reference is the node that answers that question. It packages one image plus an instruction - borrow the style, borrow the palette, borrow the subject, borrow the composition - into a single reference object.
Two things to know before you wire anything. First, roles guide interpretation, they do not lock identity or geometry - the node's own words, and they're honest ones. Saying "subject" doesn't give you a face swap. Second, this node only produces a reference object. It does nothing on its own; it feeds the guides/sampler that actually blends references into the denoising loop.
What it builds
Mechanically, it's a vision-language encode. The node builds a chat string with the Qwen vision markers, then your role instruction, then the scene prompt, tokenizes it against the Krea 2 template with the image attached, and encodes it through the Qwen3-VL text encoder that Krea 2 uses. The image is downscaled so its longest side fits the resolution you choose.
Then reference_mode decides how much of that gets through:
- context keeps only the text states that attended to the image and throws away the image's spatial tokens. You get an image-informed prompt, not a copy of the picture. This is the default and it's the anti-content-leakage setting.
- full also passes the visual tokens themselves, which is a much stronger resemblance - and a much shorter road to "why does my new image have her sofa in it".
The settings you'll actually touch
image is the reference. enabled is a mute switch, handy for A/B-ing without rewiring. role picks the interpretation - style, palette, subject, composition, or custom (which sends no instruction at all and leaves it entirely up to reference_mode).
weight is where people fumble the dial. From the tooltip: 0 is off, 0.05 applies 5%, 1 applies the full contribution before overall influence, and multiple references add their contributions. Which means two references at full weight are already oversubscribed - the guider downstream has to subtract to keep the arithmetic honest.
resolution (256/512/1024/1280) is the longest-side limit before vision encoding. Higher resolution means the model sees more detail. Start at 512; a 1280 reference is real compute for detail the encoder may not use well anyway.
start, end and fade place the reference in the diffusion schedule as fractions of the run, faded in sigma space. Half a schedule of style is a thing you can do now.
Output is a single reference socket of type FL_KREA_REFERENCE - it only connects to other Fill-Nodes reference inputs, and the natural destination is FL Krea Reference Guider's references input. Wire several references in parallel; that's the intended shape.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
Then restart. Two hard requirements beyond the pack itself: you need a Krea 2 model, and you need a CLIPLoader set to type krea2. The sibling guider throws a blunt error if it sees anything else, because the encode path is architecture-specific. You'll also need a ComfyUI new enough to have the Krea 2 text encoder code in comfy.text_encoders.krea2 - this is a recent-model feature, not something the pack vendors. Fill-Nodes' dependency list is long (OpenGL, audio, PDF and API libraries all come along), so a slow first install is normal.
Where people get burned
Content leakage is the field's known problem, and the community found it the hard way: push reference strength up for a stronger style and you start getting the reference's furniture and faces; turn it down and the style evaporates. That's precisely the tradeoff context mode and a modest weight exist to soften. If your output is picking up too much of the source, drop to 0.4–0.6 and stay in context before you start rewriting prompts.
And keep expectations calibrated: a reference is not a LoRA. It's a nudge on every sampling step, it costs a model evaluation wherever it's blended, and it will not teach the model a new face. For "make it look like this painting" it's the right tool. For "this exact character every time," go train.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| enabled | BOOLEAN | true | — |
| role | COMBO | style | 5 options: style, palette, subject, composition, custom |
| weight | FLOAT | 1.000–1 | Reference strength: 0 is off, 0.05 applies 5%, and 1 applies the full contribution before overall influence. Multiple references add their contributions. |
| resolution | COMBO | 512 | Longest-side limit before vision encoding. |
| start | FLOAT | 0.000–1 | — |
| end | FLOAT | 1.000–1 | — |
| fade | FLOAT | 0.000–0.5 | Fraction of the window used to fade at each edge, interpolated in sigma space. |
| reference_mode | COMBO | context | Context keeps image-informed text states to reduce copied layouts. Full also supplies visual tokens for stronger source resemblance. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| reference | FL_KREA_REFERENCE | — |