Files
CavinHuang-comfyui-nodes-docs/docs/CheckpointLoaderSimpleShared %2F%2FInspire.md
2024-05-26 20:35:16 +08:00

2.9 KiB

Documentation

该节点便于检索和缓存模型检查点,确保高效访问模型同时最小化不必要的加载操作。通过智能管理基于提供键和检查点名称的缓存,它简化了模型使用流程。

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)