diff --git a/modules/sd_models.py b/modules/sd_models.py index eb21e498..a1e16d82 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -61,6 +61,21 @@ def list_models(): title, model_name = modeltitle(filename, h) checkpoints_list[title] = CheckpointInfo(filename, title, h, model_name) +def get_closet_checkpoint_match(searchString): + checkpointValues = checkpoints_list.values() + + applicable = [info for info in checkpointValues if searchString.upper() == ''.join(info.title.rpartition('.ckpt')[0]).upper()] + + if len(applicable) == 0: + applicable = [info for info in checkpointValues if searchString.upper() == ''.join(info.title.rpartition('.ckpt')[:2]).upper()] + + if len(applicable) == 0: + applicable = [info for info in checkpointValues if searchString in info.title] + + if len(applicable)>0: + return applicable[0] + + return None def model_hash(filename): try: