mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-25 15:15:44 -03:00
feat: add default embedding root setting and load functionality in settings manager
This commit is contained in:
@@ -67,6 +67,11 @@ export class SettingsManager {
|
|||||||
if (state.global.settings.base_model_path_mappings === undefined) {
|
if (state.global.settings.base_model_path_mappings === undefined) {
|
||||||
state.global.settings.base_model_path_mappings = {};
|
state.global.settings.base_model_path_mappings = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set default for defaultEmbeddingRoot if undefined
|
||||||
|
if (state.global.settings.default_embedding_root === undefined) {
|
||||||
|
state.global.settings.default_embedding_root = '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initialize() {
|
initialize() {
|
||||||
@@ -151,6 +156,9 @@ export class SettingsManager {
|
|||||||
|
|
||||||
// Load default checkpoint root
|
// Load default checkpoint root
|
||||||
await this.loadCheckpointRoots();
|
await this.loadCheckpointRoots();
|
||||||
|
|
||||||
|
// Load default embedding root
|
||||||
|
await this.loadEmbeddingRoots();
|
||||||
|
|
||||||
// Backend settings are loaded from the template directly
|
// Backend settings are loaded from the template directly
|
||||||
}
|
}
|
||||||
@@ -233,6 +241,45 @@ export class SettingsManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async loadEmbeddingRoots() {
|
||||||
|
try {
|
||||||
|
const defaultEmbeddingRootSelect = document.getElementById('defaultEmbeddingRoot');
|
||||||
|
if (!defaultEmbeddingRootSelect) return;
|
||||||
|
|
||||||
|
// Fetch embedding roots
|
||||||
|
const response = await fetch('/api/embeddings/roots');
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error('Failed to fetch embedding roots');
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
if (!data.roots || data.roots.length === 0) {
|
||||||
|
throw new Error('No embedding roots found');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear existing options except the first one (No Default)
|
||||||
|
const noDefaultOption = defaultEmbeddingRootSelect.querySelector('option[value=""]');
|
||||||
|
defaultEmbeddingRootSelect.innerHTML = '';
|
||||||
|
defaultEmbeddingRootSelect.appendChild(noDefaultOption);
|
||||||
|
|
||||||
|
// Add options for each root
|
||||||
|
data.roots.forEach(root => {
|
||||||
|
const option = document.createElement('option');
|
||||||
|
option.value = root;
|
||||||
|
option.textContent = root;
|
||||||
|
defaultEmbeddingRootSelect.appendChild(option);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Set selected value from settings
|
||||||
|
const defaultRoot = state.global.settings.default_embedding_root || '';
|
||||||
|
defaultEmbeddingRootSelect.value = defaultRoot;
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error loading embedding roots:', error);
|
||||||
|
showToast('Failed to load embedding roots: ' + error.message, 'error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
loadBaseModelMappings() {
|
loadBaseModelMappings() {
|
||||||
const mappingsContainer = document.getElementById('baseModelMappingsContainer');
|
const mappingsContainer = document.getElementById('baseModelMappingsContainer');
|
||||||
if (!mappingsContainer) return;
|
if (!mappingsContainer) return;
|
||||||
@@ -508,6 +555,8 @@ export class SettingsManager {
|
|||||||
state.global.settings.default_loras_root = value;
|
state.global.settings.default_loras_root = value;
|
||||||
} else if (settingKey === 'default_checkpoint_root') {
|
} else if (settingKey === 'default_checkpoint_root') {
|
||||||
state.global.settings.default_checkpoint_root = value;
|
state.global.settings.default_checkpoint_root = value;
|
||||||
|
} else if (settingKey === 'default_embedding_root') {
|
||||||
|
state.global.settings.default_embedding_root = value;
|
||||||
} else if (settingKey === 'display_density') {
|
} else if (settingKey === 'display_density') {
|
||||||
state.global.settings.displayDensity = value;
|
state.global.settings.displayDensity = value;
|
||||||
|
|
||||||
@@ -528,7 +577,7 @@ export class SettingsManager {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// For backend settings, make API call
|
// For backend settings, make API call
|
||||||
if (settingKey === 'default_lora_root' || settingKey === 'default_checkpoint_root' || settingKey === 'download_path_template') {
|
if (settingKey === 'default_lora_root' || settingKey === 'default_checkpoint_root' || settingKey === 'default_embedding_root' || settingKey === 'download_path_template') {
|
||||||
const payload = {};
|
const payload = {};
|
||||||
payload[settingKey] = value;
|
payload[settingKey] = value;
|
||||||
|
|
||||||
|
|||||||
@@ -128,6 +128,23 @@
|
|||||||
Set the default checkpoint root directory for downloads, imports and moves
|
Set the default checkpoint root directory for downloads, imports and moves
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="setting-item">
|
||||||
|
<div class="setting-row">
|
||||||
|
<div class="setting-info">
|
||||||
|
<label for="defaultEmbeddingRoot">Default Embedding Root</label>
|
||||||
|
</div>
|
||||||
|
<div class="setting-control select-control">
|
||||||
|
<select id="defaultEmbeddingRoot" onchange="settingsManager.saveSelectSetting('defaultEmbeddingRoot', 'default_embedding_root')">
|
||||||
|
<option value="">No Default</option>
|
||||||
|
<!-- Options will be loaded dynamically -->
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="input-help">
|
||||||
|
Set the default embedding root directory for downloads, imports and moves
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Default Path Customization Section -->
|
<!-- Default Path Customization Section -->
|
||||||
|
|||||||
Reference in New Issue
Block a user