4.5 KiB
4.5 KiB
ComfyUI-CMP-Extention
简介
ComfyUI-CMP-Extention 是一个专为 170HX显卡 设计的 ComfyUI 加速扩展插件。它基于 "Instruction-Level Performance Analysis and Optimization Strategies for Constrained AI Accelerators A Case Study of CMP 170HX". 的研究成果,通过优化特定算子来提升推理性能。本扩展需要与 cmp_ext 库配合使用。
安装方法
- 确保您已安装并配置好 cmp_ext 。
- 进入 ComfyUI 的
custom_nodes目录。 - 执行以下命令克隆本扩展:
git clone https://github.com/eastmoe/ComfyUI-CMP-Extention
- 重启 ComfyUI。
使用方法
- 在 ComfyUI 中,您可以在节点菜单的 eastmoe > Comfy-CMP 分类下找到 CmpExt3ControlPanelNode 节点。
- 将该节点插入到 加载模型之后 与 采样器之前 的位置。
- 根据需要勾选/取消勾选要优化的算子类型。
- 连接节点:
- 将模型加载节点的输出连接到
model输入(可选) - 将 CLIP 加载节点的输出连接到
clip输入(可选) - 将 VAE 加载节点的输出连接到
vae输入(可选)
- 将模型加载节点的输出连接到
节点参数说明
核心算子
- Ops: Linear: 线性层优化 (默认启用)
- Ops: Conv2d: 卷积层优化 (默认禁用)
- Ops: ConvTranspose2d (VAE Upscale): 转置卷积优化,用于VAE上采样 (默认禁用)
- Ops: BMM (Attention): 注意力机制中的批矩阵乘法优化 (默认启用)
归一化层
- Norm: GroupNorm (VAE): 组归一化优化,主要用于VAE (默认启用)
- Norm: LayerNorm (CLIP/Transformer): 层归一化优化,用于CLIP/Transformer (默认启用)
激活函数
- Act: SiLU / Swish (VAE Main Suspect!): SiLU/Swish激活函数优化,VAE中的主要优化对象 (默认启用)
- Act: GELU (CLIP/UNet): GELU激活函数优化,用于CLIP/UNet (默认启用)
- Act: Softmax (Attention): Softmax激活函数优化,用于注意力机制 (默认启用)
- Act: Mish: Mish激活函数优化 (默认禁用)
- Act: Softplus: Softplus激活函数优化 (默认禁用)
- Act: Softsign: Softsign激活函数优化 (默认禁用)
注意事项
- 本扩展专门针对 170HX显卡 优化,其他显卡型号可能无法获得相同效果或出现兼容性问题。
- 如果遇到性能下降或不稳定问题,可以尝试禁用部分算子优化。
节点定义参考
class CmpExt3ControlPanelNode:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
# --- Core ---
"enable_linear": ("BOOLEAN", {"default": True, "label": "Ops: Linear"}),
"enable_conv2d": ("BOOLEAN", {"default": False, "label": "Ops: Conv2d"}),
"enable_conv_transpose": ("BOOLEAN", {"default": False, "label": "Ops: ConvTranspose2d (VAE Upscale)"}),
"enable_bmm": ("BOOLEAN", {"default": True, "label": "Ops: BMM (Attention)"}),
# --- Norms ---
"enable_group_norm": ("BOOLEAN", {"default": True, "label": "Norm: GroupNorm (VAE)"}),
"enable_layer_norm": ("BOOLEAN", {"default": True, "label": "Norm: LayerNorm (CLIP/Transformer)"}),
# --- Activations (Suspects) ---
"enable_silu": ("BOOLEAN", {"default": True, "label": "Act: SiLU / Swish (VAE Main Suspect!)"}),
"enable_gelu": ("BOOLEAN", {"default": True, "label": "Act: GELU (CLIP/UNet)"}),
"enable_softmax": ("BOOLEAN", {"default": True, "label": "Act: Softmax (Attention)"}),
"enable_mish": ("BOOLEAN", {"default": False, "label": "Act: Mish"}),
"enable_softplus": ("BOOLEAN", {"default": False, "label": "Act: Softplus"}),
"enable_softsign": ("BOOLEAN", {"default": False, "label": "Act: Softsign"}),
},
"optional": {
"model": ("MODEL",),
"clip": ("CLIP",),
"vae": ("VAE",),
}
}
RETURN_TYPES = ("MODEL", "CLIP", "VAE")
RETURN_NAMES = ("model", "clip", "vae")
FUNCTION = "execute_patch"
CATEGORY = "eastmoe/Comfy-CMP"
许可证
MIT License
免责声明:本扩展基于学术研究实现,工程稳定性有限,作者不对使用本扩展造成的任何问题负责。请在使用前充分测试并理解相关风险。