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