ComfyUI-Dart插件完全入门指南 - 让AI帮你生成精准的画画描述词
1. 插件简介
ComfyUI-Dart插件的GitHub原地址:https://github.com/nkchocoai/ComfyUI-Dart
这个插件就像是一个专门帮你写画画描述词的小助手。你知道那些在动漫网站上看到的图片标签吗?比如"蓝色头发"、"校服"、"微笑"这些标签?这个插件就是专门生成这种标签的。
它的作用就像是:
- 你给它一个简单的想法,比如"画一个女孩"
- 它就会自动帮你扩展成很多详细的描述词,比如"1girl, blue hair, school uniform, smile, standing"
- 这些描述词可以让AI画出更精准、更漂亮的图片
简单来说,这个插件是通过Dart(Danbooru Tags Transformer)模型来生成二次元风格的图片标签,让你的AI绘画效果更好。
2. 如何安装
安装方法很简单,就像下载软件一样:
- 打开你的ComfyUI文件夹
- 找到里面的
custom_nodes文件夹 - 在这个文件夹里右键打开命令行窗口
- 复制粘贴这行命令:
git clone https://github.com/nkchocoai/ComfyUI-Dart.git - 等待下载完成
- 重启ComfyUI就可以使用了
3. 节点详细解析
3.1 Dart Load节点 - 就像启动一个翻译助手
这个节点就像是启动一个专门的翻译助手,它负责把翻译工具准备好,让后面的节点能够正常工作。
3.1.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型名称 | model_name | dart-v1-sft / dart-v2-moe-sft / dart-v2-sft | dart-v2-sft | 就像选择不同版本的翻译软件,版本越新功能越强 | 选择要加载的Dart模型版本 | 新手推荐选dart-v2-sft,这是最新最好用的版本 |
3.2 Dart Generate节点 - 标签生成器
这个节点就像是一个专门写标签的机器人,你给它一个想法,它就会生成一堆详细的描述词。
3.2.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 提示词 | prompt | 文本输入 | 简单描述 | 你想要什么样的图片,用简单的话描述 | 输入用于生成标签的初始提示词 | 输入"girl"会生成关于女孩的各种标签 |
| 模型 | model | 从Dart Load传来 | - | 就像插电源,必须连接前面的Dart Load节点 | 接收从Dart Load节点传来的模型数据 | 用线连接Dart Load的输出到这里 |
| 分词器 | tokenizer | 从Dart Load传来 | - | 就像翻译工具,把文字转换成机器能理解的格式 | 接收从Dart Load节点传来的分词器 | 用线连接Dart Load的输出到这里 |
| 最大长度 | max_length | 数字 | 100-300 | 生成标签的最大数量,数字越大标签越多 | 控制生成文本的最大长度 | 设置200通常就够用了 |
| 温度 | temperature | 0.1-2.0 | 0.7-1.0 | 控制生成结果的随机性,像调节创意程度 | 控制生成文本的随机性和创造性 | 0.7比较稳定,1.0更有创意 |
| 重复惩罚 | repetition_penalty | 1.0-1.5 | 1.1 | 防止生成重复的标签,数字越大越不重复 | 避免生成重复的内容 | 1.1是比较好的平衡点 |
3.3 Dart V1 Prompt节点 - 老版本提示词格式化器
这个节点就像是一个格式转换器,专门处理老版本的提示词格式。
3.3.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 提示词 | prompt | 文本输入 | 简单描述 | 输入你想要的图片描述 | 输入用于dart-v1模型的提示词 | 输入"anime girl"会按v1格式处理 |
3.4 Dart V2 Prompt节点 - 新版本提示词格式化器
这个节点是新版本的格式转换器,比老版本更智能。
3.4.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 提示词 | prompt | 文本输入 | 简单描述 | 输入你想要的图片描述 | 输入用于dart-v2模型的提示词 | 输入"cute girl"会按v2格式处理 |
3.5 Dart Aspect Ratio节点 - 画面比例标签生成器
这个节点就像是一个画面比例计算器,会根据你设定的图片尺寸自动添加对应的比例标签。
3.5.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 宽度 | width | 数字 | 512-1024 | 图片的宽度,像设置画布大小 | 输入图片的宽度像素值 | 设置512表示宽度512像素 |
| 高度 | height | 数字 | 512-1024 | 图片的高度,像设置画布大小 | 输入图片的高度像素值 | 设置768表示高度768像素 |
3.6 Dart Config节点 - 配置参数输出器
这个节点就像是一个设置面板,把各种参数打包输出给生成节点使用。
3.6.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 配置内容 | config | 配置文本 | 默认配置 | 各种生成参数的设置,像游戏设置菜单 | 包含生成参数的配置字符串 | 通常使用默认值就行 |
3.7 Dart Ban Tags节点 - 标签过滤器
这个节点就像是一个过滤器,可以把你不想要的标签删掉。
3.7.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 正则表达式 | regex_pattern | 正则表达式 | 简单词汇 | 用来匹配要删除的标签,每行一个 | 用正则表达式匹配要屏蔽的标签 | 写上"nsfw"就会删除所有包含nsfw的标签 |
| 移除标签 | remove_tags | 标签列表 | 不需要的标签 | 直接写要删除的标签名,用逗号分隔 | 指定要从结果中移除的标签 | 写"blood, violence"会删除这两个标签 |
3.8 Dart Generate IDs节点 - 标签ID生成器
这个节点就像是一个编号机器,把标签转换成编号形式。
3.8.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 提示词 | prompt | 文本输入 | 简单描述 | 输入想要转换的文字 | 输入要转换为ID序列的提示词 | 输入"girl"会生成对应的数字编号 |
| 模型 | model | 从Dart Load传来 | - | 连接前面的模型节点 | 接收模型数据 | 用线连接Dart Load的输出 |
| 分词器 | tokenizer | 从Dart Load传来 | - | 连接前面的分词器节点 | 接收分词器数据 | 用线连接Dart Load的输出 |
3.9 Dart Decode IDs节点 - 编号解码器
这个节点就像是一个编号翻译机,把编号重新转换成文字。
3.9.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 标签ID | token_ids | 数字序列 | 从上级节点传来 | 接收编号序列并转换成文字 | 将token ID序列解码为文本 | 接收[123,456,789]这样的编号序列 |
| 分词器 | tokenizer | 从Dart Load传来 | - | 连接分词器进行解码 | 接收分词器数据 | 用线连接Dart Load的输出 |
3.10 Dart Rearrange IDs节点 - 标签重排序器
这个节点就像是一个标签整理员,把生成的标签按照特定顺序重新排列。
3.10.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 标签ID | token_ids | 数字序列 | 从上级节点传来 | 接收要重新排列的编号序列 | 接收需要重排序的token ID | 接收打乱的标签编号 |
| 排序方式 | order_type | 预设选项 | animagine | 选择按什么规则排序,像整理书架 | 选择重排序的规则 | animagine是最常用的排序方式 |
3.11 Dart Decode IDs By Parts节点 - 分段解码器
这个节点就像是一个分类整理器,把标签按照不同类别分开显示。
3.11.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 标签ID | token_ids | 数字序列 | 从上级节点传来 | 接收编号序列 | 接收token ID序列 | 接收要分类的标签编号 |
| 分词器 | tokenizer | 从Dart Load传来 | - | 连接分词器进行解码 | 接收分词器数据 | 用线连接Dart Load的输出 |
| 分段类型 | part_types | 预设选项 | 全部类型 | 选择要分成哪几类,像把衣服分成上衣下衣 | 选择输出的标签类别 | 可以只输出人物相关的标签 |
3.12 Dart Remove IDs节点 - 标签删除器
这个节点就像是一个橡皮擦,可以从编号序列中擦掉不想要的部分。
3.12.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 标签ID | token_ids | 数字序列 | 从上级节点传来 | 接收要处理的编号序列 | 接收token ID序列 | 接收包含不想要标签的编号序列 |
| 要删除的标签 | remove_tags | 标签列表 | 不需要的标签 | 写上要删除的标签名称 | 指定要移除的标签 | 写"blood, violence"会删除这些标签 |
| 分词器 | tokenizer | 从Dart Load传来 | - | 连接分词器进行处理 | 接收分词器数据 | 用线连接Dart Load的输出 |
4. 使用技巧和建议
4.1 基础使用流程
- 先放置一个Dart Load节点,选择合适的模型(推荐dart-v2-sft)
- 再放置Dart Generate节点,连接到Load节点
- 在prompt里输入简单的描述,比如"girl"或"landscape"
- 设置合适的参数(温度0.7-1.0,最大长度200左右)
- 运行就能得到丰富的标签了
4.2 参数调优建议
- 温度参数:0.7比较稳定,1.0更有创意,超过1.2可能会很奇怪
- 最大长度:200-300通常够用,太长会有很多重复
- 重复惩罚:1.1是好的平衡点,太高会让结果不自然
4.3 高级技巧
- 使用Ban Tags节点过滤不想要的内容
- 用Aspect Ratio节点自动添加比例标签
- 尝试不同的模型版本找到最适合的
5. 常见问题解答
Q1: 为什么我的节点连接不上?
A: 检查是否先放置了Dart Load节点,其他节点都需要连接到它。
Q2: 生成的标签为什么都是英文?
A: 因为这个插件是基于Danbooru数据训练的,Danbooru是英文标签系统。
Q3: 怎么让生成的标签更准确?
A: 尝试调整温度参数,降低温度会让结果更保守准确。
Q4: 模型加载很慢怎么办?
A: 第一次使用会下载模型文件,比较大,请耐心等待。
Q5: 生成的标签太多了怎么办?
A: 降低max_length参数,或者使用Ban Tags节点过滤不需要的标签。
6. 总结
ComfyUI-Dart插件就像是一个专业的标签生成助手,它可以帮你把简单的想法扩展成丰富的描述词,让AI绘画效果更好。虽然节点很多,但基本的使用流程很简单:加载模型→生成标签→优化结果。
记住几个关键点:
- 先加载模型,再生成标签
- 适当调节参数,不要设置得太极端
- 善用过滤功能,删除不需要的标签
- 多试试不同的输入,找到最适合的用法
希望这个教程能帮助你快速上手ComfyUI-Dart插件!