[GH-ISSUE #189] not be triggered #134

Closed
opened 2026-10-30 21:19:51 +00:00 by bsakaguchi · 10 comments
Owner

Originally created by @Zha-Miku on GitHub (Jun 18, 2023).
Original GitHub issue: https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/issues/189

I've changed many versions, but it never fires, and for some reason, the plug-in has been reinstalled several times

Originally created by @Zha-Miku on GitHub (Jun 18, 2023). Original GitHub issue: https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/issues/189 I've changed many versions, but it never fires, and for some reason, the plug-in has been reinstalled several times
Author
Owner

@mmhan2008 commented on GitHub (Jun 18, 2023):

按鼠标左键和回车健无法正常的把选定的词,放到提示框

<!-- gh-comment-id:1596090008 --> @mmhan2008 commented on GitHub (Jun 18, 2023): 按鼠标左键和回车健无法正常的把选定的词,放到提示框
Author
Owner

@DominikDoom commented on GitHub (Jun 18, 2023):

@Zha-Miku I will need more details to help you, please open your browser console (CTRL+SHIFT+I) and tell me if there are any errors that seem related.

@mmhan2008 我不明白,你能详细说明一下吗?

<!-- gh-comment-id:1596097910 --> @DominikDoom commented on GitHub (Jun 18, 2023): @Zha-Miku I will need more details to help you, please open your browser console (<kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>I</kbd>) and tell me if there are any errors that seem related. @mmhan2008 我不明白,你能详细说明一下吗?
Author
Owner

@Zha-Miku commented on GitHub (Jun 19, 2023):

屏幕截图 2023-06-19 215737
看不懂

<!-- gh-comment-id:1597243386 --> @Zha-Miku commented on GitHub (Jun 19, 2023): ![屏幕截图 2023-06-19 215737](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/54501325/d24d9be8-8c61-4734-8ba4-84a00a879ae2) 看不懂
Author
Owner

@Zha-Miku commented on GitHub (Jun 19, 2023):

屏幕截图 2023-06-19 220015
我输入什么都不会触发,已经换了好多的版本了,也不知道为什么,前几天突然就这样了
设置里也该了好几遍,这个插件是一直启用的,也换了别人能正常使用和这个插件自带的csv和json,我怀疑是sd本体的问题,但是不知道是哪个问题

<!-- gh-comment-id:1597249964 --> @Zha-Miku commented on GitHub (Jun 19, 2023): ![屏幕截图 2023-06-19 220015](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/54501325/fd95ad31-cc3e-4877-a955-278c26f4ee7a) 我输入什么都不会触发,已经换了好多的版本了,也不知道为什么,前几天突然就这样了 设置里也该了好几遍,这个插件是一直启用的,也换了别人能正常使用和这个插件自带的csv和json,我怀疑是sd本体的问题,但是不知道是哪个问题
Author
Owner

@Zha-Miku commented on GitHub (Jun 19, 2023):

我每次输入一个字母,就会生成一个'join'的东西,不知道是什么
屏幕截图 2023-06-19 220521

发现下面还有一些error
屏幕截图 2023-06-19 220918
看不懂

<!-- gh-comment-id:1597262381 --> @Zha-Miku commented on GitHub (Jun 19, 2023): 我每次输入一个字母,就会生成一个'join'的东西,不知道是什么 ![屏幕截图 2023-06-19 220521](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/54501325/6ed726f4-d2af-40e1-bed4-b980006c75c1) 发现下面还有一些error ![屏幕截图 2023-06-19 220918](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/54501325/99f4b87f-3f85-46df-b9a9-8dfe2d5ce80e) 看不懂
Author
Owner

@DominikDoom commented on GitHub (Jun 19, 2023):

@Zha-Miku 你发给我的错误是样式错误,它们只是无障碍建议。它们与脚本没有关系。
如果有脚本错误,它们反而会出现在这个控制台标签中:
console

"join"的事情也是正常的,它与令牌计数器的更新有关(提示文本框的右上方),并将你输入的内容送回本地服务器进行计算。这是webui本身的一部分。

请首先检查标记的控制台标签中是否有任何错误。如果没有,这里有一些其他的方法可以尝试:

  • 手动删除扩展的文件夹,并通过webui重新安装,以确保你有一个干净的版本(你将保留你的设置,但备份你使用的任何自定义标签或chants.json文件,以便你之后可以重新添加它们)
  • 确保该扩展没有重复的安装(如另一个名字下的旧文件夹)。
  • 如果你使用它,确保openpose-editor扩展也是最新的。
  • 尝试禁用其他扩展,看看是否是兼容性问题。
<!-- gh-comment-id:1597619558 --> @DominikDoom commented on GitHub (Jun 19, 2023): @Zha-Miku 你发给我的错误是样式错误,它们只是无障碍建议。它们与脚本没有关系。 如果有脚本错误,它们反而会出现在这个控制台标签中: ![console](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/34448969/07786fc2-51db-42d3-afe1-0e98b80f26e0) "join"的事情也是正常的,它与令牌计数器的更新有关(提示文本框的右上方),并将你输入的内容送回本地服务器进行计算。这是webui本身的一部分。 请首先检查标记的控制台标签中是否有任何错误。如果没有,这里有一些其他的方法可以尝试: - 手动删除扩展的文件夹,并通过webui重新安装,以确保你有一个干净的版本(你将保留你的设置,但备份你使用的任何自定义标签或chants.json文件,以便你之后可以重新添加它们) - 确保该扩展没有重复的安装(如另一个名字下的旧文件夹)。 - 如果你使用它,确保openpose-editor扩展也是最新的。 - 尝试禁用其他扩展,看看是否是兼容性问题。
Author
Owner

@Zha-Miku commented on GitHub (Jun 20, 2023):

感谢提醒

屏幕截图 2023-06-20 120703
我看不懂这段代码的意思
屏幕截图 2023-06-20 120732
问了AI后是大概理解了部分的问题
AI:

  1. 定义了基于标签名、别名和翻译的过滤函数baseFilter、aliasFilter和translationFilter
  2. 根据配置TAC_CFG选择使用哪些过滤函数,从而实现灵活的搜索方式
  3. 这是一种策略模式的应用
    然后,我们分析了这段代码报的一个错误,并给出了解决方案:
    错误:undefined.toLowerCase()报错
    原因:searchRegex可能为undefined,在调用.toLowerCase()方法前没有判断
    解决:在调用.toLowerCase()前先判断searchRegex是否为undefined,如果是则直接返回false
    修复后的代码:
let baseFilter = (x) => {
  if (typeof searchRegex === 'undefined') return false
  return x[0].toLowerCase().search(searchRegex) > -1
};

最后,我们讨论了导致这个错误的其他几个可能性,提出的解决思路是:

  1. 检查searchRegex本身是否为undefined
  2. 检查字符串是否为空导致正则匹配失败
  3. 检查代码中其他访问是否可能为undefined
  4. 检查对象属性访问的中间属性是否为undefined
    解决方案是加强各处的判断,防范undefined值的访问,加强代码健壮性。

但是我觉得还是没有解决问题,

我问他为什么searchRegex会找不到值
AI:

  1. searchRegex本身就为undefined。这种情况下,加了刚才的判断后问题就解决了。
  2. searchRegex是一个正则表达式,但是传入的字符串为空或null,所以正则匹配失败,返回-1。这种情况下,虽然不会报错,但搜索结果会是错误的。解决方案是在字符串上也加一个判断,例如:
let baseFilter = (x) => {
  if (typeof searchRegex === 'undefined' || !x[0]) return false
  return x[0].toLowerCase().search(searchRegex) > -1 
}
  1. 代码中其他地方作了undefined的变量/对象的访问,导致最终在.toLowerCase()这一步报了错。这种情况需要检查整段代码,加必要的判断防止undefined的访问。
  2. 如果是对象的属性访问,有可能 intermediate properties 是undefined。例如:
let obj = {
  a: {
    b: 'some string'
  }
}
obj.a.b.toLowerCase() // ok
obj.a.c.toLowerCase() // will throw error

这里obj.a.c是undefined,所以会报错。解决 similarly需要检查每个层次的属性访问。

我又去bing了一下,有一些解决方法,但是好像不太合适

屏幕截图 2023-06-20 124257

我发现在网络里面确实接受到了输入的信息,但是在控制台里面还是说没有收到,是undefined的,不知道该如何解决
屏幕截图 2023-06-20 125012

之后我也重装了好几遍的拓展了,也更新了openpose-editor扩展到最新的版本,结果还是无效
也尝试过禁用了其他的拓展,还是一样,甚至出现了其他的不了解的错误
屏幕截图 2023-06-20 125540

<!-- gh-comment-id:1598116709 --> @Zha-Miku commented on GitHub (Jun 20, 2023): # 感谢提醒 ![屏幕截图 2023-06-20 120703](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/54501325/b63c67e8-5e95-4ad1-856a-7012f6ece9ab) 我看不懂这段代码的意思 ![屏幕截图 2023-06-20 120732](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/54501325/b9395f8f-0008-434a-aed2-a3df6dca5507) 问了AI后是大概理解了部分的问题 AI: 1. 定义了基于标签名、别名和翻译的过滤函数baseFilter、aliasFilter和translationFilter 2. 根据配置TAC_CFG选择使用哪些过滤函数,从而实现灵活的搜索方式 3. 这是一种策略模式的应用 然后,我们分析了这段代码报的一个错误,并给出了解决方案: 错误:undefined.toLowerCase()报错 原因:searchRegex可能为undefined,在调用.toLowerCase()方法前没有判断 解决:在调用.toLowerCase()前先判断searchRegex是否为undefined,如果是则直接返回false 修复后的代码: ```js let baseFilter = (x) => { if (typeof searchRegex === 'undefined') return false return x[0].toLowerCase().search(searchRegex) > -1 }; ``` 最后,我们讨论了导致这个错误的其他几个可能性,提出的解决思路是: 1. 检查searchRegex本身是否为undefined 2. 检查字符串是否为空导致正则匹配失败 3. 检查代码中其他访问是否可能为undefined 4. 检查对象属性访问的中间属性是否为undefined 解决方案是加强各处的判断,防范undefined值的访问,加强代码健壮性。 ## 但是我觉得还是没有解决问题, 我问他为什么searchRegex会找不到值 AI: 1. searchRegex本身就为undefined。这种情况下,加了刚才的判断后问题就解决了。 2. searchRegex是一个正则表达式,但是传入的字符串为空或null,所以正则匹配失败,返回-1。这种情况下,虽然不会报错,但搜索结果会是错误的。解决方案是在字符串上也加一个判断,例如: ```js let baseFilter = (x) => { if (typeof searchRegex === 'undefined' || !x[0]) return false return x[0].toLowerCase().search(searchRegex) > -1 } ``` 3. 代码中其他地方作了undefined的变量/对象的访问,导致最终在.toLowerCase()这一步报了错。这种情况需要检查整段代码,加必要的判断防止undefined的访问。 4. 如果是对象的属性访问,有可能 intermediate properties 是undefined。例如: ```js let obj = { a: { b: 'some string' } } obj.a.b.toLowerCase() // ok obj.a.c.toLowerCase() // will throw error ``` 这里obj.a.c是undefined,所以会报错。解决 similarly需要检查每个层次的属性访问。 ## 我又去bing了一下,有一些解决方法,但是好像不太合适 ![屏幕截图 2023-06-20 124257](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/54501325/a5420d19-302f-4198-9c09-b77124016c79) 我发现在网络里面确实接受到了输入的信息,但是在控制台里面还是说没有收到,是undefined的,不知道该如何解决 ![屏幕截图 2023-06-20 125012](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/54501325/facbb4a0-f297-42f5-8bc7-f88a8acc2072) 之后我也重装了好几遍的拓展了,也更新了openpose-editor扩展到最新的版本,结果还是无效 也尝试过禁用了其他的拓展,还是一样,甚至出现了其他的不了解的错误 ![屏幕截图 2023-06-20 125540](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/54501325/e9f933cf-0e6c-4d6a-84c3-cedf56fcefdd)
Author
Owner

@DominikDoom commented on GitHub (Jun 20, 2023):

我理解你的意图,但我可以向你保证,这是人工智能对代码没有足够的了解,无法给出一个合适的答案。

在代码的这一点上,这个字符串不应该是未定义的,因为我们事先检查了翻译集是否包含该键。这意味着问题很可能出在你的翻译文件或设置上。

原因可能是这个设置:
image

如果它被启用,解析器将跳过翻译文件中的一列,因为它在一些旧的社区文件中存在,但不再使用。
但如果你的文件已经只有两列,它就不会在那里找到任何东西,从而导致上面的错误。

image image
左边是新格式,右边是旧格式。如果你的文件中间没有0,你必须取消勾选这个选项。

然后重新启动webui或将翻译文件切换为 "None",应用设置,并再次切换回你的文件,重新加载它。

<!-- gh-comment-id:1598183947 --> @DominikDoom commented on GitHub (Jun 20, 2023): 我理解你的意图,但我可以向你保证,这是人工智能对代码没有足够的了解,无法给出一个合适的答案。 在代码的这一点上,这个字符串不应该是未定义的,因为我们事先检查了翻译集是否包含该键。这意味着问题很可能出在你的翻译文件或设置上。 原因可能是这个设置: ![image](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/34448969/dcc3ac45-7387-4140-b471-86d7947bcce3) 如果它被启用,解析器将跳过翻译文件中的一列,因为它在一些旧的社区文件中存在,但不再使用。 但如果你的文件已经只有两列,它就不会在那里找到任何东西,从而导致上面的错误。 ![image](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/34448969/9df8cc33-65b5-4032-9e98-253b7659939c) ![image](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/34448969/e13394b1-7d80-4cb0-a9d8-83accb9cdfc8) 左边是新格式,右边是旧格式。如果你的文件中间没有0,你必须取消勾选这个选项。 然后重新启动webui或将翻译文件切换为 "None",应用设置,并再次切换回你的文件,重新加载它。
Author
Owner

@Zha-Miku commented on GitHub (Jun 20, 2023):

卧槽,实在是太NB了,太感谢了,我已经成功解决了,这个问题已经困扰了我好几天了,我都要打算重装WebUI的问题了,没想到居然是这么一个小问题,打个勾就完事了,绝了

你太牛了

屏幕截图 2023-06-21 005044

<!-- gh-comment-id:1599162645 --> @Zha-Miku commented on GitHub (Jun 20, 2023): # 卧槽,实在是太NB了,太感谢了,我已经成功解决了,这个问题已经困扰了我好几天了,我都要打算重装WebUI的问题了,没想到居然是这么一个小问题,打个勾就完事了,绝了 # 你太牛了 ![屏幕截图 2023-06-21 005044](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/assets/54501325/85b19827-7359-4628-9f13-e35b339d67e7)
Author
Owner

@DominikDoom commented on GitHub (Jun 20, 2023):

很高兴这为你解决了问题。我还在最新版本中增加了一个保障措施,所以即使它被错误地选中,如果它在那一栏中没有找到任何东西,它也会退回并尝试其他格式。

希望有了这个,其他用户如果不确定格式或设置,就不会再面临同样的问题。

<!-- gh-comment-id:1599185800 --> @DominikDoom commented on GitHub (Jun 20, 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#134
No description provided.