Files
CavinHuang-comfyui-nodes-docs/docs/TomePatchModel.md
2024-05-15 08:09:49 +08:00

1.8 KiB

Documentation

TomePatchModel 类旨在通过应用补丁技术来修改和增强给定模型的功能。这个名为 'patch' 的方法允许定制模型的注意力机制,可能在不显著改变底层架构的情况下提高其在特定任务上的性能。

Input types

Required

  • model
    • 'model' 参数至关重要,因为它代表了将要被补丁化的机器学习模型。补丁化过程定制了模型的行为,使其更适合预期的应用。
    • Comfy dtype: MODEL
    • Python dtype: torch.nn.Module
  • ratio
    • 'ratio' 参数决定了模型注意力机制被补丁化的比例。它对于控制修改的范围以及在性能和计算效率之间平衡至关重要。
    • Comfy dtype: FLOAT
    • Python dtype: float

Output types

  • modified_model
    • 输出 'modified_model' 是对输入模型应用补丁化过程的结果。它很重要,因为它代表了准备部署或进一步训练的增强模型。
    • Comfy dtype: MODEL
    • Python dtype: torch.nn.Module

Usage tips

  • Infra type: CPU

Source code

class TomePatchModel:

    @classmethod
    def INPUT_TYPES(s):
        return {'required': {'model': ('MODEL',), 'ratio': ('FLOAT', {'default': 0.3, 'min': 0.0, 'max': 1.0, 'step': 0.01})}}
    RETURN_TYPES = ('MODEL',)
    FUNCTION = 'patch'
    CATEGORY = '_for_testing'

    def patch(self, model, ratio):
        self.u = None

        def tomesd_m(q, k, v, extra_options):
            (m, self.u) = get_functions(q, ratio, extra_options['original_shape'])
            return (m(q), k, v)

        def tomesd_u(n, extra_options):
            return self.u(n)
        m = model.clone()
        m.set_model_attn1_patch(tomesd_m)
        m.set_model_attn1_output_patch(tomesd_u)
        return (m,)