improve: Assign different default cache sizes to each tag.

This commit is contained in:
Dr.Lt.Data
2024-03-19 23:46:32 +09:00
parent 1a5abae99e
commit 4750be13ad
4 changed files with 19 additions and 5 deletions
+1 -1
View File
@@ -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})")
+3 -1
View File
@@ -1,3 +1,5 @@
{
"ckpt": 5
"ckpt": 5,
"latent": 100,
"image": 100
}
+4
View File
@@ -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
+11 -3
View File
@@ -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] = {}