Krea2 Projector Delta
Krea 2's filter fix, distilled to twelve numbers in a text box
- model
- model
If you've run Krea 2 for more than an hour, you've met the filter. It's baked into the weights rather than bolted on, it silently drops prompt clauses about bodies, violence and gore, and it flattens expressions even on perfectly safe prompts - the community calls those dead zones "craters" for a reason. The usual fixes are a conditioning-rebalance node or an uncensor LoRA, but a standout r/StableDiffusion thread extracted the tiny 1KB bypass files people were swapping around and showed the whole thing reduces to twelve numbers applied to one weight in the text-fusion projector. Krea2 Projector Delta is those twelve numbers, live on the graph.
No API, no key, no model files of its own. The pack is a couple of Python files, a JSON of presets and a small JS tweak - that's the entire install. It sits between your model loader and the sampler and patches the model in place, so the rest of your workflow doesn't change.
What it actually does
The node clones your model, builds a (1,12) tensor from the preset (or from your own comma-separated values), and hands it to ComfyUI's model-patching flow keyed to diffusion_model.txtfusion.projector.weight - the exact weight the FilterBypass v2/v3 .safetensors files poke, which is why those files are a single kilobyte. The strength control scales the delta before it's applied, exactly the way LoRA patch strength works. In effect it's a LoRA you can read: every number that matters is sitting in a text box in front of you.
Inputs that matter
- preset - the dropdown ships with
FB2(columns 9–10 only),FB3(columns 9–11),FEDOR(numerically identical to FB2, just longer decimals), andSKC3VO(the LoRA-derived one that touches all twelve columns). - use_custom and custom_values - flip the switch and type twelve comma-separated floats; the default string is the FB2 raw diff, a handy reference to edit from.
- strength - default 1, range −100 to 100. Negative flips the patch's effect, which is occasionally exactly what you want.
The one output is the patched model, straight into the KSampler. Nothing else to wire.
Installing
ComfyUI Manager works - search "ComfyUI-krea2_projector_delta" - or clone it directly:
cd ComfyUI/custom_nodes
git clone https://github.com/Patvessel/ComfyUI-krea2_projector_delta
Restart ComfyUI and hard-refresh the browser tab so the JS extension loads. There's no requirements.txt: it only uses torch, comfy and aiohttp, all already present in a stock install. The heavy lifting is the model itself - Krea 2 needs its Qwen3-VL text encoder and Qwen-Image VAE alongside the checkpoint, which people routinely forget.
Where people get burned
- It only does anything on a Krea 2 model. The node patches
diffusion_model.txtfusion.projector.weight; if that key doesn't exist in the loaded model, there's nothing to patch. Running it on Flux or SDXL silently does nothing, so check that you've loaded Krea 2. - Preset changes need a restart. Presets live in
presets.jsonnext to the node; edit them to add your own values, then restart or refresh so the dropdown rebuilds. Each entry must be exactly 12 numbers. - Strength is a real dial, not a formality. The shipped example workflow runs FEDOR at 5, while the community's experience is that these deltas "fry the image" if you overshoot. Fix your seed and sweep strength - and sweep the preset, since FB2 vs SKC3VO behave differently at the same value.
- The JS is cosmetic. Preset selection fills the
custom_valuesbox and each run writes the applied values back into it. If the box stops tracking, it's a frontend refresh issue, not a patch failure.
Honest take: if you just want the filter gone with the least quality cost, the uncensor LoRA is still the community default and it also fixes prompt adherence. Reach for this node when you want the mechanism exposed - when you want to see the exact vector, tune a single column, or explore parameter combinations the way the author built it for. Being able to read the patch is worth something; being able to argue with it is worth more.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| preset | COMBO | none | 5 options: none, FB2, FB3, FEDOR, SKC3VO |
| use_custom | BOOLEAN | false | — |
| custom_values | STRING | 0,0,0,0,0,0,0,0,-0.51171875,-0.890625,0,0 | — |
| strength | FLOAT | 1.00-100–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |