diff --git a/README.md b/README.md index d02e4b8..016ebe6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # ComfyUI-Krea2TexTEncoder +![Text Encode (Krea2)](assets/social.png) + **Text Encode (Krea2)** — vision-aware text conditioning for the Krea2 / K2 model (`kreaturbo.safetensors`), whose text encoder is **Qwen3-VL-4B** (12-layer tap). diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000..8e5c73c Binary files /dev/null and b/assets/logo.png differ diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 0000000..ff3df2c --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + K2 + + + + + + + diff --git a/assets/social.png b/assets/social.png new file mode 100644 index 0000000..f79f22a Binary files /dev/null and b/assets/social.png differ diff --git a/assets/social.svg b/assets/social.svg new file mode 100644 index 0000000..38cad73 --- /dev/null +++ b/assets/social.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + COMFYUI · CONDITIONING NODE + + + + Text Encode + (Krea2) + + + Vision-aware text conditioning for the Krea2 / K2 model. + Qwen3-VL-4B · 12-layer tap · mask-cropped references. + + + + + + NO-VAE PATH + + + + DESCRIPTOR TEMPLATE + + + + AUTO-GROWING SLOTS + + + + + + + + + + + + + Text Encode (Krea2) + + + K2 + QWEN3-VL · ×12 TAP + + + + + clip + + image + + mask + + + + + cond + + + + + + + + SEQUENCE + + + + + github.com/ethanfel/ComfyUI-Krea2TextEncoder + diff --git a/assets/social@2x.png b/assets/social@2x.png new file mode 100644 index 0000000..3ec8434 Binary files /dev/null and b/assets/social@2x.png differ diff --git a/web/krea2_dynamic_images.js b/web/krea2_dynamic_images.js index 1123eee..a9c940f 100644 --- a/web/krea2_dynamic_images.js +++ b/web/krea2_dynamic_images.js @@ -42,8 +42,19 @@ function pairEmpty(node, n) { return !linked(node, `image${n}`) && !linked(node, `mask${n}`); } +// Self-heal: guarantee every imageN has a companion maskN (e.g. nodes saved before +// masks existed, or a stale Python schema that only defined image1). +function ensureMasks(node) { + for (const n of pairNumbers(node)) { + if (inputIndex(node, `mask${n}`) < 0) { + node.addInput(`mask${n}`, "MASK"); + } + } +} + function syncPairs(node) { if (pairNumbers(node).length === 0) addPair(node, 1); + ensureMasks(node); // Collapse trailing fully-empty pairs down to a single spare. for (;;) {