Files
Kevin Gilper 839fa6e246 Add the layer-derivation harness (reliable, targeted methodology)
Replaces "borrow a template + eyeball renders" with a staged pipeline for
setting the 12 layer-gain values, cheapest/most-targeted first:

- Stage 0 (done, local): extract_model_prior.py reads Krea 2's own learned
  per-tap weighting (txtfusion.projector [1,12]) from the checkpoint;
  compare_to_model_prior.py scores each shipped table against it. Finding:
  the model leans hardest on taps 7>9>4>10>8 but the tables spike 8>10>7
  (rank-corr only +0.58..+0.64) - the borrowed template does not track how
  the model uses the taps. model_prior.json records the values.
- Stage 1 (harness ready, no render): probe_node/ is a tiny ComfyUI node
  that saves per-tap conditioning signatures; probe_selectivity.py does a
  variance decomposition (eta^2) of each tap against palette/structure/
  texture/lighting over a controlled reference set; generate_probe_graphs.py
  builds the encode-only graphs. The selectivity math passes a synthetic
  self-test (recovers an injected tap->attribute map exactly). Running it for
  real needs V10 + the probe node installed on a box, plus controlled image
  sets - it renders nothing (text-encoder passes only).
- Stages 2-3 (documented, need a V10 box): metric-scored render validation,
  then black-box optimization of the 12-gain vector against a stated
  objective, held-out validated.

README section 4 rewritten as the methodology. All scripts run/validate
locally; tooling stays under docs/ (excluded from registry packs).
2026-07-03 07:04:42 -04:00

12 lines
973 B
JSON

{
"description": "Krea 2's own learned per-tap weighting over the 12 text-layer taps, extracted from the diffusion model. A model-intrinsic prior for the layers gain tables (Stage 0 of the derivation methodology in README section 4).",
"source_tensor": "txtfusion.projector.weight",
"source_file": "models/diffusion_models/krea2/krea2_turbo_bf16.safetensors (on the render box \\\\olga\\d\\ComfyUI)",
"shape": [1, 12],
"dtype": "F32",
"extracted": "2026-07-03",
"reextract": "python docs/deepstack-layers/extract_model_prior.py --model <path-to-krea2-*.safetensors>",
"caveat": "The projector combines taps AFTER per-tap layerwise/refiner blocks; the node's gains act on the raw tap delta BEFORE that processing. So this is a prior and sanity check on relative tap importance, not a literal gain table. The node->pixel path is nonlinear.",
"weights": [-0.0544, -0.1611, 0.3711, 0.5039, 0.707, 0.3945, 0.3984, -1.4375, -0.5117, -0.8906, -0.6094, 0.1128]
}