Files
CavinHuang-comfyui-nodes-docs/docs/CheckpointHash.md
2024-05-26 20:35:16 +08:00

2.3 KiB

Documentation

CheckpointHash 节点旨在为指定的检查点文件生成和检索加密哈希。它通过哈希其内容来确保检查点的完整性和唯一性。此节点在加载过程中验证检查点的真实性方面发挥着关键作用。

Input types

Required

  • ckpt_name
    • 检查点名称是一个关键参数,用于识别将要生成哈希的特定检查点文件。它用于在检查点目录中匹配文件。
    • Comfy dtype: STRING
    • Python dtype: str

Optional

  • extra_pnginfo
    • 与PNG文件格式相关的额外信息,可能用于检查点之外的额外处理或元数据存储。
    • Comfy dtype: EXTRA_PNGINFO
    • Python dtype: Any
  • prompt
    • prompt 对象用于存储和检索与检查点相关的信息,例如唯一标识符和计算出的哈希,以便在工作流程中后续使用。
    • Comfy dtype: PROMPT
    • Python dtype: Dict[str, Dict[str, Any]]
  • unique_id
    • 检查点的唯一标识符,可用于在系统中跟踪和引用检查点。
    • Comfy dtype: UNIQUE_ID
    • Python dtype: str

Output types

  • ckpt_hash
    • 检查点文件的加密哈希确保了其完整性,并作为验证的手段。
    • Comfy dtype: STRING
    • Python dtype: str

Usage tips

  • Infra type: CPU

Source code

class CheckpointHash:

    @classmethod
    def INPUT_TYPES(s):
        return {'required': {'ckpt_name': ('STRING', {'forceInput': True})}, 'hidden': {'unique_id': 'UNIQUE_ID', 'extra_pnginfo': 'EXTRA_PNGINFO', 'prompt': 'PROMPT'}}
    RETURN_TYPES = ('STRING',)
    RETURN_NAMES = ('ckpt_hash',)
    FUNCTION = 'get_hash'
    CATEGORY = 'Mikey/Loaders'

    def get_hash(self, ckpt_name, extra_pnginfo, prompt, unique_id):
        file_list = folder_paths.get_filename_list('checkpoints')
        matching_file = [s for s in file_list if ckpt_name in s][0]
        ckpt_path = folder_paths.get_full_path('checkpoints', matching_file)
        hash = get_file_hash(ckpt_path)
        ckpt_name = os.path.basename(ckpt_name)
        prompt.get(str(unique_id))['inputs']['output_ckpt_hash'] = hash
        prompt.get(str(unique_id))['inputs']['output_ckpt_name'] = ckpt_name
        return (get_file_hash(ckpt_path),)