ComfyUI MaraScott Nodes 插件保姆级教程
1. 插件简介
插件地址: https://github.com/MaraScott/ComfyUI_MaraScott_Nodes
这个插件就像是给你的 ComfyUI 装了一个"超级工具箱"!它包含了很多实用的小工具,让你的工作流程变得更加简单和高效。
能给我们带来什么效果:
- 万能总线(AnyBus):就像电脑主板上的总线一样,可以把很多连线整理得干干净净
- 图片放大精修器(McBoaty):专门用来放大图片并让细节更清晰,就像给照片做美容
- 循环工具:可以让同样的操作重复很多次,不用手动复制粘贴
- 文字处理工具:帮你合并文字、转换格式等
- 条件判断工具:可以根据不同情况做不同的处理
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 打开 ComfyUI,点击主菜单的"Manager"按钮
- 点击"Custom Nodes Manager"
- 搜索"MaraScott"
- 点击"install"按钮
- 重启 ComfyUI
方法二:手动下载安装
- 打开你的 ComfyUI 文件夹
- 找到
custom_nodes文件夹 - 在这个文件夹里新建一个叫
ComfyUI_MaraScott_Nodes的文件夹 - 去插件地址下载所有文件
- 把下载的文件都放到刚才新建的文件夹里
- 重启 ComfyUI
3. 节点详细解析
3.1 AnyBus_v2 节点(万能总线)
这个节点就像是一个"电线整理器",可以把很多乱七八糟的连线整理成一根整齐的"总线",让你的工作流程看起来更清爽。
3.2 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bus | bus | BUS连接 | 连接其他总线 | 把其他总线的内容传过来 | 输入总线数据用于合并或传递 | 连接另一个AnyBus节点的输出 |
| 各种输入槽位 | 动态生成 | 任意类型 | 根据需要连接 | 可以连接任何类型的数据 | 支持所有ComfyUI数据类型的通用接口 | 连接模型、图片、文字等任何数据 |
输出:
- bus:整理好的总线,可以连接到其他需要这些数据的节点
3.3 LoadImage_v1 节点(加载图片增强版)
这个节点就像是一个"智能相册管理器",不仅能加载图片,还能告诉你图片的文件名。
3.4 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 下拉选择框 | 选择你要的图片 | 从文件夹里选择要处理的图片 | 从输入目录选择图像文件 | 点击下拉菜单选择图片文件 |
| filename_with_ext | filename_with_ext | 布尔值 | False | 是否在文件名里包含扩展名(如.jpg) | 控制输出文件名是否包含文件扩展名 | 勾选后输出"图片.jpg",不勾选输出"图片" |
输出:
- IMAGE:加载的图片
- MASK:图片的遮罩(如果有的话)
- File Name:图片的文件名
3.5 DisplayInfo_v2 节点(信息显示器)
这个节点就像是一个"万能显示屏",可以显示任何类型的信息,帮你调试和查看数据。
3.6 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| any | any | 任意类型 | 连接你想查看的数据 | 可以显示任何类型的数据内容 | 通用数据显示接口,支持所有数据类型 | 连接模型、文字、数字等任何数据来查看内容 |
输出:
- any:原样输出输入的数据,方便继续使用
3.7 McBoaty_Upscaler_v5 节点(图片放大器)
这个节点就像是一个"照片放大镜",可以把小图片放大成大图片,并且保持清晰度。
3.8 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE连接 | 连接要放大的图片 | 输入需要放大的图片 | 输入图像数据用于放大处理 | 连接LoadImage节点的图片输出 |
| model | model | MODEL连接 | 连接AI模型 | 用来生成图片的AI大脑 | Stable Diffusion模型用于图像生成 | 连接CheckpointLoader的模型输出 |
| clip | clip | CLIP连接 | 连接文字理解器 | 用来理解文字描述的工具 | CLIP模型用于文本编码 | 连接CheckpointLoader的CLIP输出 |
| vae | vae | VAE连接 | 连接图片编解码器 | 用来处理图片格式转换的工具 | VAE模型用于图像编解码 | 连接CheckpointLoader的VAE输出 |
| positive | positive | CONDITIONING连接 | 连接正面提示词 | 告诉AI你想要什么效果 | 正向条件编码用于指导生成 | 连接CLIPTextEncode的正面提示词 |
| negative | negative | CONDITIONING连接 | 连接负面提示词 | 告诉AI你不想要什么效果 | 负向条件编码用于避免不良生成 | 连接CLIPTextEncode的负面提示词 |
| seed | seed | 整数 | 42 | 随机数种子,控制生成的随机性 | 控制随机数生成器的种子值 | 设置固定数字可以重复生成相同结果 |
| upscale_model | upscale_model | 下拉选择 | 选择放大模型 | 选择用什么方法来放大图片 | 选择图像超分辨率模型 | 选择"4x-UltraSharp.pth"等放大模型 |
| output_upscale_method | output_upscale_method | 下拉选择 | bicubic | 最终输出时的缩放方法 | 图像缩放算法选择 | 选择"bicubic"获得较好的缩放质量 |
| tile_size | tile_size | 整数 | 512 | 切片大小,把大图切成小块处理 | 图像分块处理的块大小 | 512适合大多数情况,显存不够可以调小 |
| feather_mask | feather_mask | 整数 | 64 | 切片边缘羽化大小,让拼接更自然 | 图像块边缘羽化处理的像素数 | 64可以让拼接痕迹不明显 |
| vae_encode | vae_encode | 布尔值 | True | 是否使用分块编码方式 | 选择VAE编码方式 | 勾选可以节省显存,不勾选速度更快 |
| tile_size_vae | tile_size_vae | 整数 | 512 | VAE处理时的分块大小 | VAE分块处理的块大小 | 512适合大多数情况 |
| color_match_method | color_match_method | 下拉选择 | none | 颜色匹配方法,让输出颜色更接近原图 | 颜色匹配算法选择 | 选择"mkl"可以保持原图色调 |
| tile_prompting_active | tile_prompting_active | 布尔值 | False | 是否为每个切片生成专门的提示词 | 启用基于图像内容的动态提示词生成 | 勾选可以让每个区域的描述更准确 |
| vision_llm_model | vision_llm_model | 下拉选择 | microsoft/Florence-2-large | 用来分析图片内容的AI模型 | 视觉语言模型用于图像理解 | 选择Florence-2模型分析图片内容 |
| llm_model | llm_model | 下拉选择 | llama3-70b-8192 | 用来生成文字描述的AI模型 | 大语言模型用于文本生成 | 选择llama3模型生成描述文字 |
输出:
- McBoaty Pipe:传递给精修器的数据包
- McPrompty Pipe:传递给提示词编辑器的数据包
- info:处理信息和统计数据
3.9 McBoaty_Refiner_v5 节点(图片精修器)
这个节点就像是一个"照片修图师",可以对放大后的图片进行精细修饰,让细节更完美。
3.10 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| pipe | pipe | MC_BOATY_PIPE连接 | 连接放大器输出 | 接收放大器传来的数据包 | McBoaty管道数据用于精修处理 | 连接McBoaty_Upscaler的管道输出 |
| tiles_to_process | tiles_to_process | 字符串 | 空字符串 | 指定要处理的切片编号 | 指定需要精修的图像块索引 | 输入"1,3,5"只处理第1、3、5块 |
| output_size_type | output_size_type | 布尔值 | True | 输出尺寸类型选择 | 选择输出图像尺寸计算方式 | 勾选使用放大模型尺寸,不勾选使用自定义 |
| output_size | output_size | 浮点数 | 1.00 | 自定义输出尺寸倍数 | 相对于输入图像的缩放倍数 | 2.0表示输出图像是输入的2倍大 |
| sigmas_type | sigmas_type | 下拉选择 | BasicScheduler | 噪声调度器类型 | 扩散模型的噪声调度算法 | BasicScheduler适合大多数情况 |
| model_type | model_type | 下拉选择 | SDXL | 模型类型,影响处理参数 | 指定使用的模型架构类型 | 根据你的模型选择SD1、SDXL或SD3 |
| sampler_name | sampler_name | 下拉选择 | euler | 采样器名称 | 扩散模型采样算法 | euler采样器速度快质量好 |
| basic_scheduler | basic_scheduler | 下拉选择 | normal | 基础调度器 | 噪声调度的具体实现 | normal适合大多数情况 |
| steps | steps | 整数 | 10 | 采样步数,影响质量和速度 | 扩散模型的迭代步数 | 10步速度快,20步质量更好 |
| cfg | cfg | 浮点数 | 2.5 | 提示词引导强度 | 分类器自由引导强度 | 2.5-7.5之间,越高越严格按提示词生成 |
| denoise | denoise | 浮点数 | 0.27 | 去噪强度,控制修改程度 | 扩散过程的去噪强度 | 0.27保持原图,0.8大幅修改 |
| control_net_name | control_net_name | 下拉选择 | None | 控制网络模型选择 | ControlNet模型用于结构控制 | 选择canny模型保持边缘结构 |
| low_threshold | low_threshold | 浮点数 | 0.6 | Canny边缘检测低阈值 | Canny算法的低阈值参数 | 0.6可以检测到较多边缘 |
| high_threshold | high_threshold | 浮点数 | 0.6 | Canny边缘检测高阈值 | Canny算法的高阈值参数 | 0.6与低阈值配合使用 |
| strength | strength | 浮点数 | 0.4 | 控制网络影响强度 | ControlNet的控制强度 | 0.4有一定控制但不过强 |
| start_percent | start_percent | 浮点数 | 0.0 | 控制网络开始生效的时机 | ControlNet开始作用的步数百分比 | 0.0从一开始就生效 |
| end_percent | end_percent | 浮点数 | 1.0 | 控制网络结束生效的时机 | ControlNet结束作用的步数百分比 | 1.0一直生效到最后 |
输出:
- McBoaty Pipe:可以继续传递的数据包
- McPrompty Pipe:可以传递给提示词编辑器的数据包
- image:精修后的最终图片
- image (original):原始输入图片
- tiles:所有切片的合集
- prompts:所有使用的提示词
- info:处理信息和统计数据
3.11 McBoaty_TilePrompter_v5 节点(切片提示词编辑器)
这个节点就像是一个"区域化描述编辑器",可以为图片的不同区域设置不同的描述词。
3.12 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| pipe | pipe | MC_PROMPTY_PIPE_IN连接 | 连接数据管道 | 接收需要编辑提示词的数据 | McPrompty管道数据输入 | 连接放大器或精修器的提示词管道 |
| requeue | requeue | 整数 | 0 | 重新排队次数,用于刷新 | 触发节点重新执行的计数器 | 改变数字可以刷新提示词编辑界面 |
输出:
- McPrompty Pipe:编辑后的提示词数据包
3.13 TextConcatenate_v1 节点(文字合并器)
这个节点就像是一个"文字拼接器",可以把多个文字片段合并成一个完整的句子。
3.14 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| delimiter | delimiter | 字符串 | ", " | 分隔符,用来分开不同的文字片段 | 字符串连接时使用的分隔符 | 用", "可以用逗号分开,用" "用空格分开 |
| string1-24 | 动态生成 | 字符串 | 输入要合并的文字 | 最多24个文字输入框 | 支持最多24个字符串输入 | 在不同框里输入"美丽的"、"风景"、"照片" |
输出:
- text:合并后的完整文字
3.15 ForLoopOpen_v1 节点(循环开始)
这个节点就像是一个"重复任务开关",可以让后面的操作重复执行指定次数。
3.16 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| remaining | remaining | 整数 | 1 | 剩余循环次数 | 循环执行的剩余次数 | 设置5表示要重复5次 |
| initial_value1-4 | initial_value1-4 | 任意类型 | 根据需要连接 | 循环中要传递的初始值 | 循环过程中传递的数据 | 连接要在循环中处理的数据 |
输出:
- flow_control:流程控制信号
- remaining:剩余次数
- value1-4:传递的数据值
3.17 ForLoopClose_v1 节点(循环结束)
这个节点就像是一个"重复任务结束器",标记循环的结束并输出最终结果。
3.18 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| flow_control | flow_control | FLOW_CONTROL连接 | 连接循环开始节点 | 接收循环控制信号 | 流程控制数据连接 | 连接ForLoopOpen的flow_control输出 |
| initial_value1-4 | initial_value1-4 | 任意类型 | 连接循环中的数据 | 循环中处理的数据 | 循环过程中的数据流 | 连接循环中最后处理的数据 |
输出:
- value1-4:循环完成后的最终数据
3.19 IsEqual_v1 节点(相等判断)
这个节点就像是一个"比较器",可以判断两个东西是否相同。
3.20 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| any_1 | any_1 | 任意类型 | 连接要比较的第一个数据 | 第一个比较对象 | 第一个比较数据输入 | 连接一个数字或文字 |
| any_2 | any_2 | 任意类型 | 连接要比较的第二个数据 | 第二个比较对象 | 第二个比较数据输入 | 连接另一个数字或文字 |
输出:
- boolean:比较结果,相同为True,不同为False
3.21 IsNone_v1 节点(空值判断)
这个节点就像是一个"空值检测器",可以判断某个数据是否为空。
3.22 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| any | any | 任意类型 | 连接要检查的数据 | 要检查是否为空的数据 | 输入数据用于空值检测 | 连接任何可能为空的数据 |
输出:
- boolean:检查结果,为空时True,有内容时False
3.23 IsEmpty_v1 节点(空字符串判断)
这个节点就像是一个"空白检测器",可以判断文字是否为空白。
3.24 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| any | any | 任意类型 | 连接要检查的数据 | 要检查是否为空字符串的数据 | 输入数据用于空字符串检测 | 连接文字数据检查是否为空 |
输出:
- boolean:检查结果,为空字符串时True,有内容时False
3.25 IsEmptyOrNone_v1 节点(空值或空字符串判断)
这个节点就像是一个"全面空值检测器",可以同时判断数据是否为空或空白。
3.26 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| any | any | 任意类型 | 连接要检查的数据 | 要检查是否为空或空白的数据 | 输入数据用于综合空值检测 | 连接任何数据检查是否为空或空白 |
输出:
- boolean:检查结果,为空或空白时True,有内容时False
3.27 Mara_Tiler_v1 节点(图片切片器)
这个节点就像是一个"图片切割器",可以把大图片切成小块,方便分别处理。
3.28 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE连接 | 连接要切片的图片 | 输入需要切割的图片 | 输入图像数据用于分块处理 | 连接LoadImage节点的图片输出 |
| upscale_model | upscale_model | 下拉选择 | None | 是否先放大再切片 | 可选的图像放大模型 | 选择放大模型可以先放大再切片 |
| tile_size | tile_size | 整数 | 512 | 每个切片的大小 | 图像分块的尺寸大小 | 512适合大多数情况 |
| control_net_name | control_net_name | 下拉选择 | None | 控制网络模型,用于边缘检测 | ControlNet模型选择 | 选择canny模型可以检测边缘 |
| low_threshold | low_threshold | 浮点数 | 0.6 | 边缘检测低阈值 | Canny边缘检测的低阈值 | 0.6可以检测较多边缘 |
| high_threshold | high_threshold | 浮点数 | 0.6 | 边缘检测高阈值 | Canny边缘检测的高阈值 | 0.6与低阈值配合使用 |
输出:
- McBoayty Pipe:传递给其他节点的数据包
- image:处理后的图片
- tiles:所有切片的合集
- tiles - canny:所有切片的边缘检测结果
3.29 Mara_Untiler_v1 节点(图片拼接器)
这个节点就像是一个"拼图器",可以把处理好的小块图片重新拼接成完整的大图。
3.30 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| pipe | pipe | MC_BOATY_PIPE连接 | 连接切片器的输出 | 接收切片数据包 | McBoaty管道数据输入 | 连接Tiler节点的管道输出 |
| output_upscale_method | output_upscale_method | 下拉选择 | bicubic | 最终缩放方法 | 图像缩放算法选择 | bicubic质量较好 |
| output_size_ref | output_size_ref | 下拉选择 | Output Image | 输出尺寸参考 | 输出尺寸计算的参考基准 | 选择以输出图像还是输入图像为基准 |
| output_size | output_size | 浮点数 | 1.00 | 输出尺寸倍数 | 相对于参考图像的缩放倍数 | 2.0表示输出是参考的2倍大 |
| denoise | denoise | 浮点数 | 0.10 | 最终去噪强度 | 最终处理的去噪强度 | 0.1轻微处理,0.5中等处理 |
| positive | positive | 字符串 | 空字符串 | 正面提示词 | 最终处理使用的正向提示 | 输入想要的效果描述 |
| negative | negative | 字符串 | 空字符串 | 负面提示词 | 最终处理使用的负向提示 | 输入不想要的效果描述 |
| refresh_prompts | refresh_prompts | 布尔值 | False | 刷新提示词 | 是否刷新提示词设置 | 勾选可以重新应用提示词 |
| tiles | tiles | IMAGE连接 | 可选的切片输入 | 可以直接输入处理好的切片 | 可选的图像块输入 | 连接处理好的切片图像 |
输出:
- image:拼接完成的最终图片
4. 使用技巧和建议
4.1 AnyBus 使用技巧
- 给不同的总线设置不同的名称,避免混乱
- 一个总线最多支持25个输入输出
- 可以连接多个总线形成更复杂的数据流
4.2 McBoaty 系列使用技巧
- 放大倍数选择:2倍放大通常比4倍放大效果更好
- 去噪强度:0.27是保持原图的甜蜜点,0.35可以稍微改善细节
- 切片大小:显存不够时可以调小tile_size
- 颜色匹配:使用mkl方法可以保持原图色调
4.3 循环节点使用技巧
- 循环次数不要设置太大,避免卡死
- 在循环中使用DisplayInfo节点可以监控进度
- 循环结束后记得检查输出结果
4.4 性能优化建议
- 大图片处理时适当调小切片大小
- 使用VAE分块编码可以节省显存
- 合理设置采样步数,平衡质量和速度
5. 常见问题解答
Q1:安装后找不到节点怎么办?
A: 重启ComfyUI,如果还是找不到,检查是否正确安装在custom_nodes文件夹中。
Q2:McBoaty处理大图片时显存不够怎么办?
A:
- 调小tile_size参数(比如从512调到320)
- 开启VAE分块编码
- 调小tile_size_vae参数
Q3:AnyBus连接时出现错误怎么办?
A:
- 检查profile名称是否一致
- 确保连接的数据类型匹配
- 尝试重新连接节点
Q4:循环节点执行很慢怎么办?
A:
- 减少循环次数
- 检查循环内部是否有耗时操作
- 使用DisplayInfo监控每次循环的结果
Q5:图片放大后质量不好怎么办?
A:
- 尝试不同的放大模型
- 调整去噪强度(通常0.27-0.35之间)
- 使用颜色匹配功能
- 考虑使用多次2倍放大而不是一次4倍放大
Q6:提示词编辑器不显示图片怎么办?
A:
- 检查网络连接
- 确保temp文件夹有写入权限
- 尝试刷新浏览器页面
6. 工作流程示例
基础图片放大流程:
- LoadImage_v1 → 加载图片
- CheckpointLoader → 加载模型
- CLIPTextEncode → 编码提示词
- McBoaty_UpscalerRefiner_v5 → 一键放大精修
- SaveImage → 保存结果
高级分步处理流程:
- LoadImage_v1 → 加载图片
- Mara_Tiler_v1 → 切片处理
- Mara_McBoaty_Configurator_v6 → 配置参数
- Mara_McBoaty_TilePrompter_v6 → 编辑每个切片的提示词
- Mara_McBoaty_Refiner_v6 → 精修处理
- Mara_Untiler_v1 → 拼接输出
循环批处理流程:
- ForLoopOpen_v1 → 开始循环
- LoadImage_v1 → 加载图片(循环中)
- 处理节点 → 各种处理(循环中)
- SaveImage → 保存结果(循环中)
- ForLoopClose_v1 → 结束循环
7. 总结
MaraScott Nodes 插件就像给 ComfyUI 装了一个"超级工具箱",包含了从基础的数据管理到高级的图片处理等各种实用工具。特别是 McBoaty 系列节点,为图片放大和精修提供了专业级的解决方案。
主要优势:
- AnyBus系列:让复杂的工作流程变得整洁有序
- McBoaty系列:专业的图片放大和精修工具
- 循环工具:自动化重复任务,提高效率
- 实用工具:各种小工具让工作更便捷
记住:好的工具需要配合正确的使用方法才能发挥最大效果。多尝试不同的参数组合,你会发现这个插件的强大之处!
特别提醒: 这个插件的作者提到项目不再维护,部分功能可能存在问题。建议在使用前先测试基本功能是否正常。