手把手教你写COMFYUI 节点,自定义comfyui节点,封装comfyui插件

介绍:

众所周知,comfyui是一个AI绘图领域的一个十分好用的工具,可以完成很多十分复杂的工作流。工作效率远远高于 传统的webui。同时,入门门槛十分低,在bilibili看一个小时教程即可完全入门。

所以很多工作室将comfyui工作流作为stable diffusion开发的主要工具。

本文即来教大家如何使用comfyui写自己的插件。保证通俗易懂,看完就会。

(当然默认你已经安装了comfyui,并且知道怎么使用。并且了解python简单的语法)

最基本的框架:

首先,在comfyui文件目录下,custom_nodes 文件夹是我们要放置我们的插件的地方。

下面我将演示一下,如何使用代码写一个最简单的插件。 首先,新建一个py文件,命名为example.py

class example_class:
    @classmethod
    def INPUT_TYPES(s):
        return {
            "required": {
                "image": ("IMAGE",),
            },
            "optional":{
                "width":("INT", {"default": 512, "min": 0, "step": 1}),
                "type": (
                    ["ImagePrompt", "PyraCanny", "CPDS", "FaceSwap"],
                    {"default": "ImagePrompt"},)


}
        }

    CATEGORY = "example_list/example"

    RETURN_TYPES = ("IMAGE",)
    FUNCTION = "example_func"

    def example_func(self, image,width,type):
        return (image,)



NODE_CLASS_MAPPINGS = {
    "example": example_class,
}

NODE_DISPLAY_NAME_MAPPINGS = {
    "example": "displayname",

}

无论写什么节点,都可以先无脑把这套框架搬运过去。下面我将一行行介绍这些代码,当然懂代码的可能看到这里就已经懂了。

input 函数

要写一个节点,首先要声明一个类,class,然后要写的第一个函数就是INPUT_TYPES 这个函数。他要控制我们写的节点中输入是什么。

首先,require里要写必须要连接的节点, 在comfyui中如果不连接就会报错,optional是可选的选项,

如果我们节点 的输入是类型是上一个节点输出的类型,"image": ("IMAGE",),就像这样就可以了。

括号里写输出节点的输出类型就OK了。

如果节点的输入类型是,int数字或者float 数字,那么就像这样。

"width":("INT", {"default": 512, "min": 0, "step": 1}),

default 是默认的数字,min是最小值,max 是最大值,step是comfyui里左右调整时的步长。

如果输入是选择题,就像这样。

                "type": (
                    ["ImagePrompt", "PyraCanny", "CPDS", "FaceSwap"],
                    {"default": "ImagePrompt"},)

其他参数:

CATEGORY 控制这个节点你在comfyui右键后,存放的位置。

RETURN_TYPES :输出的节点的类型

example_func        就是功能函数,要实现的功能都在这里写就行。

  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值