mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-25 07:05:43 -03:00
Add default_active parameter to TriggerWordToggle for controlling default state
This commit is contained in:
@@ -17,6 +17,7 @@ class TriggerWordToggle:
|
|||||||
return {
|
return {
|
||||||
"required": {
|
"required": {
|
||||||
"group_mode": ("BOOLEAN", {"default": True}),
|
"group_mode": ("BOOLEAN", {"default": True}),
|
||||||
|
"default_active": ("BOOLEAN", {"default": True}), # New parameter to control default state
|
||||||
},
|
},
|
||||||
"optional": FlexibleOptionalInputType(any_type),
|
"optional": FlexibleOptionalInputType(any_type),
|
||||||
"hidden": {
|
"hidden": {
|
||||||
@@ -41,7 +42,7 @@ class TriggerWordToggle:
|
|||||||
else:
|
else:
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def process_trigger_words(self, id, group_mode, **kwargs):
|
def process_trigger_words(self, id, group_mode, default_active, **kwargs):
|
||||||
# Handle both old and new formats for trigger_words
|
# Handle both old and new formats for trigger_words
|
||||||
trigger_words_data = self._get_toggle_data(kwargs, 'trigger_words')
|
trigger_words_data = self._get_toggle_data(kwargs, 'trigger_words')
|
||||||
trigger_words = trigger_words_data if isinstance(trigger_words_data, str) else ""
|
trigger_words = trigger_words_data if isinstance(trigger_words_data, str) else ""
|
||||||
|
|||||||
@@ -49,12 +49,12 @@ app.registerExtension({
|
|||||||
|
|
||||||
// Restore saved value if exists
|
// Restore saved value if exists
|
||||||
if (node.widgets_values && node.widgets_values.length > 0) {
|
if (node.widgets_values && node.widgets_values.length > 0) {
|
||||||
// 0 is group mode, 1 is input, 2 is tag widget, 3 is original message
|
// 0 is group mode, 1 is default_active, 2 is input, 3 is tag widget, 4 is original message
|
||||||
const savedValue = node.widgets_values[1];
|
const savedValue = node.widgets_values[2];
|
||||||
if (savedValue) {
|
if (savedValue) {
|
||||||
result.widget.value = savedValue;
|
result.widget.value = Array.isArray(savedValue) ? savedValue : [];
|
||||||
}
|
}
|
||||||
const originalMessage = node.widgets_values[2];
|
const originalMessage = node.widgets_values[3];
|
||||||
if (originalMessage) {
|
if (originalMessage) {
|
||||||
hiddenWidget.value = originalMessage;
|
hiddenWidget.value = originalMessage;
|
||||||
}
|
}
|
||||||
@@ -62,8 +62,16 @@ app.registerExtension({
|
|||||||
|
|
||||||
const groupModeWidget = node.widgets[0];
|
const groupModeWidget = node.widgets[0];
|
||||||
groupModeWidget.callback = (value) => {
|
groupModeWidget.callback = (value) => {
|
||||||
if (node.widgets[2].value) {
|
if (node.widgets[3].value) {
|
||||||
this.updateTagsBasedOnMode(node, node.widgets[2].value, value);
|
this.updateTagsBasedOnMode(node, node.widgets[3].value, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add callback for default_active widget
|
||||||
|
const defaultActiveWidget = node.widgets[1];
|
||||||
|
defaultActiveWidget.callback = (value) => {
|
||||||
|
if (node.widgets[3].value) {
|
||||||
|
this.updateTagsBasedOnMode(node, node.widgets[3].value, groupModeWidget.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -79,7 +87,7 @@ app.registerExtension({
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Store the original message for mode switching
|
// Store the original message for mode switching
|
||||||
node.widgets[2].value = message;
|
node.widgets[3].value = message;
|
||||||
|
|
||||||
if (node.tagWidget) {
|
if (node.tagWidget) {
|
||||||
// Parse tags based on current group mode
|
// Parse tags based on current group mode
|
||||||
@@ -100,6 +108,9 @@ app.registerExtension({
|
|||||||
existingTagMap[tag.text] = tag.active;
|
existingTagMap[tag.text] = tag.active;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Get default active state from the widget
|
||||||
|
const defaultActive = node.widgets[1] ? node.widgets[1].value : true;
|
||||||
|
|
||||||
let tagArray = [];
|
let tagArray = [];
|
||||||
|
|
||||||
if (groupMode) {
|
if (groupMode) {
|
||||||
@@ -114,13 +125,15 @@ app.registerExtension({
|
|||||||
.filter(group => group)
|
.filter(group => group)
|
||||||
.map(group => ({
|
.map(group => ({
|
||||||
text: group,
|
text: group,
|
||||||
active: existingTagMap[group] !== undefined ? existingTagMap[group] : true
|
// Use defaultActive only for new tags
|
||||||
|
active: existingTagMap[group] !== undefined ? existingTagMap[group] : defaultActive
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
// If no ',,' delimiter, treat the entire message as one group
|
// If no ',,' delimiter, treat the entire message as one group
|
||||||
tagArray = [{
|
tagArray = [{
|
||||||
text: message.trim(),
|
text: message.trim(),
|
||||||
active: existingTagMap[message.trim()] !== undefined ? existingTagMap[message.trim()] : true
|
// Use defaultActive only for new tags
|
||||||
|
active: existingTagMap[message.trim()] !== undefined ? existingTagMap[message.trim()] : defaultActive
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -131,7 +144,8 @@ app.registerExtension({
|
|||||||
.filter(word => word)
|
.filter(word => word)
|
||||||
.map(word => ({
|
.map(word => ({
|
||||||
text: word,
|
text: word,
|
||||||
active: existingTagMap[word] !== undefined ? existingTagMap[word] : true
|
// Use defaultActive only for new tags
|
||||||
|
active: existingTagMap[word] !== undefined ? existingTagMap[word] : defaultActive
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user