Tutu Krea2T Enhancer
Krea2 ignores half your prompt? This node nudges the text-fusion path
- model
- model
If you've run Krea 2 locally and wondered why your carefully written prompt comes back half-followed - the expression is flat, the clause about the character's body silently vanished - it's not you. Krea's own head of research admitted the open weights went through an alignment pass the hosted model never got, and it lobotomizes prompt adherence in places that have nothing to do with safety. Most people fix that with the uncensor LoRA or the conditioning rebalance node. Tutu Krea2T Enhancer is a third route: instead of touching conditioning or training, it patches the model at runtime and amplifies the text signal inside the model, right where it becomes conditioning.
What it actually does
The name tells you most of it. This is a drop-in prompt-adherence booster for Krea 2 and Krea 2 Turbo. It's a MIT fork of capitan01R/ComfyUI-Krea2T-Enhancer, which showed up the day after Krea 2 released and quickly became the standard one-knob answer to "model keeps ignoring my prompt." The original author describes it plainly: it "patches the Krea2 model path at runtime and applies a controlled adjustment inside the text-fusion stage, instead of rewriting the prompt or adding extra conditioning nodes."
The text-fusion stage is the interesting bit. Krea 2's text conditioning runs through a txtfusion block that compresses the text-encoder layers before they enter the main image stream, and that path is where the alignment damage concentrates. The node grabs the model's 12 text-attention (TAP) layers, runs them once to get a baseline, runs them again with the per-layer activations scaled by a fixed 24-chunk gain profile, then adds the difference back into the baseline - clamped so the change never pushes any token past ~0.75× its original magnitude. In plain English: it turns up the volume on what your prompt already said inside the model, without letting that amplification blow out the whole image. That's why it behaves differently from a prompt rewrite - nothing about your text changes, only how hard the model listens to it.
The inputs that matter
There are only four, and the wiring is trivial:
Load Diffusion Model -> Tutu Krea2T Enhancer -> KSampler
- model (MODEL in) - feed it the loaded Krea 2 / Turbo model. It clones the model and installs a wrapper, so your original model object stays untouched.
- enabled (bool, default on) - off means pure passthrough.
- strength (float 0–2, default 1.0) - the one you'll actually touch. The original author recommends keeping it between 0.75 and 1.0; above 1.0 is amplification into experimental territory.
- debug (bool, default off) - prints runtime diagnostics to the console, capped at 8 lines per run. Turn it on when nothing seems to happen.
Output is a single MODEL that feeds your KSampler exactly where the unenhanced model would.
Why this fork exists
Here's the part that matters right now. In July 2026 a ComfyUI core update added a ref_latents positional argument to the Krea2 model call, which broke every enhancer wrapper written against the old fixed signature. The error was everywhere:
krea2t_enhancer_wrapper() takes from 4 to 6 positional arguments but 7 were given
The Tutu fork fixes it by accepting the model's full argument list and passing it through transparently - old call shape, new call shape, whatever gets appended next. It also uses its own node, wrapper and config keys, so it can be installed alongside the original without either clobbering the other. Upstream got patched too, but if you want a version you don't have to babysit through the next ComfyUI change, this is the maintained one.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/zhaotututu/ComfyUI-TutuKrea2T-Enhancer.git
Then restart ComfyUI. It should also show up in ComfyUI Manager if you search "Tutu" or the pack title. No extra Python dependencies - the README is explicit that it needs nothing beyond a working Krea 2 install (which is already its own three-file stack: model, Qwen3-VL text encoder, Qwen-Image VAE). To update later: git pull --ff-only inside the folder, then restart.
Gotchas
Where people get burned: the node silently does nothing on non-Krea models. The wrapper checks for the Krea2 text-fusion layout and passes through if it doesn't match - with debug on, you'll see "skipped: diffusion model does not match Krea2 text-fusion layout." So if you wire it into an SDXL graph expecting magic, you get nothing but a healthy dose of confusion.
One honest caveat: the original author has since said the runtime-patch approach was a proof-of-concept, and the "cleaner route" he settled on is a TextFusion-targeted LoRA that learns the same behavior during training. The node still works and is the zero-effort option, but treat it as a stopgap that costs you a bit of sampling stability rather than a permanent cure - and if your ComfyUI ever updates and breaks it, that's the exact scenario this fork exists to survive.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| enabled | BOOLEAN | true | — |
| strength | FLOAT | 1.000–2 | — |
| debug | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |