@@ -290,6 +290,21 @@ def save_metadata(module, model_path, cover_image, display_name, author, source,
290
290
return f"Model saved: { model_name } " , model_hash , legacy_hash
291
291
292
292
293
+ model_name_filter = ""
294
+
295
+
296
+ def get_filtered_model_paths (s ):
297
+ if not s :
298
+ return ["None" ] + list (model_util .lora_models .values ())
299
+
300
+ return ["None" ] + [v for v in model_util .lora_models .values () if v and s in v .lower ()]
301
+
302
+
303
+ def get_filtered_model_paths_global ():
304
+ global model_name_filter
305
+ return get_filtered_model_paths (model_name_filter )
306
+
307
+
293
308
def setup_ui (addnet_paste_params ):
294
309
"""
295
310
:dict addnet_paste_params: Dictionary of txt2img/img2img controls for each model weight slider,
@@ -304,9 +319,23 @@ def setup_ui(addnet_paste_params):
304
319
305
320
# Module and model selector
306
321
with gr .Row ():
307
- module = gr .Dropdown (["LoRA" ], label = "Network module" , value = "LoRA" , interactive = True )
308
- model = gr .Dropdown (["None" ] + list (model_util .lora_models .values ()), label = "Model" , value = "None" , interactive = True )
309
- modules .ui .create_refresh_button (model , model_util .update_models , lambda : {"choices" : ["None" ] + list (model_util .lora_models .values ())}, "refresh_lora_models" )
322
+ model_filter = gr .Textbox ("" , label = "Model path filter" , placeholder = "Filter models by path name" )
323
+ def update_model_filter (s ):
324
+ global model_name_filter
325
+ model_name_filter = s .strip ().lower ()
326
+ model_filter .change (update_model_filter , inputs = [model_filter ], outputs = [])
327
+ with gr .Row ():
328
+ module = gr .Dropdown (["LoRA" ], label = "Network module" , value = "LoRA" , interactive = True , elem_id = "additional_networks_metadata_editor_module" )
329
+ model = gr .Dropdown (get_filtered_model_paths_global (), label = "Model" , value = "None" , interactive = True ,
330
+ elem_id = "additional_networks_metadata_editor_model" )
331
+ modules .ui .create_refresh_button (model , model_util .update_models , lambda : {"choices" : get_filtered_model_paths_global ()}, "refresh_lora_models" )
332
+
333
+ def submit_model_filter (s ):
334
+ global model_name_filter
335
+ model_name_filter = s
336
+ paths = get_filtered_model_paths (s )
337
+ return gr .Dropdown .update (choices = paths , value = "None" )
338
+ model_filter .submit (submit_model_filter , inputs = [model_filter ], outputs = [model ])
310
339
311
340
# Model hashes and path
312
341
with gr .Row ():
0 commit comments