From 6a4c466bdedf94f45c08ea3e02200ea8d990d381 Mon Sep 17 00:00:00 2001 From: digital-garbage <133010426+digital-garbage@users.noreply.github.com> Date: Fri, 24 Apr 2026 03:03:26 +0300 Subject: [PATCH] Fix LoRA row restore order --- web/funpack_lora_weights.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/web/funpack_lora_weights.js b/web/funpack_lora_weights.js index 0d192797..78c75e8a 100644 --- a/web/funpack_lora_weights.js +++ b/web/funpack_lora_weights.js @@ -118,6 +118,21 @@ function addLoraRow(node, nodeData, values, value = {}, markDirty = true) { } } +function serializedBaseWidgetCount(node) { + let count = 0; + for (const widget of node.widgets || []) { + if (widget.serialize === false || widget.name === ADD_BUTTON_NAME) { + continue; + } + const match = /^lora_(\d+)(?:_type|_base_weight)?$/.exec(widget.name || ""); + if (match && Number(match[1]) > 0) { + continue; + } + count += 1; + } + return count; +} + function ensureAddButton(node, nodeData) { if ((node.widgets || []).some((widget) => widget.name === ADD_BUTTON_NAME)) { moveAddButtonToEnd(node); @@ -138,12 +153,12 @@ function restoreExtraRows(node, nodeData, info) { return; } + const knownWidgetCount = serializedBaseWidgetCount(node); node.widgets = (node.widgets || []).filter((widget) => { const match = /^lora_(\d+)(?:_type|_base_weight)?$/.exec(widget.name || ""); return !match || Number(match[1]) === 0; }); - const knownWidgetCount = 6; for (let offset = knownWidgetCount; offset + 2 < values.length; offset += 3) { addLoraRow( node,