[GH-ISSUE #211] 2.9版本更改了txt格式wildcards的排序,全乱套了! #152

Closed
opened 2026-10-30 21:20:08 +00:00 by bsakaguchi · 6 comments
Owner

Originally created by @laignguihua on GitHub (Aug 3, 2023).
Original GitHub issue: https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/issues/211

2.9版本支持yaml很好,但原来用的好好的txt格式wildcards就遭殃了,不知道这个是不是BUG,希望提供yaml支持也保留原来txt的规则不变,不然重新组织wildcards是个大工程。

Originally created by @laignguihua on GitHub (Aug 3, 2023). Original GitHub issue: https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/issues/211 2.9版本支持yaml很好,但原来用的好好的txt格式wildcards就遭殃了,不知道这个是不是BUG,希望提供yaml支持也保留原来txt的规则不变,不然重新组织wildcards是个大工程。
Author
Owner

@DominikDoom commented on GitHub (Aug 3, 2023):

可以说,之前的排序是错误的,因为它根本没有排序,而只是使用文件夹顺序。

当我使用 YAML 通配符进行测试时,这种做法非常令人困惑,因为它们只是被附加在最后,而忽略了字母顺序 (因为它们是由单独的函数加载的)。
因此,作为修复,现在所有通配符都按字母顺序排序。

我不确定我是否理解了这里的问题,因为只要按照字母顺序排列,查找特定通配符文件就会变得更容易。如果你想按主题对通配符进行分组,将它们放在同一个子文件夹中就足够了。
能否举例说明通配符文件或其名称对您来说有哪些问题?

<!-- gh-comment-id:1663521759 --> @DominikDoom commented on GitHub (Aug 3, 2023): 可以说,之前的排序是错误的,因为它根本没有排序,而只是使用文件夹顺序。 当我使用 YAML 通配符进行测试时,这种做法非常令人困惑,因为它们只是被附加在最后,而忽略了字母顺序 (因为它们是由单独的函数加载的)。 因此,作为修复,现在所有通配符都按字母顺序排序。 我不确定我是否理解了这里的问题,因为只要按照字母顺序排列,查找特定通配符文件就会变得更容易。如果你想按主题对通配符进行分组,将它们放在同一个子文件夹中就足够了。 能否举例说明通配符文件或其名称对您来说有哪些问题?
Author
Owner

@laignguihua commented on GitHub (Aug 4, 2023):

问题应该是对这个功能使用的方法不同,造成的理解不同。
tag文件已经提供了大量的词,还支持中文,这个对英文又不咋地的我很友好。正因为词量大才使用的检索这种放法方便迅速找到想要的词。在tagcomplete里调用wildcards我认为是一个补充功能,如果使用上还是跟tag那样大海捞针这个功能就没有必要了,把那些wildcards加到tag文件里就好了。
sd-webui有“sd-webui-easy-prompt-selector”这么一个插件,tagcomplete调用wildcards的功能可以完美替代这个插件还更方便高效,这样我就可以用调用wildcards的功能组织自己的常用词库,正因为是自己组织的才不需要按字母排列。重要的是TXT的wildcards是支持中英文的,像tag文件一样友好! YAML文件起码我不知道怎么支持中英文,就算支持,我也不想用新格式重新倒腾一次自己的词库。
所以我认为TXT格式的wildcards保持2.8版本的样式不变,YAML格式的wildcards按新的来(毕竟YAML格式更有优势,的确更方便管理)这样既不影响存量也不影响增量,适应性更好。
以上只是个人看法,我完全不懂编程,不知道这种东西能不能实现,但我的确退回2.8版本了。
我截两张图TXT格式的2.8和2.9前后对比图:
https://img1.imgtp.com/2023/08/04/7kXIfayA.png
这个是2.8
https://img1.imgtp.com/2023/08/04/wGbK6LC6.png
这个是2.9
看图您应该就能理解我对2.9的困扰之处了。

<!-- gh-comment-id:1664832123 --> @laignguihua commented on GitHub (Aug 4, 2023): 问题应该是对这个功能使用的方法不同,造成的理解不同。 tag文件已经提供了大量的词,还支持中文,这个对英文又不咋地的我很友好。正因为词量大才使用的检索这种放法方便迅速找到想要的词。在tagcomplete里调用wildcards我认为是一个补充功能,如果使用上还是跟tag那样大海捞针这个功能就没有必要了,把那些wildcards加到tag文件里就好了。 sd-webui有“sd-webui-easy-prompt-selector”这么一个插件,tagcomplete调用wildcards的功能可以完美替代这个插件还更方便高效,这样我就可以用调用wildcards的功能组织自己的常用词库,正因为是自己组织的才不需要按字母排列。重要的是TXT的wildcards是支持中英文的,像tag文件一样友好! YAML文件起码我不知道怎么支持中英文,就算支持,我也不想用新格式重新倒腾一次自己的词库。 所以我认为TXT格式的wildcards保持2.8版本的样式不变,YAML格式的wildcards按新的来(毕竟YAML格式更有优势,的确更方便管理)这样既不影响存量也不影响增量,适应性更好。 以上只是个人看法,我完全不懂编程,不知道这种东西能不能实现,但我的确退回2.8版本了。 我截两张图TXT格式的2.8和2.9前后对比图: [https://img1.imgtp.com/2023/08/04/7kXIfayA.png](https://img1.imgtp.com/2023/08/04/7kXIfayA.png) 这个是2.8 [https://img1.imgtp.com/2023/08/04/wGbK6LC6.png](https://img1.imgtp.com/2023/08/04/wGbK6LC6.png) 这个是2.9 看图您应该就能理解我对2.9的困扰之处了。
Author
Owner

@DominikDoom commented on GitHub (Aug 4, 2023):

是的,我看得出,其中似乎混杂了一些不相关的项目。
您是否在不同文件夹中有多个同名文件?在这种情况下,新系统会尝试将它们合并在一起,这可能会导致你看到的问题。

如果没有您的具体设置,我很难重现这个问题,所以如果可能的话,请您附上有问题的文件本身,这将是一个很大的帮助。
特别是您的中英文翻译设置究竟如何,这可能会产生很大影响。
在我的本地测试中,我使用了一些使用中文名称的通配符文件和您在示例图片中显示的中文文本内容,结果没有出现混杂的情况,排序效果也符合预期。

作为一个普遍问题,实际上无法将 txt 和 yaml 通配符分开,因为它们重复使用同一个系统。因此,对其中一个进行排序而不对另一个进行排序会导致非常不一致的结果。不过,你在这里显示的情况看起来更像是一个错误,而不是预期的行为,因为排序似乎是错误的。
作为一种变通办法,我可以尝试对文件名进行排序,但不对内容进行排序,或者将其作为在两者之间进行切换的一个选项,但如果这确实是一个错误,我宁愿在这里找到根本原因。

<!-- gh-comment-id:1665344954 --> @DominikDoom commented on GitHub (Aug 4, 2023): 是的,我看得出,其中似乎混杂了一些不相关的项目。 您是否在不同文件夹中有多个同名文件?在这种情况下,新系统会尝试将它们合并在一起,这可能会导致你看到的问题。 如果没有您的具体设置,我很难重现这个问题,所以如果可能的话,请您附上有问题的文件本身,这将是一个很大的帮助。 特别是您的中英文翻译设置究竟如何,这可能会产生很大影响。 在我的本地测试中,我使用了一些使用中文名称的通配符文件和您在示例图片中显示的中文文本内容,结果没有出现混杂的情况,排序效果也符合预期。 作为一个普遍问题,实际上无法将 txt 和 yaml 通配符分开,因为它们重复使用同一个系统。因此,对其中一个进行排序而不对另一个进行排序会导致非常不一致的结果。不过,你在这里显示的情况看起来更像是一个错误,而不是预期的行为,因为排序似乎是错误的。 作为一种变通办法,我可以尝试对文件名进行排序,但不对内容进行排序,或者将其作为在两者之间进行切换的一个选项,但如果这确实是一个错误,我宁愿在这里找到根本原因。
Author
Owner

@laignguihua commented on GitHub (Aug 5, 2023):

起初我是在某个视频里了解到这个调用wildcards支持中英文显示的功能,视频里使用了sd-dynamic-prompts插件,他的wildcards文件是放在sd-dynamic-prompts插件目录里面的。
开始出现问题时我以为是更新了sd-dynamic-prompts插件造成的问题,但我后面发现这个插件是不需要的,只要把那些wildcards文件放到stable-diffusion-webui\scripts\wildcards文件夹里tagcomplete就可以调用他们,并不需要sd-dynamic-prompts插件。因为我并不需要sd-dynamic-prompts本身的功能所以我现在已经卸载了sd-dynamic-prompts插件,2.9版本问题依旧,2.8版本没有问题,所以才来这里反映情况。
我的这个stable-diffusion-webui\scripts\wildcards文件夹里并没有其它文件夹,只是把我有限的几个wildcards文件直接放在里面,并且只有这一个文件夹里有这几个文件。tagcomplete的设置也基本没有动就是指定了自己的tag文件,我可以提供一下截图:
https://img1.imgtp.com/2023/08/05/CMRI8ZMh.png
附上我的中英文tag和一个txt格式wildcards文件,您应该可以复现我的情况。

链接:https://pan.baidu.com/s/1W46wJYWlpIuguIcASMGkuQ
提取码:ui0v

<!-- gh-comment-id:1666341835 --> @laignguihua commented on GitHub (Aug 5, 2023): 起初我是在某个视频里了解到这个调用wildcards支持中英文显示的功能,视频里使用了sd-dynamic-prompts插件,他的wildcards文件是放在sd-dynamic-prompts插件目录里面的。 开始出现问题时我以为是更新了sd-dynamic-prompts插件造成的问题,但我后面发现这个插件是不需要的,只要把那些wildcards文件放到stable-diffusion-webui\scripts\wildcards文件夹里tagcomplete就可以调用他们,并不需要sd-dynamic-prompts插件。因为我并不需要sd-dynamic-prompts本身的功能所以我现在已经卸载了sd-dynamic-prompts插件,2.9版本问题依旧,2.8版本没有问题,所以才来这里反映情况。 我的这个stable-diffusion-webui\scripts\wildcards文件夹里并没有其它文件夹,只是把我有限的几个wildcards文件直接放在里面,并且只有这一个文件夹里有这几个文件。tagcomplete的设置也基本没有动就是指定了自己的tag文件,我可以提供一下截图: [https://img1.imgtp.com/2023/08/05/CMRI8ZMh.png](https://img1.imgtp.com/2023/08/05/CMRI8ZMh.png) 附上我的中英文tag和一个txt格式wildcards文件,您应该可以复现我的情况。 链接:https://pan.baidu.com/s/1W46wJYWlpIuguIcASMGkuQ 提取码:ui0v
Author
Owner

@DominikDoom commented on GitHub (Aug 5, 2023):

啊,现在我明白你的问题了。您用于通配符的特殊组织结构确实被排序破坏了。

我添加了一个设置,应该可以解决这个问题。
禁用这一新选项后,文件内容将无法排序:
image
默认情况下是打开的,因为我认为你的文件结构情况比较少见,但你可以随时打开或关闭,无需重新启动。

不过,顺便提一下,我建议将你这里的不同类别存储在单独的文件中。
这将使它们更容易搜索,而且它们首先就不会受到这个问题的影响。

<!-- gh-comment-id:1666481121 --> @DominikDoom commented on GitHub (Aug 5, 2023): 啊,现在我明白你的问题了。您用于通配符的特殊组织结构确实被排序破坏了。 我添加了一个设置,应该可以解决这个问题。 禁用这一新选项后,文件内容将无法排序: ![image](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/34448969/101b812b-61ef-488a-98e3-dde164164b1b) 默认情况下是打开的,因为我认为你的文件结构情况比较少见,但你可以随时打开或关闭,无需重新启动。 不过,顺便提一下,我建议将你这里的不同类别存储在单独的文件中。 这将使它们更容易搜索,而且它们首先就不会受到这个问题的影响。
Author
Owner

@laignguihua commented on GitHub (Aug 7, 2023):

问题得到解决!
非常感谢您的帮助。

<!-- gh-comment-id:1667027598 --> @laignguihua commented on GitHub (Aug 7, 2023): 问题得到解决! 非常感谢您的帮助。
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
DominikDoom/a1111-sd-webui-tagcomplete#152
No description provided.