diff --git a/locales/de.json b/locales/de.json index 82459ebc..fab698e7 100644 --- a/locales/de.json +++ b/locales/de.json @@ -319,6 +319,8 @@ "defaultLoraRootHelp": "Legen Sie den Standard-LoRA-Stammordner für Downloads, Importe und Verschiebungen fest", "defaultCheckpointRoot": "Standard-Checkpoint-Stammordner", "defaultCheckpointRootHelp": "Legen Sie den Standard-Checkpoint-Stammordner für Downloads, Importe und Verschiebungen fest", + "defaultUnetRoot": "Standard-Diffusion-Modell-Stammordner", + "defaultUnetRootHelp": "Legen Sie den Standard-Diffusion-Modell-(UNET)-Stammordner für Downloads, Importe und Verschiebungen fest", "defaultEmbeddingRoot": "Standard-Embedding-Stammordner", "defaultEmbeddingRootHelp": "Legen Sie den Standard-Embedding-Stammordner für Downloads, Importe und Verschiebungen fest", "noDefault": "Kein Standard" @@ -1391,6 +1393,7 @@ "settings": { "loraRootsFailed": "Fehler beim Laden der LoRA-Stammverzeichnisse: {message}", "checkpointRootsFailed": "Fehler beim Laden der Checkpoint-Stammverzeichnisse: {message}", + "unetRootsFailed": "Fehler beim Laden der Diffusion-Modell-Stammverzeichnisse: {message}", "embeddingRootsFailed": "Fehler beim Laden der Embedding-Stammverzeichnisse: {message}", "mappingsUpdated": "Basis-Modell-Pfad-Zuordnungen aktualisiert ({count} Zuordnung{plural})", "mappingsCleared": "Basis-Modell-Pfad-Zuordnungen gelöscht", diff --git a/locales/en.json b/locales/en.json index ca48784a..599e8236 100644 --- a/locales/en.json +++ b/locales/en.json @@ -316,11 +316,13 @@ "loadingLibraries": "Loading libraries...", "noLibraries": "No libraries configured", "defaultLoraRoot": "Default LoRA Root", - "defaultLoraRootHelp": "Set the default LoRA root directory for downloads, imports and moves", + "defaultLoraRootHelp": "Set default LoRA root directory for downloads, imports and moves", "defaultCheckpointRoot": "Default Checkpoint Root", - "defaultCheckpointRootHelp": "Set the default checkpoint root directory for downloads, imports and moves", + "defaultCheckpointRootHelp": "Set default checkpoint root directory for downloads, imports and moves", + "defaultUnetRoot": "Default Diffusion Model Root", + "defaultUnetRootHelp": "Set default diffusion model (UNET) root directory for downloads, imports and moves", "defaultEmbeddingRoot": "Default Embedding Root", - "defaultEmbeddingRootHelp": "Set the default embedding root directory for downloads, imports and moves", + "defaultEmbeddingRootHelp": "Set default embedding root directory for downloads, imports and moves", "noDefault": "No Default" }, "priorityTags": { @@ -1391,6 +1393,7 @@ "settings": { "loraRootsFailed": "Failed to load LoRA roots: {message}", "checkpointRootsFailed": "Failed to load checkpoint roots: {message}", + "unetRootsFailed": "Failed to load diffusion model roots: {message}", "embeddingRootsFailed": "Failed to load embedding roots: {message}", "mappingsUpdated": "Base model path mappings updated ({count} mapping{plural})", "mappingsCleared": "Base model path mappings cleared", diff --git a/locales/es.json b/locales/es.json index a149ce5a..4935526b 100644 --- a/locales/es.json +++ b/locales/es.json @@ -319,6 +319,8 @@ "defaultLoraRootHelp": "Establecer el directorio raíz predeterminado de LoRA para descargas, importaciones y movimientos", "defaultCheckpointRoot": "Raíz predeterminada de checkpoint", "defaultCheckpointRootHelp": "Establecer el directorio raíz predeterminado de checkpoint para descargas, importaciones y movimientos", + "defaultUnetRoot": "Raíz predeterminada de Diffusion Model", + "defaultUnetRootHelp": "Establecer el directorio raíz predeterminado de Diffusion Model (UNET) para descargas, importaciones y movimientos", "defaultEmbeddingRoot": "Raíz predeterminada de embedding", "defaultEmbeddingRootHelp": "Establecer el directorio raíz predeterminado de embedding para descargas, importaciones y movimientos", "noDefault": "Sin predeterminado" @@ -1391,6 +1393,7 @@ "settings": { "loraRootsFailed": "Error al cargar raíces de LoRA: {message}", "checkpointRootsFailed": "Error al cargar raíces de checkpoint: {message}", + "unetRootsFailed": "Error al cargar raíces de Diffusion Model: {message}", "embeddingRootsFailed": "Error al cargar raíces de embedding: {message}", "mappingsUpdated": "Mapeos de rutas de modelo base actualizados ({count} mapeo{plural})", "mappingsCleared": "Mapeos de rutas de modelo base limpiados", diff --git a/locales/fr.json b/locales/fr.json index 8608edfa..4b5b1f12 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -319,6 +319,8 @@ "defaultLoraRootHelp": "Définir le répertoire racine LoRA par défaut pour les téléchargements, imports et déplacements", "defaultCheckpointRoot": "Racine Checkpoint par défaut", "defaultCheckpointRootHelp": "Définir le répertoire racine checkpoint par défaut pour les téléchargements, imports et déplacements", + "defaultUnetRoot": "Racine Diffusion Model par défaut", + "defaultUnetRootHelp": "Définir le répertoire racine Diffusion Model (UNET) par défaut pour les téléchargements, imports et déplacements", "defaultEmbeddingRoot": "Racine Embedding par défaut", "defaultEmbeddingRootHelp": "Définir le répertoire racine embedding par défaut pour les téléchargements, imports et déplacements", "noDefault": "Aucun par défaut" @@ -1391,6 +1393,7 @@ "settings": { "loraRootsFailed": "Échec du chargement des racines LoRA : {message}", "checkpointRootsFailed": "Échec du chargement des racines checkpoint : {message}", + "unetRootsFailed": "Échec du chargement des racines Diffusion Model : {message}", "embeddingRootsFailed": "Échec du chargement des racines embedding : {message}", "mappingsUpdated": "Mappages de chemin de modèle de base mis à jour ({count} mappage{plural})", "mappingsCleared": "Mappages de chemin de modèle de base effacés", diff --git a/locales/he.json b/locales/he.json index 2c7d691e..0b9976d5 100644 --- a/locales/he.json +++ b/locales/he.json @@ -312,13 +312,15 @@ }, "folderSettings": { "activeLibrary": "ספרייה פעילה", - "activeLibraryHelp": "החלפה בין הספריות המוגדרות תעדכן את תיקיות ברירת המחדל. שינוי הבחירה ירענן את הדף.", + "activeLibraryHelp": "החלפה בין הספריות המוגדרות לעדכן את תיקיות ברירת המחדל. שינוי הבחירה ירענן את הדף.", "loadingLibraries": "טוען ספריות...", "noLibraries": "לא הוגדרו ספריות", "defaultLoraRoot": "תיקיית שורש ברירת מחדל של LoRA", "defaultLoraRootHelp": "הגדר את ספריית השורש המוגדרת כברירת מחדל של LoRA להורדות, ייבוא והעברות", "defaultCheckpointRoot": "תיקיית שורש ברירת מחדל של Checkpoint", "defaultCheckpointRootHelp": "הגדר את ספריית השורש המוגדרת כברירת מחדל של checkpoint להורדות, ייבוא והעברות", + "defaultUnetRoot": "תיקיית שורש ברירת מחדל של Diffusion Model", + "defaultUnetRootHelp": "הגדר את ספריית השורש המוגדרת כברירת מחדל של Diffusion Model (UNET) להורדות, ייבוא והעברות", "defaultEmbeddingRoot": "תיקיית שורש ברירת מחדל של Embedding", "defaultEmbeddingRootHelp": "הגדר את ספריית השורש המוגדרת כברירת מחדל של embedding להורדות, ייבוא והעברות", "noDefault": "אין ברירת מחדל" @@ -1391,6 +1393,7 @@ "settings": { "loraRootsFailed": "טעינת שורשי LoRA נכשלה: {message}", "checkpointRootsFailed": "טעינת שורשי checkpoint נכשלה: {message}", + "unetRootsFailed": "טעינת שורשי Diffusion Model נכשלה: {message}", "embeddingRootsFailed": "טעינת שורשי embedding נכשלה: {message}", "mappingsUpdated": "מיפויי נתיבי מודל בסיס עודכנו ({count} מיפוי{plural})", "mappingsCleared": "מיפויי נתיבי מודל בסיס נוקו", diff --git a/locales/ja.json b/locales/ja.json index 49e58ffc..bc3f1615 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -319,6 +319,8 @@ "defaultLoraRootHelp": "ダウンロード、インポート、移動用のデフォルトLoRAルートディレクトリを設定", "defaultCheckpointRoot": "デフォルトCheckpointルート", "defaultCheckpointRootHelp": "ダウンロード、インポート、移動用のデフォルトcheckpointルートディレクトリを設定", + "defaultUnetRoot": "デフォルトDiffusion Modelルート", + "defaultUnetRootHelp": "ダウンロード、インポート、移動用のデフォルトDiffusion Model (UNET)ルートディレクトリを設定", "defaultEmbeddingRoot": "デフォルトEmbeddingルート", "defaultEmbeddingRootHelp": "ダウンロード、インポート、移動用のデフォルトembeddingルートディレクトリを設定", "noDefault": "デフォルトなし" @@ -1391,6 +1393,7 @@ "settings": { "loraRootsFailed": "LoRAルートの読み込みに失敗しました:{message}", "checkpointRootsFailed": "checkpointルートの読み込みに失敗しました:{message}", + "unetRootsFailed": "Diffusion Modelルートの読み込みに失敗しました:{message}", "embeddingRootsFailed": "embeddingルートの読み込みに失敗しました:{message}", "mappingsUpdated": "ベースモデルパスマッピングが更新されました({count} マッピング{plural})", "mappingsCleared": "ベースモデルパスマッピングがクリアされました", diff --git a/locales/ko.json b/locales/ko.json index 831c76c0..e11b01e0 100644 --- a/locales/ko.json +++ b/locales/ko.json @@ -319,6 +319,8 @@ "defaultLoraRootHelp": "다운로드, 가져오기 및 이동을 위한 기본 LoRA 루트 디렉토리를 설정합니다", "defaultCheckpointRoot": "기본 Checkpoint 루트", "defaultCheckpointRootHelp": "다운로드, 가져오기 및 이동을 위한 기본 Checkpoint 루트 디렉토리를 설정합니다", + "defaultUnetRoot": "기본 Diffusion Model 루트", + "defaultUnetRootHelp": "다운로드, 가져오기 및 이동을 위한 기본 Diffusion Model (UNET) 루트 디렉토리를 설정합니다", "defaultEmbeddingRoot": "기본 Embedding 루트", "defaultEmbeddingRootHelp": "다운로드, 가져오기 및 이동을 위한 기본 Embedding 루트 디렉토리를 설정합니다", "noDefault": "기본값 없음" @@ -1391,6 +1393,7 @@ "settings": { "loraRootsFailed": "LoRA 루트 로딩 실패: {message}", "checkpointRootsFailed": "Checkpoint 루트 로딩 실패: {message}", + "unetRootsFailed": "Diffusion Model 루트 로딩 실패: {message}", "embeddingRootsFailed": "Embedding 루트 로딩 실패: {message}", "mappingsUpdated": "베이스 모델 경로 매핑이 업데이트되었습니다 ({count}개 매핑)", "mappingsCleared": "베이스 모델 경로 매핑이 지워졌습니다", diff --git a/locales/ru.json b/locales/ru.json index 20d02322..997de0df 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -319,6 +319,8 @@ "defaultLoraRootHelp": "Установить корневую папку LoRA по умолчанию для загрузок, импорта и перемещений", "defaultCheckpointRoot": "Корневая папка Checkpoint по умолчанию", "defaultCheckpointRootHelp": "Установить корневую папку checkpoint по умолчанию для загрузок, импорта и перемещений", + "defaultUnetRoot": "Корневая папка Diffusion Model по умолчанию", + "defaultUnetRootHelp": "Установить корневую папку Diffusion Model (UNET) по умолчанию для загрузок, импорта и перемещений", "defaultEmbeddingRoot": "Корневая папка Embedding по умолчанию", "defaultEmbeddingRootHelp": "Установить корневую папку embedding по умолчанию для загрузок, импорта и перемещений", "noDefault": "Не задано" @@ -1391,6 +1393,7 @@ "settings": { "loraRootsFailed": "Не удалось загрузить корни LoRA: {message}", "checkpointRootsFailed": "Не удалось загрузить корни checkpoint: {message}", + "unetRootsFailed": "Не удалось загрузить корни Diffusion Model: {message}", "embeddingRootsFailed": "Не удалось загрузить корни embedding: {message}", "mappingsUpdated": "Сопоставления путей базовых моделей обновлены ({count} сопоставлени{plural})", "mappingsCleared": "Сопоставления путей базовых моделей очищены", diff --git a/locales/zh-CN.json b/locales/zh-CN.json index cc4be004..0b1cbcc0 100644 --- a/locales/zh-CN.json +++ b/locales/zh-CN.json @@ -319,6 +319,8 @@ "defaultLoraRootHelp": "设置下载、导入和移动时的默认 LoRA 根目录", "defaultCheckpointRoot": "默认 Checkpoint 根目录", "defaultCheckpointRootHelp": "设置下载、导入和移动时的默认 Checkpoint 根目录", + "defaultUnetRoot": "默认 Diffusion Model 根目录", + "defaultUnetRootHelp": "设置下载、导入和移动时的默认 Diffusion Model (UNET) 根目录", "defaultEmbeddingRoot": "默认 Embedding 根目录", "defaultEmbeddingRootHelp": "设置下载、导入和移动时的默认 Embedding 根目录", "noDefault": "无默认" @@ -1391,6 +1393,7 @@ "settings": { "loraRootsFailed": "加载 LoRA 根目录失败:{message}", "checkpointRootsFailed": "加载 Checkpoint 根目录失败:{message}", + "unetRootsFailed": "加载 Diffusion Model 根目录失败:{message}", "embeddingRootsFailed": "加载 Embedding 根目录失败:{message}", "mappingsUpdated": "基础模型路径映射已更新({count} 条映射{plural})", "mappingsCleared": "基础模型路径映射已清除", diff --git a/locales/zh-TW.json b/locales/zh-TW.json index 88ca11ae..b47b87fb 100644 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -319,6 +319,8 @@ "defaultLoraRootHelp": "設定下載、匯入和移動時的預設 LoRA 根目錄", "defaultCheckpointRoot": "預設 Checkpoint 根目錄", "defaultCheckpointRootHelp": "設定下載、匯入和移動時的預設 Checkpoint 根目錄", + "defaultUnetRoot": "預設 Diffusion Model 根目錄", + "defaultUnetRootHelp": "設定下載、匯入和移動時的預設 Diffusion Model (UNET) 根目錄", "defaultEmbeddingRoot": "預設 Embedding 根目錄", "defaultEmbeddingRootHelp": "設定下載、匯入和移動時的預設 Embedding 根目錄", "noDefault": "未設定預設" @@ -1391,6 +1393,7 @@ "settings": { "loraRootsFailed": "載入 LoRA 根目錄失敗:{message}", "checkpointRootsFailed": "載入 checkpoint 根目錄失敗:{message}", + "unetRootsFailed": "載入 Diffusion Model 根目錄失敗:{message}", "embeddingRootsFailed": "載入 embedding 根目錄失敗:{message}", "mappingsUpdated": "基礎模型路徑對應已更新({count} 個對應)", "mappingsCleared": "基礎模型路徑對應已清除", diff --git a/py/routes/handlers/misc_handlers.py b/py/routes/handlers/misc_handlers.py index f0027c73..502b7354 100644 --- a/py/routes/handlers/misc_handlers.py +++ b/py/routes/handlers/misc_handlers.py @@ -224,6 +224,7 @@ class SettingsHandler: "civitai_api_key", "default_lora_root", "default_checkpoint_root", + "default_unet_root", "default_embedding_root", "base_model_path_mappings", "download_path_templates", diff --git a/static/css/components/modal/settings-modal.css b/static/css/components/modal/settings-modal.css index a8ee97fe..de1c5ef9 100644 --- a/static/css/components/modal/settings-modal.css +++ b/static/css/components/modal/settings-modal.css @@ -20,7 +20,7 @@ } .settings-modal { - max-width: 650px; /* Further increased from 600px for more space */ + max-width: 700px; /* Further increased from 600px for more space */ } .settings-header { diff --git a/static/js/managers/SettingsManager.js b/static/js/managers/SettingsManager.js index dd120ac2..8c1da249 100644 --- a/static/js/managers/SettingsManager.js +++ b/static/js/managers/SettingsManager.js @@ -493,6 +493,9 @@ export class SettingsManager { // Load default embedding root await this.loadEmbeddingRoots(); + // Load default unet root + await this.loadUnetRoots(); + // Load language setting const languageSelect = document.getElementById('languageSelect'); if (languageSelect) { @@ -883,8 +886,8 @@ export class SettingsManager { const defaultCheckpointRootSelect = document.getElementById('defaultCheckpointRoot'); if (!defaultCheckpointRootSelect) return; - // Fetch checkpoint roots - const response = await fetch('/api/lm/checkpoints/roots'); + // Fetch checkpoint roots (checkpoint paths only, not unet) + const response = await fetch('/api/lm/checkpoints/checkpoints_roots'); if (!response.ok) { throw new Error('Failed to fetch checkpoint roots'); } @@ -894,7 +897,7 @@ export class SettingsManager { throw new Error('No checkpoint roots found'); } - // Clear existing options except the first one (No Default) + // Clear existing options except first one (No Default) const noDefaultOption = defaultCheckpointRootSelect.querySelector('option[value=""]'); defaultCheckpointRootSelect.innerHTML = ''; defaultCheckpointRootSelect.appendChild(noDefaultOption); @@ -917,6 +920,45 @@ export class SettingsManager { } } + async loadUnetRoots() { + try { + const defaultUnetRootSelect = document.getElementById('defaultUnetRoot'); + if (!defaultUnetRootSelect) return; + + // Fetch unet roots (diffusion model paths only) + const response = await fetch('/api/lm/checkpoints/unet_roots'); + if (!response.ok) { + throw new Error('Failed to fetch diffusion model roots'); + } + + const data = await response.json(); + if (!data.roots || data.roots.length === 0) { + throw new Error('No diffusion model roots found'); + } + + // Clear existing options except first one (No Default) + const noDefaultOption = defaultUnetRootSelect.querySelector('option[value=""]'); + defaultUnetRootSelect.innerHTML = ''; + defaultUnetRootSelect.appendChild(noDefaultOption); + + // Add options for each root + data.roots.forEach(root => { + const option = document.createElement('option'); + option.value = root; + option.textContent = root; + defaultUnetRootSelect.appendChild(option); + }); + + // Set selected value from settings + const defaultRoot = state.global.settings.default_unet_root || ''; + defaultUnetRootSelect.value = defaultRoot; + + } catch (error) { + console.error('Error loading diffusion model roots:', error); + showToast('toast.settings.unetRootsFailed', { message: error.message }, 'error'); + } + } + async loadEmbeddingRoots() { try { const defaultEmbeddingRootSelect = document.getElementById('defaultEmbeddingRoot'); @@ -933,7 +975,7 @@ export class SettingsManager { throw new Error('No embedding roots found'); } - // Clear existing options except the first one (No Default) + // Clear existing options except first one (No Default) const noDefaultOption = defaultEmbeddingRootSelect.querySelector('option[value=""]'); defaultEmbeddingRootSelect.innerHTML = ''; defaultEmbeddingRootSelect.appendChild(noDefaultOption); diff --git a/templates/components/modals/settings_modal.html b/templates/components/modals/settings_modal.html index dbd7942a..3cc8dae9 100644 --- a/templates/components/modals/settings_modal.html +++ b/templates/components/modals/settings_modal.html @@ -301,6 +301,23 @@ +
+
+
+ +
+
+ +
+
+
+ {{ t('settings.folderSettings.defaultUnetRootHelp') }} +
+
+