mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-25 15:15:44 -03:00
feat(autocomplete): add setting to replace underscores with spaces in tag names
fixes #784
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import { api } from "../../scripts/api.js";
|
import { api } from "../../scripts/api.js";
|
||||||
import { app } from "../../scripts/app.js";
|
import { app } from "../../scripts/app.js";
|
||||||
import { TextAreaCaretHelper } from "./textarea_caret_helper.js";
|
import { TextAreaCaretHelper } from "./textarea_caret_helper.js";
|
||||||
import { getPromptTagAutocompletePreference } from "./settings.js";
|
import { getPromptTagAutocompletePreference, getTagSpaceReplacementPreference } from "./settings.js";
|
||||||
|
|
||||||
// Command definitions for category filtering
|
// Command definitions for category filtering
|
||||||
const TAG_COMMANDS = {
|
const TAG_COMMANDS = {
|
||||||
@@ -231,7 +231,13 @@ const MODEL_BEHAVIORS = {
|
|||||||
const folder = directories.length ? `${directories.join('/')}/` : '';
|
const folder = directories.length ? `${directories.join('/')}/` : '';
|
||||||
return `embedding:${folder}${trimmedName}, `;
|
return `embedding:${folder}${trimmedName}, `;
|
||||||
} else {
|
} else {
|
||||||
return `${relativePath}, `;
|
let tagText = relativePath;
|
||||||
|
|
||||||
|
if (getTagSpaceReplacementPreference()) {
|
||||||
|
tagText = tagText.replace(/_/g, ' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
return `${tagText}, `;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ const AUTO_PATH_CORRECTION_DEFAULT = true;
|
|||||||
const PROMPT_TAG_AUTOCOMPLETE_SETTING_ID = "loramanager.prompt_tag_autocomplete";
|
const PROMPT_TAG_AUTOCOMPLETE_SETTING_ID = "loramanager.prompt_tag_autocomplete";
|
||||||
const PROMPT_TAG_AUTOCOMPLETE_DEFAULT = true;
|
const PROMPT_TAG_AUTOCOMPLETE_DEFAULT = true;
|
||||||
|
|
||||||
|
const TAG_SPACE_REPLACEMENT_SETTING_ID = "loramanager.tag_space_replacement";
|
||||||
|
const TAG_SPACE_REPLACEMENT_DEFAULT = false;
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Helper Functions
|
// Helper Functions
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
@@ -95,6 +98,32 @@ const getPromptTagAutocompletePreference = (() => {
|
|||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
const getTagSpaceReplacementPreference = (() => {
|
||||||
|
let settingsUnavailableLogged = false;
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
const settingManager = app?.extensionManager?.setting;
|
||||||
|
if (!settingManager || typeof settingManager.get !== "function") {
|
||||||
|
if (!settingsUnavailableLogged) {
|
||||||
|
console.warn("LoRA Manager: settings API unavailable, using default tag space replacement setting.");
|
||||||
|
settingsUnavailableLogged = true;
|
||||||
|
}
|
||||||
|
return TAG_SPACE_REPLACEMENT_DEFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const value = settingManager.get(TAG_SPACE_REPLACEMENT_SETTING_ID);
|
||||||
|
return value ?? TAG_SPACE_REPLACEMENT_DEFAULT;
|
||||||
|
} catch (error) {
|
||||||
|
if (!settingsUnavailableLogged) {
|
||||||
|
console.warn("LoRA Manager: unable to read tag space replacement setting, using default.", error);
|
||||||
|
settingsUnavailableLogged = true;
|
||||||
|
}
|
||||||
|
return TAG_SPACE_REPLACEMENT_DEFAULT;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Register Extension with All Settings
|
// Register Extension with All Settings
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
@@ -131,6 +160,14 @@ app.registerExtension({
|
|||||||
tooltip: "When enabled, typing will trigger tag autocomplete suggestions. Commands (e.g., /character, /artist) always work regardless of this setting.",
|
tooltip: "When enabled, typing will trigger tag autocomplete suggestions. Commands (e.g., /character, /artist) always work regardless of this setting.",
|
||||||
category: ["LoRA Manager", "Autocomplete", "Prompt"],
|
category: ["LoRA Manager", "Autocomplete", "Prompt"],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: TAG_SPACE_REPLACEMENT_SETTING_ID,
|
||||||
|
name: "Replace underscores with spaces in tags",
|
||||||
|
type: "boolean",
|
||||||
|
defaultValue: TAG_SPACE_REPLACEMENT_DEFAULT,
|
||||||
|
tooltip: "When enabled, tag names with underscores will have them replaced with spaces when inserted (e.g., 'blonde_hair' becomes 'blonde hair').",
|
||||||
|
category: ["LoRA Manager", "Autocomplete", "Tag Formatting"],
|
||||||
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -138,4 +175,4 @@ app.registerExtension({
|
|||||||
// Exports
|
// Exports
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
export { getWheelSensitivity, getAutoPathCorrectionPreference, getPromptTagAutocompletePreference };
|
export { getWheelSensitivity, getAutoPathCorrectionPreference, getPromptTagAutocompletePreference, getTagSpaceReplacementPreference };
|
||||||
|
|||||||
Reference in New Issue
Block a user