// Create our TAC namespace var TAC = TAC || {}; TAC.Globals = new (function () { // Core components this.CFG = { // Main tag file tagFile, // Active in settings activeIn: { global, txt2img, img2img, negativePrompts, thirdParty, modelList, modelListMode, }, // Results related settings slidingPopup, maxResults, showAllResults, resultStepLength, delayTime, useWildcards, sortWildcardResults, useEmbeddings, includeEmbeddingsInNormalResults, useHypernetworks, useLoras, useLycos, useLoraPrefixForLycos, showWikiLinks, showExtraNetworkPreviews, modelSortOrder, frequencySort, frequencyFunction, frequencyMinCount, frequencyMaxAge, frequencyRecommendCap, frequencyIncludeAlias, useStyleVars, // Insertion related settings replaceUnderscores, replaceUnderscoresExclusionList, escapeParentheses, appendComma, appendSpace, alwaysSpaceAtEnd, wildcardCompletionMode, modelKeywordCompletion, modelKeywordLocation, wcWrap: "__", // to support custom wrapper chars set by dp_parser // Alias settings alias: { searchByAlias, onlyShowAlias, }, // Translation settings translation: { translationFile, oldFormat, searchByTranslation, liveTranslation, }, // Extra file settings extra: { extraFile, addMode, }, // Chant file settings chantFile, // Settings not from tac but still used by the script extraNetworksDefaultMultiplier, extraNetworksSeparator, // Custom mapping settings keymap: { MoveUp: "ArrowUp", MoveDown: "ArrowDown", JumpUp: "PageUp", JumpDown: "PageDown", JumpToStart: "Home", JumpToEnd: "End", ChooseSelected: "Enter", ChooseFirstOrSelected: "Tab", Close: "Escape", }, colorMap: { filename: { category: ["light", "dark"] }, }, }; this.tagBasePath = ""; this.modelKeywordPath = ""; this.selfTrigger = false; // Tag completion data loaded from files this.allTags = []; this.translations = new Map(); this.extras = []; // Same for tag-likes this.wildcardFiles = []; this.wildcardExtFiles = []; this.yamlWildcards = []; this.umiWildcards = []; this.embeddings = []; this.hypernetworks = []; this.loras = []; this.lycos = []; this.modelKeywordDict = new Map(); this.chants = []; this.styleNames = []; // Selected model info for black/whitelisting this.currentModelHash = ""; this.currentModelName = ""; // Current results this.results = []; this.resultCount = 0; // Relevant for parsing this.previousTags = []; this.tagword = ""; this.originalTagword = ""; this.hideBlocked = false; // Tag selection for keyboard navigation this.selectedTag = null; this.oldSelectedTag = null; this.resultCountBeforeNormalTags = 0; // Lora keyword undo/redo history this.textBeforeKeywordInsertion = ""; this.textAfterKeywordInsertion = ""; this.lastEditWasKeywordInsertion = false; this.keywordInsertionUndone = false; // UMI this.umiPreviousTags = []; })(); /// Extendability system: /// Provides "queues" for other files of the script (or really any js) /// to add functions to be called at certain points in the script. /// Similar to a callback system, but primitive. TAC.Ext = new (function () { // Queues this.QUEUE_AFTER_INSERT = []; this.QUEUE_AFTER_SETUP = []; this.QUEUE_FILE_LOAD = []; this.QUEUE_AFTER_CONFIG_CHANGE = []; this.QUEUE_SANITIZE = []; // List of parsers to try this.PARSERS = []; })();