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)** — 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 @@
+
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 @@
+
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 (;;) {