1、看了一下portable版本的ComfyUI

首先第一点,什么都别说了,备份

2、入口文件是:

调用

看了一下main.py的源码

没啥太特殊的

看了一下我安装的节点都在Custom_Node目录之下

打开它的readme能看到

 https://blog.lemonhall.me/notesview/show/569 

结合一下我之前的工作日志:

【ComfyUI插件Segment Anything的安装的初步使用】

它的SAM模型是加载到这里的:

至于这个身边么grounding-dino

我都不知道它干啥的

文档里还提到了其它的SAM,

第一,暂时也不知道有啥区别

第二,好像之前的使用者提出过,手动下载这些模型很容易出错,插件自带的下载机制很ok

然后comfyui里的__init__.py

然后其实就是很单纯的几个类的Mapping了

然后跟一下install.py

发现install的脚本会去做环境感知,这很重要

看了一下,区别就是-s标签:

意思是:--site-packages-only

然后进入node.py部分的源码:

也很单纯,比如这就是定义了一个模型的加载器

实际干活的代码,观其大略也能看出来在干嘛了:


行,node的代码还比较好理解

============================================

2、然后我们看一下GIMP插件那边的代码

 https://github.com/Shriinivas/gimpsegany 

E:\sd\ComfyUI_windows_portable_nvidia_cu121_or_cpu_05_04_2024\ComfyUI_windows_portable\python_embeded\python 
./seganybridge.py 
vit_h 
E:\sd\ComfyUI_windows_portable_nvidia_cu121_or_cpu_05_04_2024\ComfyUI_windows_portable\ComfyUI\models\sams\sam_hq_vit_h.pth

用这种方式测试了一下:

报错

    raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for Sam:


 https://github.com/SysCV/sam-hq/issues/6 


看了一下git的报错,好像主要原因是,这个插件用的是原版的sam,而我给comfyui下载的那个模型应该是hq版本的,这和模型版本有关系

两个解决方案:

1、第一,修改sam的文件:

直接在后面加了一个strict=Flase

解决

直接就报了通过:

2、还有一个方式

I had the same issue. In my case, my code used original SAM and then I wanted to change for HQ-SAM, but I didn't update the import. So the fix was just to change:

from segment_anything import sam_model_registry, SamAutomaticMaskGenerator, SamPredictor
into:
from segment_anything_hq import sam_model_registry, SamAutomaticMaskGenerator, SamPredictor

那就是换引用,这种我还没实验

应该也是OK的

备忘一下方式一的修改的人家框架的源码的位置

============================================

3、安装插件

3.1 确保GIMP本身

确保你的 GIMP 版本支持 Python-Fu。打开 GIMP 并在 “滤镜” 下检查是否有 “Python-Fu” 子菜单。
如果没有看到它,你需要在你的机器上安装一个支持 Python 的 GIMP 版本。Arch Linux 用户可以为
此找到一个名为 “python2-gimp” 的 AUR 包。同时打开 Python-Fu 控制台,并确保你的 GIMP 安装的 Python 版本是 2.7.x。

我看了一下,是有的

卧槽,但是这个东西是2.7哎

一、安装插件
确保安装了支持 Python 的 GIMP(Python-GIMP)。
从插件的 GitHub 地址(https://github.com/Shriinivas/gimpsegany)下载 zip 文件。
解压文件,将 seganyplugin.py 和 seganybridge.py 两个文件放入 GIMP 的插件文件夹中。
可以在 GIMP 的 “编辑 - 首选项” 菜单下的 “文件夹” 部分找到 GIMP 的用户插件位置。
确保 seganyplugin.py 文件可执行,即具有执行权限。

二、记录信息
记录运行 seganybridge 脚本时使用的 Python3 实例。如果没有使用任何特殊环境,这将是默认的 Python3 实例。
如果为 “Segment Anything” 设置了单独的环境,例如使用 pyenv 或 conda,参考其文档确定 Python3 的路径。
记录下载的检查点文件的位置,即希望 “Segment Anything” 使用的文件位置。

三、快速检查安装是否成功
打开控制台,切换到 GIMP 插件文件夹。
执行以下命令:/path/to/python3/python./seganybridge.py vit_h /path/to/checkpoint/model/sam_vit_h_4b8939.pth。
如果控制台输出 “Success!” 消息,则表示 “Segment Anything” 安装成功。如果遇到任何异常,可以参考 “Segment Anything” 的网站来解决。

我的是在这里

但我没有找到plugin应该放在哪里啊

哦哦,要点击开文件夹那个


D:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins

我把整个文件夹拷贝粘贴了过去:

然后重启一下GIMP试试

不行,看来需要将这两个文件直接粘贴到插件目录下面去:

然后重启GIMP

然后在图像菜单的最下方会出现一个新的

会出现新的窗口:

然后选择好python的路径以及模型的路径

然后确定就行了

接着!!!!

卧槽!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

哈哈哈哈哈

爽啊!!!!

爽啊!!!

爽啊!!!

100多个层就建立好了,一个找你想要的吧,可以可以,今天下午还在吐槽呢

看来以后要多学习编写GIMP的插件!!了,哈哈哈哈哈哈,人生啊~~~~

开源真好

感谢作者

这样我就和comfyui共用了一套SAM~~~~啦啦啦啦