krea-explorations / README.md
fbjr's picture
Refresh README: link GitHub repo; add L20 directional-hub / RAW=Turbo / refiner-diffuse / rebalance-lever findings; clarify solo probes are diagnostic (attention-mixed slot, not a clean layer)
63ab11f verified
|
Raw
History Blame Contribute Delete
3.93 kB
---
license: other
license_name: krea-2-community-license
license_link: https://huggingface.co/krea/Krea-2-Raw/blob/main/LICENSE.pdf
base_model: krea/Krea-2-Raw
base_model_relation: adapter
pipeline_tag: text-to-image
tags:
- krea-2
- krea2
- interpretability
- comfyui
- text-to-image
---
# Krea 2 Projector Explorations
Small, Krea-derived interpretability artifacts for Krea 2's text conditioning β€” the learned layer-mix
("multilayer feature aggregation") plus single-layer probes. **Full toolkit, methods, figures, and write-up:
[github.com/fblissjr/krea-explorations](https://github.com/fblissjr/krea-explorations).**
Krea 2's text encoder is a frozen Qwen3-VL-4B; the DiT takes **12 selected encoder hidden-state layers**
`[2,5,8,11,14,17,20,23,26,29,32,35]` (`select_layers`), combines them with cross-layer attention, then a
learned `Linear(12 β†’ 1)` projector (`txtfusion.projector`). That matrix is the model's own per-layer
weighting β€” **identical in Raw and Turbo** (cosine 1.0):
| layer | L2 | L5 | L8 | L11 | L14 | L17 | L20 | L23 | L26 | L29 | L32 | L35 |
|-------|----|----|----|----|----|----|----|----|----|----|----|----|
| w | -0.05 | -0.16 | +0.37 | +0.50 | +0.71 | +0.39 | +0.40 | **-1.44** | -0.51 | -0.89 | -0.61 | +0.11 |
It combines **contrastively** ("mid plus, deep minus"), not as an average.
## What we measured
These are characterizations of an open model's learned behavior (not architecture β€” the architecture is
public); most are low-effort to reproduce. Full method + confidence levels in the GitHub repo.
- **L20 is a learned *directional* attention hub.** In the cross-layer attention, ~91–95% of content tokens
route to layer 20 β€” content-driven (not a padding artifact) and a *directional* effect (not a magnitude
sink). Holds across 5 prompts and on **both Raw and Turbo**. The token-side "refiner" blocks, by contrast,
are diffuse (no hub).
- **The projector-rebalance lever is a detail/intensity knob, not an attribute gate.** Benign attributes
(expression, "wet", blush) come through the aggregation and render with or without rebalancing; boosting
the deep layers mainly shifts detail / contrast / intensity β€” consistent with the deep layers carrying
fine detail.
Per-layer reweighting of Krea 2's conditioning was introduced by
[nova452/ComfyUI-ConditioningKrea2Rebalance](https://github.com/nova452/ComfyUI-ConditioningKrea2Rebalance)
and refined by [huwhitememes/comfyui-krea2-conditioning](https://github.com/huwhitememes/comfyui-krea2-conditioning).
## Files
- `krea2_projector_original_weights.safetensors` β€” a **reference copy** of the 12 learned projector weights
above (the `[1,12]` tensor itself). Read-only reference, not a LoRA to apply.
- `solo/projector_solo_bNN_Lxx.safetensors` β€” 12 **diagnostic probes**. Each is a projector `.diff` that, at
strength 1, keeps one of the projector's 12 inputs and zeroes the other 11, so the DiT conditions on a
single slot β€” useful to *see* what that slot contributes (deep slots render coherent images, shallow are
noise, L14 carries text/structure, L35 alone is unusable).
**Important:** the projector's 12 inputs are the **attention-mixed slots** (output of the 2 layerwise blocks),
not pristine encoder layers β€” and because the cross-layer attention routes through L20, every slot already
carries L20 content. So a "solo Lx" isolates the slot *indexed by* layer x, not a clean layer x. These are
**interpretability probes, not generation LoRAs** (keeping one input by design gives a partial/degraded image).
Each `solo/` file is a `diffusion_model.txtfusion.projector.diff` patch (one `[1,12]` tensor, ~300 bytes),
loadable via the stock `LoraLoaderModelOnly` β€” no custom node. (ComfyUI calls the selected layers "taps".)
## License
These artifacts derive from Krea 2 and are covered by the **Krea 2 Community License** (see the base model
linked above).