diff --git a/__init__.py b/__init__.py index b44aefb..b199c2d 100644 --- a/__init__.py +++ b/__init__.py @@ -7,7 +7,7 @@ import importlib -version_code = [0, 67, 1] +version_code = [0, 68] version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '') print(f"### Loading: ComfyUI-Inspire-Pack ({version_str})") diff --git a/cache_settings.json b/cache_settings.json index 39edf87..c0a5766 100644 --- a/cache_settings.json +++ b/cache_settings.json @@ -1,3 +1,5 @@ { - "ckpt": 5 + "ckpt": 5, + "latent": 100, + "image": 100 } \ No newline at end of file diff --git a/inspire/backend_support.py b/inspire/backend_support.py index fa57515..1b99a3b 100644 --- a/inspire/backend_support.py +++ b/inspire/backend_support.py @@ -299,6 +299,10 @@ class ShowCachedInfo: for k, v in cache._tag_settings.items(): text3 += f'{k}: {v}\n' + for k, v in cache._data.items(): + if k not in cache._tag_settings: + text3 += f'{k}: {v.maxsize}\n' + return f'{text1}\n{text2}\n{text3}' @staticmethod diff --git a/inspire/libs/utils.py b/inspire/libs/utils.py index 6645462..23fd92a 100644 --- a/inspire/libs/utils.py +++ b/inspire/libs/utils.py @@ -190,7 +190,7 @@ class ByPassTypeTuple(tuple): class TaggedCache: def __init__(self, tag_settings: Optional[dict]=None): - self._tag_settings = tag_settings or {} # tag cache size + self._tag_settings = tag_settings or {} # tag cache size self._data = {} def __getitem__(self, key): @@ -210,10 +210,18 @@ class TaggedCache: tag = value[0] if tag not in self._data: - # init tag cache, default tag size is 5 + try: from cachetools import LRUCache - self._data[tag] = LRUCache(maxsize=self._tag_settings.get(tag, 5)) + + default_size = 20 + if 'ckpt' in tag: + default_size = 5 + elif tag in ['latent', 'image']: + default_size = 100 + + self._data[tag] = LRUCache(maxsize=self._tag_settings.get(tag, default_size)) + except (ImportError, ModuleNotFoundError): # TODO: implement a simple lru dict self._data[tag] = {}