frontend: use exact download category folder keys as display labels
This commit is contained in:
@@ -2497,6 +2497,44 @@ test('download category normalization maps select safetensors alias to diffusion
|
||||
assert.equal(normalizeDownloadCategory('SELECT SAFETENSORS'), 'diffusion_models');
|
||||
});
|
||||
|
||||
test('category display names use exact ComfyUI folder keys', () => {
|
||||
const normalizeDownloadCategory = eval(`(${extractMethod(downloadTargetMethodsSource, 'normalizeDownloadCategory')})`);
|
||||
const getCategoryDisplayName = eval(`(${extractMethod(downloadTargetMethodsSource, 'getCategoryDisplayName')})`);
|
||||
const dialog = { normalizeDownloadCategory };
|
||||
|
||||
assert.equal(getCategoryDisplayName.call(dialog, 'audio_encoders'), 'audio_encoders');
|
||||
assert.equal(getCategoryDisplayName.call(dialog, 'audio_encoder'), 'audio_encoders');
|
||||
assert.equal(getCategoryDisplayName.call(dialog, 'text_encoders'), 'text_encoders');
|
||||
assert.equal(getCategoryDisplayName.call(dialog, 'style_models'), 'style_models');
|
||||
assert.equal(getCategoryDisplayName.call(dialog, 'model_patches'), 'model_patches');
|
||||
assert.equal(getCategoryDisplayName.call(dialog, 'upscale_models'), 'upscale_models');
|
||||
assert.equal(getCategoryDisplayName.call(dialog, 'loras'), 'loras');
|
||||
assert.equal(getCategoryDisplayName.call(dialog, 'checkpoints'), 'checkpoints');
|
||||
});
|
||||
|
||||
test('download path settings label categories with exact folder keys', () => {
|
||||
const getDefaultDownloadPathTemplates = eval(`(${extractMethod(downloadTargetMethodsSource, 'getDefaultDownloadPathTemplates')})`);
|
||||
const getDownloadPathTemplateCategoryDefinitions = eval(`(${extractMethod(downloadTargetMethodsSource, 'getDownloadPathTemplateCategoryDefinitions')})`);
|
||||
const getDefaultRootCategoryDefinitions = eval(`(${extractMethod(downloadTargetMethodsSource, 'getDefaultRootCategoryDefinitions')})`);
|
||||
const dialog = { getDefaultDownloadPathTemplates };
|
||||
|
||||
const templateCategories = getDownloadPathTemplateCategoryDefinitions.call(dialog);
|
||||
const rootCategories = getDefaultRootCategoryDefinitions.call(dialog);
|
||||
|
||||
assert.deepEqual(
|
||||
templateCategories.map(item => item.label),
|
||||
templateCategories.map(item => item.key)
|
||||
);
|
||||
assert.equal(
|
||||
rootCategories.find(item => item.key === 'text_encoders').label,
|
||||
'text_encoders'
|
||||
);
|
||||
assert.equal(
|
||||
rootCategories.find(item => item.key === 'upscale_models').label,
|
||||
'upscale_models'
|
||||
);
|
||||
});
|
||||
|
||||
test('missing model preview shows accepted GGUF format next to its category', () => {
|
||||
const renderMissingModelFormatBadges = eval(`(${extractMethod(missingBrowserMethodsSource, 'renderMissingModelFormatBadges')})`);
|
||||
const dialog = {
|
||||
|
||||
@@ -714,35 +714,7 @@ export const downloadTargetMethods = {
|
||||
|
||||
getCategoryDisplayName(category = '') {
|
||||
category = this.normalizeDownloadCategory(category);
|
||||
const displayNames = {
|
||||
'checkpoints': 'checkpoint',
|
||||
'loras': 'lora',
|
||||
'vae': 'vae',
|
||||
'controlnet': 'controlnet',
|
||||
'embeddings': 'embedding',
|
||||
'upscale_models': 'upscale_model',
|
||||
'latent_upscale_models': 'latent_upscale_model',
|
||||
'diffusion_models': 'diffusion_models',
|
||||
'text_encoders': 'text encoders',
|
||||
'clip': 'clip',
|
||||
'clip_vision': 'clip_vision',
|
||||
'hypernetworks': 'hypernetwork',
|
||||
'style_models': 'style model',
|
||||
'gligen': 'GLIGEN',
|
||||
'diffusers': 'Diffusers',
|
||||
'vae_approx': 'TAESD / VAE approx',
|
||||
'audio_encoders': 'audio encoder',
|
||||
'background_removal': 'background removal',
|
||||
'frame_interpolation': 'frame interpolation',
|
||||
'geometry_estimation': 'geometry estimation',
|
||||
'detection': 'detection',
|
||||
'model_patches': 'model patch',
|
||||
'photomaker': 'PhotoMaker',
|
||||
'optical_flow': 'optical flow',
|
||||
'sams': 'SAM',
|
||||
'ultralytics': 'Ultralytics'
|
||||
};
|
||||
return displayNames[category] || category || 'unknown';
|
||||
return category || 'unknown';
|
||||
},
|
||||
|
||||
getModelTypeColorClass(value = '') {
|
||||
@@ -1107,27 +1079,19 @@ export const downloadTargetMethods = {
|
||||
},
|
||||
|
||||
getDownloadPathTemplateCategoryDefinitions() {
|
||||
return [
|
||||
{ key: 'loras', label: 'LoRAs' },
|
||||
{ key: 'checkpoints', label: 'Checkpoints' },
|
||||
{ key: 'embeddings', label: 'Embeddings' },
|
||||
{ key: 'diffusion_models', label: 'Diffusion models' },
|
||||
{ key: 'text_encoders', label: 'Text encoders' },
|
||||
{ key: 'controlnet', label: 'ControlNet' },
|
||||
{ key: 'vae', label: 'VAE' },
|
||||
{ key: 'upscale_models', label: 'Upscale models' }
|
||||
];
|
||||
return Object.keys(this.getDefaultDownloadPathTemplates())
|
||||
.map(key => ({ key, label: key }));
|
||||
},
|
||||
|
||||
getDefaultRootCategoryDefinitions() {
|
||||
return [
|
||||
{ key: 'loras', label: 'LoRA root', settingKey: 'default_lora_root', storageKey: 'ModelResolver.defaultLoraRoot' },
|
||||
{ key: 'checkpoints', label: 'Checkpoint root', settingKey: 'default_checkpoint_root', storageKey: 'ModelResolver.defaultCheckpointRoot' },
|
||||
{ key: 'diffusion_models', label: 'Diffusion model root', settingKey: 'default_unet_root', storageKey: 'ModelResolver.defaultUnetRoot' },
|
||||
{ key: 'embeddings', label: 'Embedding root', settingKey: 'default_embedding_root', storageKey: 'ModelResolver.defaultEmbeddingRoot' },
|
||||
{ key: 'text_encoders', label: 'Text encoder root', settingKey: 'default_text_encoder_root', storageKey: 'ModelResolver.defaultTextEncoderRoot' },
|
||||
{ key: 'vae', label: 'VAE root', settingKey: 'default_vae_root', storageKey: 'ModelResolver.defaultVaeRoot' },
|
||||
{ key: 'upscale_models', label: 'Upscale model root', settingKey: 'default_upscale_model_root', storageKey: 'ModelResolver.defaultUpscaleModelRoot' }
|
||||
{ key: 'loras', label: 'loras', settingKey: 'default_lora_root', storageKey: 'ModelResolver.defaultLoraRoot' },
|
||||
{ key: 'checkpoints', label: 'checkpoints', settingKey: 'default_checkpoint_root', storageKey: 'ModelResolver.defaultCheckpointRoot' },
|
||||
{ key: 'diffusion_models', label: 'diffusion_models', settingKey: 'default_unet_root', storageKey: 'ModelResolver.defaultUnetRoot' },
|
||||
{ key: 'embeddings', label: 'embeddings', settingKey: 'default_embedding_root', storageKey: 'ModelResolver.defaultEmbeddingRoot' },
|
||||
{ key: 'text_encoders', label: 'text_encoders', settingKey: 'default_text_encoder_root', storageKey: 'ModelResolver.defaultTextEncoderRoot' },
|
||||
{ key: 'vae', label: 'vae', settingKey: 'default_vae_root', storageKey: 'ModelResolver.defaultVaeRoot' },
|
||||
{ key: 'upscale_models', label: 'upscale_models', settingKey: 'default_upscale_model_root', storageKey: 'ModelResolver.defaultUpscaleModelRoot' }
|
||||
];
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user