2.9 KiB
2.9 KiB
Documentation
- Class name: CheckpointLoaderSimpleShared
- Category: InspirePack/Backend
- Output node: False
- Repo Ref: https://github.com/ltdrdata/ComfyUI-Inspire-Pack.git
该节点便于检索和缓存模型检查点,确保高效访问模型同时最小化不必要的加载操作。通过智能管理基于提供键和检查点名称的缓存,它简化了模型使用流程。
Input types
Required
- ckpt_name
- 检查点名称对于识别要加载的特定模型至关重要。它在缓存系统中作为唯一参考,允许节点检索或存储相应的模型数据。
- Comfy dtype: COMBO[folder_paths.get_filename_list('checkpoints'),]
- Python dtype: Union[str, None]
Optional
- key_opt
- 这个可选参数允许用户指定一个自定义键来缓存检查点。如果不提供,则默认使用检查点名称,提供了缓存组织和访问方式的灵活性。
- Comfy dtype: STRING
- Python dtype: str
Output types
- model
- 模型输出代表已加载的机器学习或深度学习模型,准备进行进一步的处理或推理。它是节点功能的核心组成部分,使得下游任务成为可能。
- Comfy dtype: ANY
- Python dtype: Any
- clip
- clip输出与特定模型组件相关联,通常用于辅助任务或额外处理。它补充了主模型输出,增强了节点的整体能力。
- Comfy dtype: ANY
- Python dtype: Any
- vae
- VAE,即变分自编码器,是一种生成模型,可能由该节点加载。它在根据学习到的分布生成新的数据点或特征方面发挥着重要作用。
- Comfy dtype: ANY
- Python dtype: Any
- cache_key
- 缓存键是用于在系统中引用缓存的检查点的唯一标识符。对于缓存机制内检查点的管理和检索至关重要。
- Comfy dtype: STRING
- Python dtype: str
Usage tips
- Infra type: CPU
Source code
class CheckpointLoaderSimpleShared(nodes.CheckpointLoaderSimple):
@classmethod
def INPUT_TYPES(s):
return {'required': {'ckpt_name': (folder_paths.get_filename_list('checkpoints'),), 'key_opt': ('STRING', {'multiline': False, 'placeholder': "If empty, use 'ckpt_name' as the key."})}}
RETURN_TYPES = ('MODEL', 'CLIP', 'VAE', 'STRING')
RETURN_NAMES = ('model', 'clip', 'vae', 'cache key')
FUNCTION = 'doit'
CATEGORY = 'InspirePack/Backend'
def doit(self, ckpt_name, key_opt):
if key_opt.strip() == '':
key = ckpt_name
else:
key = key_opt.strip()
if key not in cache:
res = self.load_checkpoint(ckpt_name)
cache[key] = ('ckpt', (False, res))
print(f"[Inspire Pack] CheckpointLoaderSimpleShared: Ckpt '{ckpt_name}' is cached to '{key}'.")
else:
(_, (_, res)) = cache[key]
print(f"[Inspire Pack] CheckpointLoaderSimpleShared: Cached ckpt '{key}' is loaded. (Loading skip)")
(model, clip, vae) = res
return (model, clip, vae, key)