欢迎光临散文网 会员登陆 & 注册

stable diffusion 1.5.1 Civitai助手 四个图标修复补丁

2023-08-14 23:05 作者:哇九娱乐  | 我要投稿

很多朋友应该会发现,SD升级到1.5.1版本之后,模型卡片上的四个图标怎么也刷新不出来了。

补丁文件在文章最后,下面主要说一下原因和修正思路,以后即便有新的版本升级导致助手失效,也可以用相同的思路来进行简单的改动,使功能恢复。

【问题产生的原因】

SD升级到1.5.1之后,取消了模型卡片上原有的“替换预览图片”按钮,改成了交叉扳手的编辑按钮,导致civitai助手那四个图标无法定位到原有位置。

从代码上来说,以下是1.4.1版本的卡片dom树片段:

对应的,civitai助手中的定位代码片段(核心代码位于extensions\Stable-Diffusion-Webui-Civitai-Helper\javascript\civitai_helper.js ,第 512行附近):

其中,ul_node 依靠ul定位,而 replace_preview_btn 则依靠ul里的a标签。

而在stable diffusion 1.5.1版本代码中,前端卡片dom树变成了下面的样子:

可以看到,箭头所指的地方,原本在1.4.1中具有的 ul 标签和内部的  a 标签全都没了,因此导致了助手图标定位失败,无法正确在卡片上显示。

【解决思路】

找到了问题,解决就很容易了,既然原因是找不到ul和a标签,那我在它找不到的时候,给他在指定的位置生成一个对应的ul和a标签不就完事了?

因此,解决之后的代码片段如下:

新增了这样一个判断代码,含义很简单,如果没有找到这个ul,则自动增加一个ul,并在新ul里新增一个a标签,再重新寻找。

因为是刚刚增加的,所以必然能找得到,这样就保证四个按钮肯定会出现在正确的地方了。

保存修改的文件后,重启控制台,可以发现四个图标已经正常显示了:

但是到这一步还不够完美,因为那个a标签是空的, 这会导致四个图标中的第一个点击了没反应,所以为了让它工作,我把编辑按钮的功能复制了过来:

到这一步为止,这个助手四个图标的功能就彻底修复完成了。

【补丁文件】

为保证内容安全,建议有一定代码基础的朋友参考上面的说明,自行修改,核心文件路径:

extensions\Stable-Diffusion-Webui-Civitai-Helper\javascript\civitai_helper.js 

这个只是civitai助手自己的文件,即便改乱了也可以通过取消再重选助手扩展让文件重置。

当然,你也可以直接下载我提供的改好的js文件,但必须说明,该文件仅在当前版本(本体版本1.5.1,2023-07-27 ,civitai助手版本 2023-05-23 )下有效,其余版本不保证绝对可用,仅供学习参考,如因补丁导致工作异常,可通过禁用civitai-helper再启用的方式,让文件恢复原版。


补丁文件下载地址:

https://github.com/zozi11/sd_civitai_helper_patch

百度盘:

https://pan.baidu.com/s/1_Sd8qJquH0oak_TXULtjog?pwd=72sq 提取码: 72sq 

stable diffusion 1.5.1 Civitai助手 四个图标修复补丁的评论 (共 条)

分享到微博请遵守国家法律