feat: add sams and ultralytics model categories

Add support for Two new model categories with full frontend and backend
integration:

- sams: maps sam, sam_model, sam_models → sams category
- ultralytics: maps ultralytics, ultralytics_bbox, ultralytics_segm, yolo → ultralytics category

Covers CATEGORY_MAP, settings templates/aliases, workflow_analyzer node hints,
download target resolution (JS), and folder detection.
This commit is contained in:
Dariusz L
2026-06-19 00:44:36 +02:00
parent 32d437df50
commit 6de0668c4b
6 changed files with 59 additions and 3 deletions
+9
View File
@@ -788,6 +788,14 @@ class ModelResolverExtension:
"gligen": "gligen",
"diffusers": "diffusers",
"vae_approx": "vae_approx",
"sam": "sams",
"sam_model": "sams",
"sam_models": "sams",
"sams": "sams",
"ultralytics": "ultralytics",
"ultralytics_bbox": "ultralytics",
"ultralytics_segm": "ultralytics",
"yolo": "ultralytics",
"audio_encoder": "audio_encoders",
"audio_encoders": "audio_encoders",
"background_removal": "background_removal",
@@ -1943,6 +1951,7 @@ class ModelResolverExtension:
"text_encoders",
"ipadapter",
"sams",
"ultralytics",
]
skip_categories = {"custom_nodes", "configs"}
categories = []
+8
View File
@@ -63,6 +63,14 @@ CATEGORY_MAP = {
"gligen": "gligen",
"diffusers": "diffusers",
"vae_approx": "vae_approx",
"sam": "sams",
"sam_model": "sams",
"sam_models": "sams",
"sams": "sams",
"ultralytics": "ultralytics",
"ultralytics_bbox": "ultralytics",
"ultralytics_segm": "ultralytics",
"yolo": "ultralytics",
"audio_encoder": "audio_encoders",
"audio_encoders": "audio_encoders",
"background_removal": "background_removal",
+12
View File
@@ -39,6 +39,14 @@ CATEGORY_MAP = {
"gligen": "gligen",
"diffusers": "diffusers",
"vae_approx": "vae_approx",
"sam": "sams",
"sam_model": "sams",
"sam_models": "sams",
"sams": "sams",
"ultralytics": "ultralytics",
"ultralytics_bbox": "ultralytics",
"ultralytics_segm": "ultralytics",
"yolo": "ultralytics",
"audio_encoder": "audio_encoders",
"audio_encoders": "audio_encoders",
"background_removal": "background_removal",
@@ -64,6 +72,8 @@ DEFAULT_DOWNLOAD_PATH_TEMPLATES: Dict[str, str] = {
"controlnet": "{base_model}",
"vae": "",
"upscale_models": "",
"sams": "",
"ultralytics": "",
}
DEFAULT_ROOT_KEYS = {
@@ -85,6 +95,8 @@ TEMPLATE_KEY_ALIASES = {
"controlnet": ("controlnet", "control_net"),
"vae": ("vae",),
"upscale_models": ("upscale_models", "upscale_model", "upscaler"),
"sams": ("sams", "sam", "sam_model", "sam_models"),
"ultralytics": ("ultralytics", "ultralytics_bbox", "ultralytics_segm", "yolo"),
}
PRIORITY_TAGS = (
+6
View File
@@ -108,6 +108,8 @@ NODE_TYPE_TO_CATEGORY_HINTS = {
"StyleModelLoader": "style_models",
"GLIGENLoader": "gligen",
"UpscaleModelLoader": "upscale_models",
"SAMLoader": "sams",
"UltralyticsDetectorProvider": "ultralytics",
"AudioEncoderLoader": "audio_encoders",
"LoadBackgroundRemovalModel": "background_removal",
"LoadDA3Model": "geometry_estimation",
@@ -209,6 +211,8 @@ NODE_TYPE_MODEL_WIDGET_CATEGORIES = {
"StyleModelLoader": {0: "style_models"},
"GLIGENLoader": {0: "gligen"},
"UpscaleModelLoader": {0: "upscale_models"},
"SAMLoader": {0: "sams"},
"UltralyticsDetectorProvider": {0: "ultralytics"},
"AudioEncoderLoader": {0: "audio_encoders"},
"LoadBackgroundRemovalModel": {0: "background_removal"},
"LoadDA3Model": {0: "geometry_estimation"},
@@ -251,6 +255,7 @@ MODEL_WIDGET_NAME_TO_CATEGORY = {
"audio_encoder_name": "audio_encoders",
"bg_removal_name": "background_removal",
"photomaker_model_name": "photomaker",
"sam_model_name": "sams",
"text_encoder": "text_encoders",
"hypernetwork_name": "hypernetworks",
}
@@ -316,6 +321,7 @@ MODEL_WIDGET_PLACEHOLDERS = {
"included",
"(use same)",
"select the lora to add to the text",
"esam",
"pixel_space",
"taesd",
"taesdxl",
+21 -3
View File
@@ -122,6 +122,12 @@ export const downloadTargetMethods = {
style_model: 'style_models',
audio_encoder: 'audio_encoders',
model_patch: 'model_patches',
sam: 'sams',
sam_model: 'sams',
sam_models: 'sams',
ultralytics_bbox: 'ultralytics',
ultralytics_segm: 'ultralytics',
yolo: 'ultralytics',
background_removal_model: 'background_removal',
frame_interpolation_model: 'frame_interpolation',
geometry_estimation_model: 'geometry_estimation',
@@ -157,7 +163,9 @@ export const downloadTargetMethods = {
'detection': 'detection',
'model_patches': 'model patch',
'photomaker': 'PhotoMaker',
'optical_flow': 'optical flow'
'optical_flow': 'optical flow',
'sams': 'SAM',
'ultralytics': 'Ultralytics'
};
return displayNames[category] || category || 'unknown';
},
@@ -229,6 +237,13 @@ export const downloadTargetMethods = {
model_patch: 'model',
photomaker: 'clip-vision',
optical_flow: 'image',
sams: 'controlnet',
sam: 'controlnet',
sam_model: 'controlnet',
ultralytics: 'controlnet',
ultralytics_bbox: 'controlnet',
ultralytics_segm: 'controlnet',
yolo: 'controlnet',
image: 'image',
images: 'image',
mask: 'mask',
@@ -269,7 +284,9 @@ export const downloadTargetMethods = {
'detection': 'detection',
'model_patches': 'model_patch',
'photomaker': 'photomaker',
'optical_flow': 'optical_flow'
'optical_flow': 'optical_flow',
'sams': 'sam_model',
'ultralytics': 'ultralytics'
};
return tokenNames[category] || category || 'unknown';
},
@@ -298,7 +315,8 @@ export const downloadTargetMethods = {
'photomaker',
'optical_flow',
'ipadapter',
'sams'
'sams',
'ultralytics'
];
},
@@ -42,6 +42,7 @@ export const workflowStateMethods = {
'audio_encoder_name',
'bg_removal_name',
'photomaker_model_name',
'sam_model_name',
'text_encoder',
'existing_lora',
'hypernetwork_name',
@@ -111,6 +112,8 @@ export const workflowStateMethods = {
StyleModelLoader: [0],
GLIGENLoader: [0],
UpscaleModelLoader: [0],
SAMLoader: [0],
UltralyticsDetectorProvider: [0],
AudioEncoderLoader: [0],
LoadBackgroundRemovalModel: [0],
LoadDA3Model: [0],