TagGUI
TagGUI是一款跨平台桌面应用程序,用于快速添加和编辑图像标签和说明文字,主要面向创建用于Stable Diffusion等生成式AI模型的图像数据集的创作者。
功能特点
- 键盘友好的界面,便于快速标记
- 基于您最常用标签的标签自动完成功能
- 集成Stable Diffusion令牌计数器
- 使用包括CogVLM、LLaVA、WD Tagger等多种模型自动生成说明文字和标签
- 批量标签操作,支持重命名、删除和排序标签
- 高级图像列表筛选功能
安装
使用本应用程序最简单的方法是从发布页面下载最新版本。选择适合您操作系统的文件,解压到任意位置,然后运行里面的可执行文件。如果您的系统中没有安装7-Zip,可能需要先安装它来解压文件。
- macOS用户:由于需要运行该操作系统的设备,而我没有,所以没有macOS版本。您仍可以手动安装和运行程序(见下文)。
- Linux用户:您可能需要安装
libxcb-cursor0
。(参见这个Stack Overflow回答)如果在尝试使用CogVLM2模型时出现错误,您可能还需要安装python3.11-dev
或python3.10-dev
(取决于您的Python版本)。(参见这个问题)
另外,您也可以通过克隆此仓库并安装requirements.txt
中的依赖项来手动安装。运行taggui/run_gui.py
启动程序。推荐使用Python 3.11,但Python 3.10也应该可以正常工作。
使用方法
点击窗口中央的"加载目录"按钮(或选择"文件"->"加载目录")来加载包含您图像的目录。标签从目录中与图像同名的.txt文件中加载。您对标签所做的任何更改也会自动保存到这些.txt文件中。
自动生成说明文字
除了手动标记外,您还可以在TagGUI中自动为图像生成说明文字或标签。GPU生成需要兼容的NVIDIA GPU,也支持CPU生成。
要使用此功能,请在图像列表中选择您想要生成说明文字的图像,然后在自动生成说明文字面板中选择您想使用的模型。如果您有包含之前下载模型的本地目录,可以在"文件"->"设置"中设置它,以将这些模型包含在模型列表中。点击"开始自动生成说明文字"按钮开始生成。您可以选择多张图像,为所有图像批量生成说明文字。首次使用时,下载和加载模型可能需要几分钟,但后续生成会快得多。
生成参数
"提示词":给予说明文字生成模型的指令。提示词格式会根据所选模型自动处理。您可以使用以下模板变量,将有关每张图像的信息动态插入提示词中:
{tags}
:图像的标签,用逗号分隔。{name}
:不带扩展名的图像文件名。{directory}
或{folder}
:包含图像的目录名称。
使用模板变量的示例提示词可以是"使用以下标签作为上下文描述图像:{tags}"。使用这个提示词时,在发送给模型之前,{tags}
会被替换为每张图像现有的标签。
"说明文字开头":生成的说明文字将以此文本开头。
"移除说明文字中的标签分隔符":如果选中,生成的说明文字中将移除标签分隔符(默认为逗号)。
"说明文字中不应出现":不应出现在生成的说明文字中的词语或短语。您可以用逗号(,
)分隔多个词语或短语。例如,您可以输入appears,seems,possibly
以防止模型在说明文字中使用不确定的语气。由于分词相关的限制,这些词语仍可能被生成。
"说明文字中应包含":应出现在生成的说明文字某处的词语或短语。您可以用逗号(,
)分隔多个词语或短语。您还可以让说明文字生成模型从一组词语或短语中选择,方法是用|
分隔它们。例如,如果您输入cat,orange|white|black
,模型将尝试生成包含cat
和orange
、white
或black
中任一词的说明文字。不能保证所有指定要求都会得到满足。
"排除标签"(WD Tagger模型):不应生成的标签,用逗号分隔。
其他许多生成参数在Hugging Face文档中有描述。
高级图像列表筛选
通过点击"所有标签"面板中的标签,可以实现筛选包含特定标签的图像的基本功能。除此之外,您还可以在"图像"面板顶部的"筛选图像"框中构建更复杂的筛选条件。
点击此处查看筛选语法的完整文档。
筛选条件
以下是您可以用来指定筛选条件的前缀:
tag:
:将筛选词作为标签的图像tag:cat
将匹配带有cat
标签的图像。
caption:
:说明文字中包含筛选词的图像- 说明文字是指.txt文件中出现的标签列表作为单个字符串。
caption:cat
将匹配说明文字中任何位置包含cat
的图像。例如,带有orange cat
标签或catastrophe
标签的图像。
name:
:文件名中包含筛选词的图像name:cat
将匹配如cat-1.jpg
或large_cat.png
等图像。
path:
:完整文件路径中包含筛选词的图像path:cat
将匹配如C:\Users\cats\dog.jpg
或/home/dogs/cat.jpg
等图像。
- 您也可以使用不带前缀的筛选词,以筛选说明文字或文件路径中包含该词的图像。
cat
将匹配说明文字或文件路径中包含cat
的图像。
以下是用于数值筛选的前缀。运算符=
(==
也可以)、!=
、<
、>
、<=
和>=
用于指定比较类型。
tags
:具有指定标签数量的图像tags:=13
将匹配恰好有13个标签的图像。tags:!=7
将匹配不恰好有7个标签的图像(少于7个或多于7个标签的图像)。
chars
:图像说明中具有指定字符数的图像chars:<100
将匹配说明中字符数少于100的图像。chars:>=30
将匹配说明中字符数大于或等于30的图像。
tokens
:图像说明中具有指定标记数的图像tokens:>75
将匹配说明中标记数超过75的图像。tokens:<=50
将匹配说明中标记数小于或等于50的图像。
空格和引号
如果过滤词包含空格,必须用引号(单引号或双引号)将其括起来。
例如,要查找带有"orange cat"标签的图像,必须使用 tag:"orange cat"
或 tag:'orange cat'
。
如果过滤词中同时包含空格和引号,可以用反斜杠转义引号。
例如,可以使用 tag:"orange \"cat\""
来匹配标签 orange "cat"
。
另一种方法是对外部和内部引号使用不同类型的引号,如:tag:'orange "cat"'
。
通配符
可以使用 *
字符作为通配符匹配任意数量的任意字符,使用 ?
字符匹配任意单个字符。
例如,tag:*cat
将匹配带有 orange cat
、large cat
和 cat
等标签的图像。
组合过滤器
可以使用逻辑运算符组合多个过滤器:
NOT
:不匹配该过滤器的图像NOT tag:cat
将匹配没有cat
标签的图像。
AND
:同时匹配运算符前后两个过滤器的图像tag:cat AND tag:orange
将匹配同时具有cat
和orange
标签的图像。
OR
:匹配运算符前后任一过滤器的图像tag:cat OR tag:dog
将匹配具有cat
或dog
标签,或同时具有两者的图像。
这些运算符的小写版本也可以使用:not
、and
和 or
。
运算符优先级为 NOT
> AND
> OR
,因此默认情况下,先计算 NOT
,然后是 AND
,最后是 OR
。
可以使用括号改变这个顺序。
例如,在 tag:cat AND (tag:orange OR tag:white)
中,先计算 OR
,匹配具有 cat
标签,且具有 orange
或 white
标签的图像。
可以嵌套括号和运算符来创建任意复杂的过滤器。
控制
- ⭐ 上一张/下一张图片:
Ctrl
+上箭头
/下箭头
(在某些情况下,单独使用上箭头
/下箭头
也可以) - 跳转到第一张未标记的图片:
Ctrl
+J
- 聚焦"过滤图像"框:
Alt
+F
- 聚焦"添加标签"框:
Alt
+A
- 聚焦"图像标签"列表:
Alt
+I
- 聚焦"搜索标签"框:
Alt
+S
- 聚焦"开始自动生成说明"按钮:
Alt
+C
图像面板
- 第一张/最后一张图片:
Home
/End
- 选择多张图片:按住
Ctrl
或Shift
并点击图片 - 选择所有图片:
Ctrl
+A
- 反转选择:
Ctrl
+I
- 右键点击图片将弹出上下文菜单,包括复制和粘贴标签、将选定图片移动或复制到其他目录等操作。
图像标签面板
- 添加标签:在"添加标签"框中输入标签并按
Enter
- ⭐ 添加自动完成建议的第一个标签:
Ctrl
+Enter
- 为多张图片添加标签:在图片列表中选择图片并添加标签
- 删除标签:选择标签并按
Delete
- 重命名标签:双击标签,或选择标签并按
F2
- 重新排序标签:拖放标签
- 选择多个标签:按住
Ctrl
或Shift
并点击标签
所有标签面板
- 显示包含某个标签的所有图片:选择该标签(当"标签点击操作"设置为"为标签过滤图片"时)
- 为选定图片添加标签:点击标签(当"标签点击操作"设置为"为选定图片添加标签"时)
- 删除某个标签的所有实例:选择标签并按
Delete
- 重命名某个标签的所有实例:双击标签,或选择标签并按
F2
"编辑"菜单包含批量标签操作的其他功能,如"查找和替换"(Ctrl
+R
)和"批量重新排序标签"(Ctrl
+B
)。