ComfyUI Tag Filter 插件完全新手教程
1. 插件简介
ComfyUI Tag Filter 是一个超级实用的标签管理插件,就像是一个智能的标签整理工具箱。你知道平时整理衣服要分类吧?这个插件就是专门用来整理 AI 绘画中的标签(tag)的。
GitHub 原地址: https://github.com/sugarkwork/comfyui_tag_filter
这个插件能干什么?
- 把一堆杂乱的标签按类别分类(比如把所有表情相关的标签放一起)
- 只保留你想要的标签类别,删掉不需要的
- 替换标签(比如把"长发"换成"双马尾")
- 根据标签内容自动选择不同的图片输出
想象一下,如果你有一堆标签像"微笑、红色、长发、站立、猫耳",这个插件就能帮你把它们分别归类到"表情、颜色、发型、姿势、动物特征"等不同的抽屉里。
2. 如何安装
有两种安装方法,都很简单:
方法一:通过 ComfyUI Manager 安装(推荐)
- 打开 ComfyUI,点击右下角的"Manager"按钮
- 在搜索框里输入"tag filter"
- 找到"comfyui_tag_filter",点击"Install"
- 重启 ComfyUI
方法二:手动安装
- 进入你的 ComfyUI 安装目录
- 找到
custom_nodes文件夹 - 在这个文件夹里打开命令行
- 输入命令:
git clone https://github.com/sugarkwork/comfyui_tag_filter.git - 重启 ComfyUI
3. 节点详细解析
3.1 TagFilter 节点 - 标签分类筛选器
这个节点就像一个智能的标签筛选器,能够从一大堆标签中挑出你想要的类别。比如你只想要表情相关的标签,它就能帮你把"微笑、皱眉、哭泣"这些挑出来,把"红色、蓝色"这些颜色标签过滤掉。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input_tags | input_tags | 字符串 | 无 | 要处理的标签文本,就像原料 | 输入的标签字符串 | 输入"smile, red dress, long hair" |
| include_categories | include_categories | 字符串 | expression | 你想要包含的标签类别,用逗号分开 | 包含的标签类别列表 | 输入"expression,hair"只保留表情和发型 |
| exclude_categories | exclude_categories | 字符串 | 空 | 你想要排除的标签类别,用逗号分开 | 排除的标签类别列表 | 输入"color"去掉所有颜色标签 |
| whitelist_only | whitelist_only | 布尔值 | False | 只允许已知的标签通过,像门卫一样 | 是否只允许白名单标签 | 勾选后只保留数据库中的标签 |
| flexible_filter | flexible_filter | 布尔值 | False | 智能匹配模式,能识别相似的标签 | 启用灵活匹配算法 | 勾选后"crazy long hair"会被识别为"long hair" |
3.2 TagRemover 节点 - 标签删除器
这个节点就像一个删除工具,能够从标签列表中删除你不想要的特定标签。比如你不想要"nsfw"标签,它就能帮你精确删除。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input_tags | input_tags | 字符串 | 无 | 要处理的标签文本 | 输入的标签字符串 | 输入完整的标签列表 |
| remove_tags | remove_tags | 字符串 | 无 | 要删除的标签,用逗号分开 | 需要移除的标签列表 | 输入"nsfw,nude"删除这两个标签 |
3.3 TagReplacer 节点 - 标签替换器
这个节点就像一个智能的查找替换功能,能够找到相似的标签并替换成你想要的标签。比如把所有发型标签都换成"短发"。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input_tags | input_tags | 字符串 | 无 | 要处理的标签文本 | 输入的标签字符串 | 输入原始标签列表 |
| replace_tag | replace_tag | 字符串 | 无 | 要替换成的新标签 | 替换目标标签 | 输入"short hair"作为新发型 |
| similarity_threshold | similarity_threshold | 浮点数 | 0.3 | 相似度门槛,像调节敏感度 | 相似度匹配阈值 | 0.3比较合适,太高不匹配,太低误匹配 |
3.4 TagSwitcher 节点 - 标签条件图片切换器
这个节点就像一个智能开关,根据标签内容来选择输出不同的图片。比如检测到"猫耳"标签就输出处理过的图片,没有就输出原图。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input_tags | input_tags | 字符串 | 无 | 要检查的标签文本 | 输入的标签字符串 | 输入从WD14Tagger得到的标签 |
| default_image | default_image | 图片 | 无 | 默认输出的图片,像备用方案 | 默认输出图像 | 连接原始图片 |
| image1 | image1 | 图片 | 无 | 条件1成立时输出的图片 | 条件1匹配时的输出图像 | 连接处理过的图片 |
| tag1 | tag1 | 字符串 | 无 | 触发条件1的标签 | 条件1的标签匹配字符串 | 输入"animal_ears,cat_ears" |
| any1 | any1 | 布尔值 | True | 标签匹配方式,True=任意一个,False=全部 | 是否任意标签匹配 | True表示有任意一个标签就触发 |
| image2 | image2 | 图片 | 无 | 条件2成立时输出的图片 | 条件2匹配时的输出图像 | 连接另一个处理过的图片 |
| tag2 | tag2 | 字符串 | 无 | 触发条件2的标签 | 条件2的标签匹配字符串 | 输入其他需要检测的标签 |
| any2 | any2 | 布尔值 | True | 标签匹配方式,True=任意一个,False=全部 | 是否任意标签匹配 | True表示有任意一个标签就触发 |
3.5 TagMerger 节点 - 标签合并器
这个节点就像一个标签组合器,能够把多个标签列表合并成一个,自动去除重复的标签。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| tags1 | tags1 | 字符串 | 无 | 第一组标签 | 第一个标签字符串 | 输入第一批标签 |
| tags2 | tags2 | 字符串 | 无 | 第二组标签 | 第二个标签字符串 | 输入第二批标签 |
| tags3 | tags3 | 字符串 | 无 | 第三组标签(可选) | 第三个标签字符串 | 输入第三批标签(可以不填) |
3.6 TagCategoryFilter 节点 - 高级标签类别筛选器
这个节点是TagFilter的升级版,功能更加强大,就像一个高级的标签分类管理器。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input_tags | input_tags | 字符串 | 无 | 要处理的标签文本 | 输入的标签字符串 | 输入完整的标签列表 |
| categories | categories | 字符串 | 无 | 要筛选的类别,用逗号分开 | 目标类别列表 | 输入"expression,pose,hair" |
| exclude | exclude | 布尔值 | False | 筛选模式,False=包含,True=排除 | 是否为排除模式 | False表示只保留指定类别 |
| whitelist_only | whitelist_only | 布尔值 | False | 只允许已知的标签通过 | 是否只允许白名单标签 | 勾选后只保留数据库中的标签 |
| flexible_filter | flexible_filter | 布尔值 | False | 智能匹配模式 | 启用灵活匹配算法 | 勾选后能识别相似标签 |
3.7 TagEnhance 节点 - 标签强度调节器
这个节点就像一个音量调节器,能够调节特定标签的强度。在AI绘画中,标签强度就像是这个元素在画面中的重要程度。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input_tags | input_tags | 字符串 | 无 | 要处理的标签文本 | 输入的标签字符串 | 输入原始标签列表 |
| target_tag | target_tag | 字符串 | 无 | 要调节强度的标签 | 目标标签名称 | 输入"smile"调节微笑强度 |
| strength | strength | 浮点数 | 1.0 | 强度值,1.0是正常,大于1.0是加强 | 标签权重强度 | 1.5表示加强50%,0.5表示减弱50% |
| replace_mode | replace_mode | 布尔值 | False | 替换模式,False=叠加,True=替换 | 是否替换原有权重 | False表示在原有基础上调节 |
3.8 TagCategoryEnhance 节点 - 标签类别强度调节器
这个节点就像TagEnhance的升级版,能够一次性调节整个类别的标签强度。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input_tags | input_tags | 字符串 | 无 | 要处理的标签文本 | 输入的标签字符串 | 输入原始标签列表 |
| category | category | 字符串 | 无 | 要调节的标签类别 | 目标类别名称 | 输入"expression"调节所有表情 |
| strength | strength | 浮点数 | 1.0 | 强度值,1.0是正常 | 标签权重强度 | 1.5表示加强整个类别 |
| replace_mode | replace_mode | 布尔值 | False | 替换模式,False=叠加,True=替换 | 是否替换原有权重 | False表示在原有基础上调节 |
3.9 TagConditionOutput 节点 - 标签条件输出器
这个节点就像一个智能的条件判断器,根据标签内容输出不同的文本。比如检测到某些标签就输出特定的正面提示词。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input_tags | input_tags | 字符串 | 无 | 要检查的标签文本 | 输入的标签字符串 | 输入需要检查的标签 |
| check_tags | check_tags | 字符串 | 无 | 要检查的条件标签 | 条件匹配标签 | 输入"nsfw,nude"作为检查条件 |
| anytag | anytag | 布尔值 | True | 匹配模式,True=任意一个,False=全部 | 是否任意标签匹配 | True表示有任意一个就触发 |
| output1 | output1 | 字符串 | 无 | 条件成立时输出的文本1 | 条件为真时的输出1 | 输入"masterpiece, best quality" |
| output2 | output2 | 字符串 | 无 | 条件成立时输出的文本2 | 条件为真时的输出2 | 输入负面提示词 |
| output3 | output3 | 字符串 | 无 | 条件成立时输出的文本3 | 条件为真时的输出3 | 输入其他相关提示词 |
| else_output1 | else_output1 | 字符串 | 无 | 条件不成立时输出的文本1 | 条件为假时的输出1 | 输入备用的正面提示词 |
| else_output2 | else_output2 | 字符串 | 无 | 条件不成立时输出的文本2 | 条件为假时的输出2 | 输入备用的负面提示词 |
| else_output3 | else_output3 | 字符串 | 无 | 条件不成立时输出的文本3 | 条件为假时的输出3 | 输入备用的其他提示词 |
3.10 TagComparator 节点 - 标签比较器
这个节点就像一个比较工具,能够比较两组标签的差异,找出只在第一组出现的、只在第二组出现的、以及共同出现的标签。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| tags1 | tags1 | 字符串 | 无 | 第一组标签 | 第一个标签集合 | 输入第一批标签 |
| tags2 | tags2 | 字符串 | 无 | 第二组标签 | 第二个标签集合 | 输入第二批标签 |
3.11 TagWildcardFilter 节点 - 通配符标签筛选器
这个节点就像一个模糊搜索工具,能够使用通配符(*)来筛选标签。比如搜索所有包含"hair"的标签。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input_tags | input_tags | 字符串 | 无 | 要处理的标签文本 | 输入的标签字符串 | 输入完整的标签列表 |
| wildcard | wildcard | 字符串 | 无 | 通配符搜索模式 | 通配符匹配模式 | 输入"*hair"匹配所有以hair结尾的标签 |
3.12 TagCategoryDetector 节点 - 标签类别检测器
这个节点就像一个标签分析器,能够告诉你输入的标签都属于哪些类别。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| input_tags | input_tags | 字符串 | 无 | 要分析的标签文本 | 输入的标签字符串 | 输入需要分析的标签 |
4. 使用技巧和建议
4.1 新手入门建议
- 从简单开始:先试试TagFilter节点,只用include_categories参数,体验一下标签分类的效果
- 逐步进阶:熟悉基本操作后,再尝试TagSwitcher这类复杂节点
- 多做实验:不同的相似度门槛值会有不同效果,多试试0.1到0.9之间的值
4.2 实用组合技巧
-
完美的标签清理流程:
- 先用TagFilter筛选出想要的类别
- 再用TagRemover删除不需要的特定标签
- 最后用TagEnhance调节重要标签的强度
-
智能图片处理:
- 用TagSwitcher检测敏感标签,自动切换到安全图片
- 用TagCategoryDetector分析标签类别,了解图片特征
-
标签强度优化:
- 用TagCategoryEnhance统一调节某类标签强度
- 用TagEnhance精细调节关键标签
4.3 参数调节建议
- 相似度门槛:0.3是比较保守的值,0.1会匹配更多相似标签,0.7会更严格
- 标签强度:1.0是正常,1.5是加强,0.5是减弱,通常在0.5-2.0之间调节
- 灵活过滤:建议开启,能识别更多变形的标签
5. 常见问题解答
5.1 安装问题
Q: 安装后找不到节点怎么办?
A: 重启ComfyUI,然后在添加节点时搜索"Tag"关键词
Q: 提示缺少依赖怎么办?
A: 在ComfyUI目录下运行:pip install -r requirements.txt
5.2 使用问题
Q: 标签替换不生效怎么办?
A: 检查相似度门槛值,尝试降低到0.1-0.3之间
Q: 为什么有些标签没有被分类?
A: 可能是标签不在数据库中,开启"灵活过滤"试试
Q: TagSwitcher没有切换图片怎么办?
A: 检查标签拼写是否正确,确保any参数设置合理
5.3 性能问题
Q: 节点运行很慢怎么办?
A: 减少输入标签数量,或者关闭"灵活过滤"功能
Q: 内存占用过高怎么办?
A: 避免同时处理过多标签,建议分批处理
6. 高级应用案例
6.1 自动化工作流
创建一个自动化的标签处理流水线:
- WD14Tagger识别图片标签
- TagFilter保留需要的类别
- TagRemover删除敏感标签
- TagEnhance加强关键标签
- 输出到文本生成节点
6.2 条件化处理
使用TagSwitcher实现智能图片处理:
- 检测到动物耳朵标签→输出去除耳朵的图片
- 检测到NSFW标签→输出安全版本图片
- 检测到特定风格标签→应用对应的后处理
6.3 标签分析系统
使用TagCategoryDetector和TagComparator构建标签分析系统:
- 分析图片的标签类别分布
- 比较不同图片的标签差异
- 生成标签统计报告
这个插件就像是给你的AI绘画工作流装了一个强大的标签管理助手,能够让你的创作过程更加精确和高效。记住,熟练掌握这些节点需要多多练习,不要害怕尝试不同的参数组合!