fix(other-models): default downloads to a flat path, not {base_model}/{first_tag}

get_download_path_template() fell back to "{base_model}/{first_tag}" for any
unconfigured model type, so other-model downloads were silently nested under an
arbitrary CivitAI tag even though the settings UI exposes no template row for
"other" and priority_tags has no "other" entry (making {first_tag} resolve to
tags[0]).

Add DEFAULT_DOWNLOAD_PATH_TEMPLATES with other -> "" so unconfigured and
unknown types resolve to a flat layout under the already sub_type-scoped
default_other_roots; explicit settings.json values still win. Mirror the flat
default in the frontend DEFAULT_PATH_TEMPLATES and stop the download/move
default-path previews from rendering "/undefined" or a dangling slash.
This commit is contained in:
Will Miao
2026-09-13 11:30:57 +08:00
parent 931dfbe1d3
commit 6fe0543d2e
9 changed files with 269 additions and 25 deletions
+4 -5
View File
@@ -226,14 +226,13 @@ class MoveManager {
if (modelRoot) {
if (this.useDefaultPath) {
// Show actual template path
// Show actual template path; an empty/absent template means a
// flat layout, so keep the root as-is.
const singularType = config.singularName || apiClient.modelType.replace(/s$/, '');
const templates = state.global.settings.download_path_templates;
const template = templates[singularType];
const templates = state.global?.settings?.download_path_templates;
const template = templates?.[singularType];
if (template) {
fullPath += `/${template}`;
} else {
fullPath += '/' + translate('modals.download.autoOrganizedPath');
}
} else {
// Show manual path selection