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~~~~啦啦啦啦