Parse complete source and donor vision blocks, then insert literal pole
payloads with owned trailing separators before prompt content. Preserve one
shared study layout and exact original token recovery and projection.
Keep verified newline carriers whole and track native output stripping
separately, retaining native role/header tokens for merged carriers. Reject
unknown carriers and malformed role or media prefixes before study encoding.
Preserve native anchoring, negative, metadata, deepstack, gain and timing.
All 219 tests and required compile checks pass. Causal scalar fixtures include
the previous append layout as a negative control; saved native mask and strip
bookkeeping agree with declared nonneural boundaries. Visual effect remains
unverified.
Compose signed study deltas on the original native positive instead of the
all-muted combined-row study. Preserve native metadata, masks, coefficients,
timing, budget, low-load taper and exact neutral routing. Keep all study
encodes and validation counted without changing pole placement or gain.
Five build-level regressions deliberately make the study base differ from
the adopted native result; four detect the old defect. All 206 tests and
required compile checks pass. Visual semantic acceptance remains pending.
Add an optional preparation node that calls the verified native latent helper
and returns both the prepared context and its exact shared target LATENT.
Consume raw downscale metadata, preserve mask and foreign packet values, and
bind provenance to the original packet, model, format and helper state.
Keep existing consumer identity checks and the original seven node interfaces.
Reject spatial resizing after an owned grounded wrapper has primed its VAE
cache. Disabled preparation returns the original context and target unchanged.
All 201 tests and required compile checks pass. Exact native caller/helper
fixtures pass on Python 3.11 and 3.13; serving-host acceptance remains pending.
Bind all seven no-grad dependency definitions to one reviewed source tuple
from Torch 2.9 or 2.11. The added profile has an explicit error check and
constructor type annotations; mixed and unknown tuples remain unsupported.
Preserve loaded-code, globals, wrapper, closure and context-factory checks.
All 188 tests and required compile checks pass. Exact official source fixtures
pass 22 positive and rejection cases on Python 3.11 and 3.13. Serving-host
canonical and loaded-chain acceptance remains pending.
Serialize every semantic AST field explicitly so identical reviewed Torch
definitions produce the same fingerprint on Python 3.11 and 3.13. Retain
loaded-code, decorator, closure and context-factory validation, with no new
admitted source profile.
Add regression coverage for empty fields, generic parameters, semantic edits
and dependency rejection. All 185 tests and required compile checks pass;
seven reference fingerprints and native decorator fixtures agree across both
Python versions. Serving-host acceptance remains pending.
Byte BPE can merge final native punctuation with appended newlines, changing an
existing token before any study encode. Keep the exact native prompt/template
and image row authoritative, then insert separately tokenized plain pole payloads
with explicitly owned delimiters before its original suffix.
Require deletion of every owned span to recover the original token objects,
weights, image handles and order. Reject special/media/role pole tokens and keep
native projection, neutral identity and existing node interfaces unchanged.
Validation: 181 host-free tests, required compile, exact saved-tokenizer source
bindings and real byte-BPE construction regressions. No post-fix model or visual
acceptance is claimed.
Reject wrapper layers on source-undecorated callables. Admit only each declared
native no_grad layer after checking its actual code, closure target and bound
context factory against pinned native Torch definitions. Unknown and compiled
wrappers remain unsupported.
Bind enhancer admission to the actual fusion and block instance classes and
captured forward methods. Reject per-instance, stale, compiled or hook-altered
paths before installing the owned fusion hook. Preserve existing node ports,
task recipes, source profiles and inference identity/revision limits.
Validation: 175 host-free tests, required compile and actual pinned native
decorator/source-loader counterexamples. No target or model acceptance claimed.
Bind the exact older sampler and model-base pair after reviewing its no-op
writable-model scope difference for Krea. Reject mixed revisions, writable
instance overrides and additional multigpu models.
Admit the installed Krea2T revision with unchanged math and extra registrations.
Verify observed loaded call-path code and enhancer constants against admitted
source instead of relying on file hashes alone. Keep native node ports, task
recipes, inference identity/revision limits and existing defaults unchanged.
Validation: 170 host-free tests, required compile, saved-source native control,
enhancer invocation and loaded-code counterexamples. Real runtime/model and
application end-to-end acceptance remain separate.
Preserve exact enhancer OFF MODEL identity and delegate the installed Krea2T
text-fusion helper under owned hook cleanup, source pins and wrapper order checks.
Keep task models, LoRAs and schedules intact, including Raw removal.
Mark inference handles explicitly unversioned, retain adopted target noise masks,
and validate native ER-SDE's actual first-sigma adjustment without replacing its
solver. Existing versioned node contracts and defaults remain unchanged.
Validation: 163 host-free tests, required compile and pinned source arithmetic
probes. Installed-host, real tensor/model and visual acceptance remain separate.
Two new nodes: a Concept Slider Card names an attribute (with optional
custom pole sentences) and a Concept Slider Stack derives the
more-vs-less axis from Krea 2's own text encoder at encode time.
-6..+6 dial, up to 8 sliders, a slider report output, and a study
cache; a slider at 0 is skipped entirely and a cardless stack matches
CLIP Text Encode exactly. Ships with the complete guide, the ten-slider
render audit sheets, a showcase workflow with a with-vs-without
comparison branch, contract tests, and a maintainer smoke test.
Render-audited every V10 recipe on fresh public-domain and self-generated references. Three fixes ship: copy lighting and mood moves from palette wash (which flattened dramatic skies into flat location tones) to strong blur with a de-place focus, so storm mood lands at 0.65 and full drama by 0.9; copy big shapes only gets a structure-only layer table (structure x1.3, appearance x0.25) because the even table let the gray shape-wash study drain the result to monochrome; borrow photo finish was near-silent at its documented strengths and moves to shape 0.8 with finish x1.2 and cap 0.65, landing the photographic grade from ~0.55. borrow drawing medium keeps its deliberately quiet values with an honest description - every louder variant imported the drawing's subject (render-proven ceiling). All changes V10-only; V9 untouched.
The style recipe's strong-blur prep is its structure-safety guarantee, but the encoder was also studying the blur itself - on soft-medium references renders came out pervasively soft. The built-in style bundle now ships a focus that de-selects softness and scene layout; prep and pulls are unchanged. A/B render-verified across five references, two strengths, three seeds, single-card and in the two-card method. Crisper prep alternatives re-opened source-scene takeover and were rejected.
custom_recipes/starter-pack.yaml loads out of the box (delete or underscore
it to opt out): 'borrow the weather' (strong blur + low detail keeps the
reference's objects out while the sky mood arrives), 'borrow the clothing
style' (the focus line does the semantic separation - its inverse is
documented in the description), and 'cinematic color grade' (a bolder
palette sibling). All three render-validated on Krea 2, incl. the focus
A/B: same reference/seed, clothing-focus kept the red coat + gained garment
detail; environment-focus with 'not their clothing' erased the red.
Recipe Builder: optional 'Focus on one aspect' box in step 2, wired through
buildRecipe/YAML/JSON with the node's normalization (whitespace collapse,
300-char clip, omit-when-blank); honest hint that focus is strongest on
object-bound aspects. All 45 intent x loudness x focus combos (x2 formats)
re-verified through the real kg_krea_v10 loader. 57/57 tests.
New optional custom-recipe key 'focus' - free text naming what the encoder
should study from the reference ('the clothing and garment style', 'the
weather and sky condition'). It rides the instruction channel the roles
already use: the card packet gains resolved_focus/focus (append-only), the
V10 encoder forwards it, and role_system_prompt writes an 'Input N focus:
study only ... ignore everything else' line between the role line and the
subject rule (away cards get scoping language). The stack report prints the
focus on the card's line. V9 cards never carry focus, so V9 behavior is
byte-identical; guarded cards keep their blank-panel line (focus skipped).
Schema: string, whitespace-normalized, <= 300 chars, omitted when empty.
56/56 tests (5 new: validation, packet, prompt placement, away scoping).
Schema-validated YAML/JSON files become first-class "Use image for"
choices, loaded from custom_recipes/ in the pack and from
<ComfyUI user dir>/krea_reference/recipes/ (survives pack updates).
INPUT_TYPES re-scans per call, so node-definition refresh picks up new
files without a restart.
Validation (kg_krea_v10/custom_recipes.py) is strict about keys - an
unknown key rejects the recipe so typos cannot become silent no-ops -
and forgiving about omissions: only label and role are required, with
every other field defaulting from the role's tuning tables. Reserved
labels cover both the purpose labels and the internal recipe keys, so
custom labels cannot shadow built-ins in either direction. Invalid
files are skipped with logged reasons and the node always loads; a
saved workflow whose recipe file was removed falls back to balanced
with a once-per-label warning instead of silently reading manual rows.
Custom recipes compose with direction, timing, and the guard clamp;
packets carry custom_recipe and custom_recipe_source. Ships with
custom_recipes/README.md plus a disabled template, a full teaching
section in both V10 user guides, node-doc and technical-companion
coverage, and nine new contract tests (51 total).
New kg_krea_v10 package with KG Krea 2 Image Guide Card V10 and
KG Krea 2 Reference Stack Encoder V10. V9 is untouched; packets stay
V9-compatible and the two versions cross-connect via the shared
KG_KREA_REFERENCE link type.
Card: quick recipes for the four previously manual-only roles (palette,
environment, framing, mood board), guide direction (counter-example
guidance via negative delta targets with symmetric layer clamping),
per-card timing, and manual structure/finish layer dials.
Stack: balance budget for hot multi-card stacks, content-keyed study
cache that makes strength/timing tweaks compose-only, a plain-language
stack report output, and a prepared-reference contact sheet output.
The full guard's prompt rewriter gains an ES/FR/DE/PT/IT starter
vocabulary.
Web extension covers the V10 nodes; tests/test_krea_v10.py pins the
V10 label surface, packet compatibility, direction/timing/balance
math, cache behavior, and the multilingual guard.
Krea 2 V9 reference-conditioning nodes: guide cards assign each
reference image a role (identity, style, lighting, composition,
text/logo safe, and more) and the stack encoder builds Krea
conditioning with per-card strength, per-layer gains, and guarded
prompt handling. Includes the kg_krea_v9 package, web extension,
example workflows and assets, contract tests, and full documentation
with the technical paper.
Prior development history is summarized in CHANGELOG.md (0.1.0-0.1.5).