ComfyUI-DataSet 插件新手教程
1. 插件简介
ComfyUI-DataSet 是一个专门为AI绘画师和模型训练者设计的数据处理工具箱。插件地址:https://github.com/daxcay/ComfyUI-DataSet
这个插件就像一个专业的图片和文字管理小助手,它能帮你整理、分析和处理用于训练AI模型的数据。简单来说,它可以:
- 帮你批量处理图片的描述文字(就像给每张图片贴标签)
- 分析这些标签词的使用频率(哪些词用得最多)
- 自动生成各种统计图表(词云图、网络关系图等)
- 批量复制、移动、整理文件
- 利用AI聊天机器人生成图片描述
2. 如何安装
方法一:使用 Comfy Manager(推荐新手)
- 打开 ComfyUI,点击界面右侧的"Manager"按钮
- 点击"Custom Nodes Manager"
- 在搜索框里输入"DataSet"
- 找到这个插件并点击安装
- 重启 ComfyUI 就可以使用了
方法二:手动安装
- 找到你的 ComfyUI 安装目录下的 Custom Nodes 文件夹
- 在这个文件夹里打开命令行(按住Shift键右键点击空白处,选择"在此处打开命令行")
- 输入:
git clone https://github.com/daxcay/ComfyUI-DataSet.git - 等待下载完成后,进入 ComfyUI-DataSet 文件夹
- 输入:
pip install -r requirements.txt - 重启 ComfyUI
3. 节点详解
3.1 DataSet_Visualizer 节点 - 数据可视化小助手
这个节点就像一个图表制作工具,能把你的文字标签变成好看的图表。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 文本文件内容 | TextFileContents | STRING | 必填 | 要分析的文字内容,就像把一大堆标签倒进分析器里 | 待处理的文本文件内容 | 输入:girl, long hair, blue eyes, smile |
| 分隔符 | Seperator | LIST | comma | 用什么符号来分开每个标签,就像切蛋糕的刀 | 用于分隔文本中标记的分隔符 | 选择"comma"表示用逗号分隔 |
| 词云图显示数量 | WordCloudTop | INT | 100 | 词云图里最多显示多少个词,就像选择展示柜里最热门的商品 | 词云图中展示的高频词汇数量 | 设置100表示显示最常用的100个词 |
| 网络图显示数量 | NetworkGraphTop | INT | 50 | 网络关系图里最多显示多少个词的关系,就像社交网络里的好友关系 | 网络图中展示的高连接度词汇数量 | 设置50表示显示关系最密切的50个词 |
| 频率图显示数量 | FrequencyGraphTop | INT | 30 | 频率图里最多显示多少个词的使用次数,就像销售排行榜 | 频率图中展示的高频词汇数量 | 设置30表示显示使用最频繁的30个词 |
输出说明:
- 图表路径:生成的图片文件保存在哪里
- 图表图片:可以直接在ComfyUI里预览的图片
3.2 DataSet_CopyFiles 节点 - 文件复制小能手
这个节点就像一个智能文件管理员,能帮你批量复制文件。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 源文件夹 | source_folder | STRING | 必填 | 要复制文件的原始文件夹,就像仓库的货源地 | 源文件夹路径 | C:\images\source |
| 目标文件夹 | destination_folder | STRING | 必填 | 文件要复制到的目标文件夹,就像货物的目的地 | 目标文件夹路径 | C:\images\destination |
| 复制模式 | copy_mode | LIST | BlindCopy | 选择复制方式:全部复制还是按需复制,就像快递的不同配送方式 | 文件复制的操作模式 | BlindCopy=复制所有文件,CopyByDestinationFiles=只复制目标文件夹里已有同名文件的文件 |
3.3 DataSet_TriggerWords 节点 - 触发词提取器
这个节点就像一个聪明的筛子,专门找出包含字母和数字的特殊词汇。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 文本文件内容 | TextFileContents | STRING | 必填 | 要分析的文字内容,就像一堆待筛选的沙子 | 待处理的文本文件内容 | lora123, girl, model2024, cat |
| 搜索模式 | search | LIST | trigger_word_only | 选择要提取什么:只要触发词还是包含触发词的整句话 | 触发词提取的搜索模式 | trigger_word_only=只提取lora123这样的词,trigger_word_phrase=提取整个包含这种词的句子 |
输出说明:
- 提取的词汇:找到的所有触发词
3.4 DataSet_TextFilesLoad 节点 - 文本文件加载器
这个节点就像一个文件阅读器,能一次性读取多个文本文件的信息。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 文本文件路径列表 | TextFilePathsList | STRING | 必填 | 要读取的文本文件路径列表,就像一个购物清单 | 文本文件路径的列表 | ["C:\captions\1.txt", "C:\captions\2.txt"] |
输出说明:
- 文件名:所有文件的完整名称
- 文件名(无扩展名):不带.txt的文件名
- 文件路径:每个文件的完整路径
- 文件内容:每个文件里的文字内容
3.5 DataSet_TextFilesLoadByDirectory 节点 - 文件夹文本加载器
这个节点就像上面那个的升级版,直接指定文件夹就能读取里面所有的文本文件。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 文件夹路径 | directory | STRING | 必填 | 包含文本文件的文件夹路径,就像一个装满书的书架 | 文本文件所在的目录路径 | C:\captions\ |
输出说明:
- 文件名:文件夹里所有文本文件的名称
- 文件名(无扩展名):不带.txt的文件名
- 文件路径:每个文件的完整路径
- 文件内容:每个文件里的文字内容
3.6 DataSet_TextFilesSave 节点 - 文本文件保存器
这个节点就像一个文档管理员,能把文字内容保存成文件。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 文件名 | TextFileNames | STRING | 必填 | 要保存的文件名,就像给文档起名字 | 保存的文本文件名称 | ["caption1.txt", "caption2.txt"] |
| 文件内容 | TextFileContents | STRING | 必填 | 要保存的文字内容,就像信封里的信件 | 要保存的文本内容 | ["girl, long hair", "boy, short hair"] |
| 保存目录 | destination | STRING | 必填 | 文件保存的位置,就像文件柜的位置 | 文件保存的目录路径 | C:\output\ |
| 保存模式 | save_mode | LIST | Overwrite | 选择保存方式:覆盖、合并还是新建,就像文件的不同保存策略 | 文件保存的操作模式 | Overwrite=覆盖同名文件,Merge=合并到现有文件,SaveNew=创建新文件,MergeAndSaveNew=合并后另存为新文件 |
3.7 DataSet_FindAndReplace 节点 - 查找替换工具
这个节点就像Word里的查找替换功能,能批量修改文本内容。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 文本文件内容 | TextFileContents | STRING | 必填 | 要处理的文字内容,就像一篇需要修改的文章 | 待处理的文本内容 | girl, long hair, blue eyes |
| 查找内容 | SearchFor | STRING | 必填 | 要查找的文字,就像要替换的错别字 | 要搜索的文本模式 | long hair |
| 替换内容 | ReplaceWith | STRING | 必填 | 要替换成的文字,就像正确的词语 | 替换的目标文本 | short hair |
输出说明:
- 修改后的文本:完成查找替换后的文字内容
3.8 DataSet_PathSelector 节点 - 路径选择器
这个节点就像一个配对专家,能找出哪些图片缺少对应的文字描述文件。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 搜索目录 | search_in_directory | STRING | 必填 | 要检查的文件夹,就像一个待整理的杂物间 | 待检查配对的目录 | C:\images\incomplete\ |
| 搜索文件类型 | search_for_extensions | STRING | 必填 | 要查找的文件类型,就像指定要找的物品种类 | 要搜索的文件扩展名 | .jpg, .png |
| 选择来源目录 | select_from_directory | STRING | 必填 | 完整文件所在的文件夹,就像一个完整的仓库 | 完整文件对的来源目录 | C:\images\complete\ |
| 选择文件类型 | select_extensions | STRING | 必填 | 要选择的文件类型,就像要配对的物品种类 | 要选择的文件扩展名 | .txt |
输出说明:
- 选中的文件名(带扩展名):找到的配对文件完整名称
- 选中的文件名(无扩展名):找到的配对文件名称(不带后缀)
- 选中的文件路径:找到的配对文件完整路径
3.9 DataSet_ConceptManager 节点 - 概念管理器
这个节点就像一个标签编辑器,能在文字描述里添加或删除特定的词汇。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 文本文件内容 | TextFileContents | STRING | 必填 | 要处理的文字内容,就像一段需要编辑的句子 | 待处理的文本内容 | girl, long hair, blue eyes |
| 操作模式 | Mode | STRING | add | 选择是添加还是删除词汇,就像决定是贴标签还是撕标签 | 操作模式:添加或删除 | add=添加词汇,remove=删除词汇 |
| 概念词汇 | Concepts | STRING | 必填 | 要添加或删除的词汇,就像要操作的标签内容 | 要处理的概念词汇 | 添加时:smile 0(在第0个位置添加smile),删除时:long hair(删除long hair这个词) |
输出说明:
- 修改后的文本:完成添加或删除操作后的文字内容
3.10 DataSet_OpenAIChat 节点 - 文字AI聊天助手
这个节点就像一个AI写手,能帮你生成各种文字内容。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 模型选择 | model | STRING | gpt-4o | 选择AI模型,就像选择不同水平的助手 | OpenAI模型类型 | gpt-4o=最新最强的模型,gpt-3.5-turbo=较快较便宜的模型 |
| API地址 | api_url | STRING | https://api.openai.com/v1 | AI服务的网址,就像助手的办公地址 | API服务端点URL | 一般不需要修改 |
| API密钥 | api_key | STRING | 必填 | 使用AI服务的密码,就像会员卡号 | API访问密钥 | 需要从OpenAI网站获取 |
| 提示词 | prompt | STRING | 空 | 对AI说的话,就像给助手的任务指令 | 发送给AI的提示文本 | "请帮我写一个关于女孩的描述" |
| 文字长度 | token_length | INT | 1024 | 生成文字的最大长度,就像文章的字数限制 | 生成文本的最大标记数 | 1024=大约500-700个汉字 |
输出说明:
- 生成的文本:AI生成的文字内容
3.11 DataSet_LoadImage 节点 - 图片加载器
这个节点就像一个图片管理员,能加载图片并提供图片的各种信息。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 图片名称 | image | STRING | 必填 | 要加载的图片文件名,就像图片的身份证号 | 图片文件名称 | girl001.jpg |
输出说明:
- 图片:加载的图片数据
- 遮罩:图片的遮罩信息
- 文件名:图片的完整文件名
- 文件名(无扩展名):不带后缀的文件名
- 文件路径:图片的完整路径
- 目录路径:图片所在的文件夹路径
3.12 DataSet_SaveImage 节点 - 图片保存器
这个节点就像一个图片归档员,能批量保存图片。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 图片列表 | Images | IMAGE | 必填 | 要保存的图片,就像一摞待归档的照片 | 待保存的图片数据 | 从其他节点传入的图片 |
| 文件名前缀 | ImageFilePrefix | STRING | Image | 保存图片的文件名开头,就像给照片编号的前缀 | 图片文件名前缀 | 设置为"Girl"会生成Girl_001.png这样的文件名 |
| 保存目录 | destination | STRING | 必填 | 图片保存的位置,就像相册的存放位置 | 图片保存的目录路径 | C:\output\images\ |
3.13 DataSet_OpenAIChatImage 节点 - 图片AI描述生成器
这个节点就像一个AI图片解说员,能看图片并生成文字描述。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 图片 | image | IMAGE | 必填 | 要描述的图片,就像给AI看的照片 | 输入的图片数据 | 从其他节点传入的图片 |
| 图片细节 | image_detail | STRING | high | 选择AI看图的仔细程度,就像选择放大镜的倍数 | 图片分析的详细程度 | high=仔细看,low=粗略看 |
| 提示词 | prompt | STRING | 空 | 对AI说的话,就像给导游的指引 | 发送给AI的提示文本 | "请详细描述这张图片中的人物特征" |
| 模型选择 | model | STRING | gpt-4o | 选择AI模型,就像选择不同水平的解说员 | OpenAI模型类型 | gpt-4o=最新最强的视觉模型 |
| API地址 | api_url | STRING | https://api.openai.com/v1 | AI服务的网址,就像解说员的办公地址 | API服务端点URL | 一般不需要修改 |
| API密钥 | api_key | STRING | 必填 | 使用AI服务的密码,就像会员卡号 | API访问密钥 | 需要从OpenAI网站获取 |
| 文字长度 | token_length | INT | 1024 | 生成描述的最大长度,就像解说词的字数限制 | 生成文本的最大标记数 | 1024=大约500-700个汉字 |
输出说明:
- 图片描述:AI生成的图片描述文字
3.14 DataSet_OpenAIChatImageBatch 节点 - 批量图片AI描述生成器
这个节点就像上面那个的升级版,能一次性处理多张图片。
参数详解:
| 参数名 (界面显示) | 参数名 (代码) | 参数类型 | 建议值 | 通俗解释 | 专业解释 | 使用举例 |
|---|---|---|---|---|---|---|
| 图片列表 | images | IMAGE | 必填 | 要描述的多张图片,就像一本相册 | 输入的图片数据列表 | 从其他节点传入的多张图片 |
| 图片细节 | image_detail | STRING | high | 选择AI看图的仔细程度,就像选择放大镜的倍数 | 图片分析的详细程度 | high=仔细看,low=粗略看 |
| 提示词 | prompt | STRING | 空 | 对AI说的话,就像给导游的统一指引 | 发送给AI的提示文本 | "请为每张图片生成简洁的描述" |
| 模型选择 | model | STRING | gpt-4o | 选择AI模型,就像选择不同水平的解说员 | OpenAI模型类型 | gpt-4o=最新最强的视觉模型 |
| API地址 | api_url | STRING | https://api.openai.com/v1 | AI服务的网址,就像解说员的办公地址 | API服务端点URL | 一般不需要修改 |
| API密钥 | api_key | STRING | 必填 | 使用AI服务的密码,就像会员卡号 | API访问密钥 | 需要从OpenAI网站获取 |
| 文字长度 | token_length | INT | 1024 | 生成描述的最大长度,就像解说词的字数限制 | 生成文本的最大标记数 | 1024=大约500-700个汉字 |
输出说明:
- 图片描述列表:每张图片对应的AI生成描述
4. 使用技巧和建议
4.1 工作流程建议
- 数据准备阶段:使用 DataSet_TextFilesLoadByDirectory 批量加载文本文件
- 数据分析阶段:使用 DataSet_Visualizer 生成统计图表,了解数据分布
- 数据清理阶段:使用 DataSet_FindAndReplace 批量修正错误
- 数据增强阶段:使用 DataSet_ConceptManager 添加或删除标签
4.2 性能优化建议
- 处理大量文件时,建议分批处理,避免一次性加载过多数据
- 使用 AI 节点时,合理设置 token_length 参数,避免不必要的开销
- 定期清理生成的临时文件,保持文件夹整洁
4.3 API 使用建议
- 将 API 密钥设置为系统环境变量,提高安全性
- 环境变量名称:OPENAI_API_KEY, GROQ_API_KEY, ANTHROPIC_API_KEY
- 根据需要选择合适的 AI 模型,平衡效果和成本
5. 常见问题解答
Q1:为什么我的文件加载不成功?
A1: 检查文件路径是否正确,确保文件存在且格式正确。文本文件必须是 .txt 格式。
Q2:生成的图表在哪里?
A2: 图表会自动保存到 ComfyUI 的输出目录中,同时也会通过输出端口提供图片数据。
Q3:API 密钥应该怎么设置?
A3: 可以直接在节点中输入,也可以设置为系统环境变量。推荐使用环境变量方式,更安全。
Q4:为什么 AI 生成的描述不准确?
A4: 尝试调整提示词,提供更明确的指导。也可以选择更高级的模型,或者调整图片细节参数。
Q5:如何处理中文文本?
A5: 插件支持中文,但要确保文本文件使用 UTF-8 编码保存。
6. 进阶应用场景
6.1 模型训练数据准备
结合多个节点创建完整的数据预处理流程:
- 使用 DataSet_PathSelector 找出缺少标注的图片
- 使用 DataSet_OpenAIChatImageBatch 批量生成图片描述
- 使用 DataSet_ConceptManager 添加特定的训练标签
- 使用 DataSet_Visualizer 验证数据质量
6.2 数据集质量分析
通过可视化工具深入了解数据集特征:
- 生成词云图查看最常用的标签
- 分析网络关系图了解标签之间的关联
- 使用频率图找出可能的标签不平衡问题
6.3 批量数据处理
高效处理大量文件:
- 使用 DataSet_CopyFiles 整理文件结构
- 使用 DataSet_FindAndReplace 批量修正标注错误
- 使用 DataSet_TextFilesSave 保存处理结果
这个插件为ComfyUI用户提供了强大的数据处理能力,无论是新手还是专业用户,都能从中受益。通过合理组合这些节点,可以大大提高数据处理的效率和质量。