fix: ltx latent_upscaler reads from latent_upscale_models/ folder, not upscale_models/
This commit is contained in:
@@ -1173,6 +1173,13 @@ async def get_model_lists_endpoint(request):
|
||||
except (KeyError, Exception):
|
||||
upscale_models = []
|
||||
|
||||
# Latent upscale model list (separate folder; used by LatentUpscaleModelLoader,
|
||||
# e.g. LTX 2.3 spatial upscaler)
|
||||
try:
|
||||
latent_upscale_models = folder_paths.get_filename_list("latent_upscale_models")
|
||||
except (KeyError, Exception):
|
||||
latent_upscale_models = []
|
||||
|
||||
# VAE list
|
||||
vae_list = folder_paths.get_filename_list("vae")
|
||||
|
||||
@@ -1191,6 +1198,7 @@ async def get_model_lists_endpoint(request):
|
||||
"dual_clip_types": dual_clip_types,
|
||||
"vae": vae_list,
|
||||
"upscale_models": upscale_models,
|
||||
"latent_upscale_models": latent_upscale_models,
|
||||
"samplers": sampler_names,
|
||||
"schedulers": scheduler_names
|
||||
})
|
||||
|
||||
@@ -153,13 +153,15 @@ def preflight_ltx(config):
|
||||
)
|
||||
|
||||
# 3. Model files exist?
|
||||
# Note: latent_upscaler lives in `latent_upscale_models/` (consumed by
|
||||
# LatentUpscaleModelLoader), NOT `upscale_models/` (which is for image upscalers).
|
||||
checks = [
|
||||
("diffusion_models", config["model"]),
|
||||
("text_encoders", config["clip_models"][0]),
|
||||
("text_encoders", config["clip_models"][1]),
|
||||
("vae", config["vae_video"]),
|
||||
("vae", config["vae_audio"]),
|
||||
("upscale_models", config["latent_upscaler"]),
|
||||
("latent_upscale_models", config["latent_upscaler"]),
|
||||
]
|
||||
missing_files = []
|
||||
for folder_key, name in checks:
|
||||
|
||||
@@ -16,6 +16,7 @@ import {
|
||||
getVAEFolders,
|
||||
getAvailableTextEncoders,
|
||||
getAvailableUpscaleModels,
|
||||
getAvailableLatentUpscaleModels,
|
||||
getAvailableSamplers
|
||||
} from './conf-builder-utilities.js';
|
||||
|
||||
@@ -3854,7 +3855,7 @@ function renderLTXModelFiles(node, configArray) {
|
||||
|
||||
const textEncoders = getAvailableTextEncoders();
|
||||
const vaeList = getAvailableVAEs();
|
||||
const upscaleModels = getAvailableUpscaleModels();
|
||||
const latentUpscaleModels = getAvailableLatentUpscaleModels();
|
||||
|
||||
const fields = [
|
||||
{label: "Dual CLIP 1 (gemma):", optionsList: textEncoders,
|
||||
@@ -3881,8 +3882,8 @@ function renderLTXModelFiles(node, configArray) {
|
||||
placeholder: "Search VAEs...",
|
||||
getter: () => ltx.vae_audio || "",
|
||||
setter: (v) => { ltx.vae_audio = v; node.saveState(); }},
|
||||
{label: "Latent Upscaler:", optionsList: upscaleModels,
|
||||
placeholder: "Search upscale models...",
|
||||
{label: "Latent Upscaler:", optionsList: latentUpscaleModels,
|
||||
placeholder: "Search latent upscalers...",
|
||||
getter: () => ltx.latent_upscaler || "",
|
||||
setter: (v) => { ltx.latent_upscaler = v; node.saveState(); }},
|
||||
];
|
||||
|
||||
@@ -18,6 +18,8 @@ let availableVAEs = null;
|
||||
let vaeFolders = null;
|
||||
let availableUpscaleModels = [];
|
||||
let upscaleModelFolders = ["/"];
|
||||
let availableLatentUpscaleModels = [];
|
||||
let latentUpscaleModelFolders = ["/"];
|
||||
let clipTypes = [];
|
||||
let dualClipTypes = [];
|
||||
let availableSamplers = [];
|
||||
@@ -311,6 +313,10 @@ export async function getModelLists() {
|
||||
availableUpscaleModels = (data.upscale_models || []).map(normalizePath);
|
||||
upscaleModelFolders = extractFolders(availableUpscaleModels);
|
||||
|
||||
// Latent upscale model list (separate folder; LTX 2.3 spatial upscaler etc.)
|
||||
availableLatentUpscaleModels = (data.latent_upscale_models || []).map(normalizePath);
|
||||
latentUpscaleModelFolders = extractFolders(availableLatentUpscaleModels);
|
||||
|
||||
console.log(`[ConfigBuilder] Model lists loaded: ${availableModels?.length || 0} checkpoints, ` +
|
||||
`${availableDiffusionModels.length} diffusion models, ${availableGGUFModels.length} GGUFs, ` +
|
||||
`${availableTextEncoders.length} text encoders, ${availableVAEs.length} VAEs, ` +
|
||||
@@ -346,6 +352,8 @@ export function getAvailableSamplers() { return availableSamplers || []; }
|
||||
export function getAvailableSchedulers() { return availableSchedulers || []; }
|
||||
export function getAvailableUpscaleModels() { return availableUpscaleModels || []; }
|
||||
export function getUpscaleModelFolders() { return upscaleModelFolders || ["/"]; }
|
||||
export function getAvailableLatentUpscaleModels() { return availableLatentUpscaleModels || []; }
|
||||
export function getLatentUpscaleModelFolders() { return latentUpscaleModelFolders || ["/"]; }
|
||||
|
||||
export async function getAvailableSessions() {
|
||||
// Return cached sessions if already loaded (cleared by clearAllCaches on explicit refresh)
|
||||
|
||||
Reference in New Issue
Block a user