ComfyUI-Similarity-Score 插件超详细保姆级教程
1. 插件简介
原地址: https://github.com/risunobushi/ComfyUI-Similarity-Score
这个插件就像是一个超级厉害的"图片比较器"!想象一下,你有两张照片,想知道它们到底有多相似——这个插件就能帮你做到这件事。
它主要提供两种比较方式: - CLIP 相似度分数(语义相似性) - LPIPS 相似度分数(感知相似性)
简单来说: - CLIP 相似度:就像是问"这两张图片表达的内容是不是一个意思?"比如一张猫的照片和一张狗的照片,内容不同,分数就低 - LPIPS 相似度:就像是问"这两张图片看起来是不是很像?"更注重视觉上的相似程度,比如颜色、纹理、形状等
这个插件特别适合用来: - 检查AI生成的图片质量 - 比较不同参数生成的图片效果 - 找出最接近参考图的生成结果 - 做图片质量控制
2. 如何安装
方法一:使用ComfyUI-Manager(推荐新手) 1. 打开ComfyUI,点击右下角的"Manager"按钮 2. 在弹出的窗口中选择"Install Custom Nodes" 3. 搜索"Similarity Score" 4. 找到后点击"Install"按钮 5. 重启ComfyUI
方法二:手动安装
1. 打开命令行工具(Windows用户按Win+R,输入cmd回车)
2. 进入ComfyUI的插件目录:
cd ComfyUI/custom_nodes/
3. 下载插件:
git clone https://github.com/risunobushi/ComfyUI-Similarity-Score.git
4. 进入插件目录:
cd ComfyUI-Similarity-Score
5. 安装依赖:
pip install -r requirements.txt
6. 重启ComfyUI
3. 节点详解
3.1 CLIP Similarity Score 节点
这个节点就像是一个"内容理解专家",它会分析两张图片表达的内容和意思,然后给出一个相似度分数。
它能干什么? - 比较两张图片的语义内容 - 判断图片主题是否相似 - 不太关心具体的视觉细节,更关心"表达的意思"
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图片1 | image1 | 图片数据 | 任意图片 | 第一张要比较的图片,就像比较游戏中的"选手A" | 输入的第一张图像张量 | 连接任何输出图片的节点,比如Load Image |
| 图片2 | image2 | 图片数据 | 任意图片 | 第二张要比较的图片,就像比较游戏中的"选手B" | 输入的第二张图像张量 | 连接任何输出图片的节点,比如另一个Load Image |
| 设备 | device | auto/cpu/cuda | auto | 选择用什么来计算,就像选择用跑车还是自行车 | 指定计算设备,auto会自动选择最优设备 | 一般选auto,有好显卡会自动用显卡加速 |
输出结果: - 返回一个0到1之间的数字 - 数字越接近1,表示两张图片内容越相似 - 0.8以上通常表示内容非常相似
3.2 LPIPS Similarity Score 节点
这个节点就像是一个"视觉专家",它会仔细观察两张图片的视觉效果,包括颜色、纹理、形状等,然后给出相似度分数。
它能干什么? - 比较两张图片的视觉外观 - 判断图片在视觉上是否相似 - 特别关注人眼能看到的细节差异
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图片1 | image1 | 图片数据 | 任意图片 | 第一张要比较的图片,就像比较游戏中的"选手A" | 输入的第一张图像张量 | 连接任何输出图片的节点,比如Load Image |
| 图片2 | image2 | 图片数据 | 任意图片 | 第二张要比较的图片,就像比较游戏中的"选手B" | 输入的第二张图像张量 | 连接任何输出图片的节点,比如另一个Load Image |
| 网络类型 | net | alex/vgg/squeeze | alex | 选择比较的"大脑类型",不同大脑有不同的判断标准 | 选择用于计算感知距离的神经网络架构 | alex最常用,vgg更精确但更慢,squeeze最快但准确度稍低 |
| 设备 | device | auto/cpu/cuda | auto | 选择用什么来计算,就像选择用跑车还是自行车 | 指定计算设备,auto会自动选择最优设备 | 一般选auto,有好显卡会自动用显卡加速 |
输出结果: - 返回一个数字(通常在0到1之间) - 数字越小,表示两张图片视觉上越相似 - 注意:这个和CLIP相反,LPIPS是数字越小越相似!
3.3 Combined Similarity Score 节点
这个节点就像是一个"综合评判员",它会同时使用CLIP和LPIPS两种方法来比较图片,然后给出一个综合的相似度分数。
它能干什么? - 同时考虑内容相似性和视觉相似性 - 提供更全面的图片比较结果 - 一次性得到两种不同的相似度分数
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图片1 | image1 | 图片数据 | 任意图片 | 第一张要比较的图片,就像比较游戏中的"选手A" | 输入的第一张图像张量 | 连接任何输出图片的节点,比如Load Image |
| 图片2 | image2 | 图片数据 | 任意图片 | 第二张要比较的图片,就像比较游戏中的"选手B" | 输入的第二张图像张量 | 连接任何输出图片的节点,比如另一个Load Image |
| CLIP权重 | clip_weight | 0.0-1.0 | 0.5 | CLIP分数在最终结果中的重要程度,就像投票时的权重 | CLIP相似度在综合分数中的权重系数 | 0.5表示各占一半,0.8表示更重视内容相似性 |
| LPIPS网络 | lpips_net | alex/vgg/squeeze | alex | 选择LPIPS使用的"大脑类型" | 选择LPIPS计算使用的神经网络架构 | alex最常用,平衡速度和准确度 |
| 设备 | device | auto/cpu/cuda | auto | 选择用什么来计算,就像选择用跑车还是自行车 | 指定计算设备,auto会自动选择最优设备 | 一般选auto,有好显卡会自动用显卡加速 |
输出结果:
- CLIP分数:0到1之间,越大越相似
- LPIPS分数:0到1之间,越小越相似
- 综合分数:根据权重计算出的综合相似度
4. 使用技巧和建议
4.1 选择合适的节点
- 只关心内容相似性:用CLIP Similarity Score节点
- 适合:比较不同风格但内容相同的图片
-
举例:一张照片和一张同样场景的画作
-
只关心视觉相似性:用LPIPS Similarity Score节点
- 适合:比较视觉效果是否相似
-
举例:比较两张不同人物但构图相似的照片
-
需要综合判断:用Combined Similarity Score节点
- 适合:大部分情况下的图片比较
- 举例:评估AI生成图片与参考图的整体相似度
4.2 参数调优建议
LPIPS网络选择:
- alex:速度快,准确度好,推荐日常使用
- vgg:准确度最高,但速度较慢,适合精细比较
- squeeze:速度最快,准确度稍低,适合大批量处理
CLIP权重设置: - 0.3-0.4:更重视视觉相似性,适合艺术创作 - 0.5:平衡考虑,适合大部分场景 - 0.6-0.7:更重视内容相似性,适合内容审核
4.3 实用工作流程
场景1:AI图片质量评估 1. 加载参考图片 2. 加载AI生成的图片 3. 使用Combined Similarity Score节点比较 4. 设置CLIP权重为0.6,重视内容匹配 5. 根据分数筛选最佳结果
场景2:批量图片筛选 1. 设置循环工作流 2. 使用LPIPS节点进行快速比较 3. 选择alex网络平衡速度和准确度 4. 设置阈值自动筛选相似图片
4.4 分数解读指南
CLIP分数解读: - 0.9以上:内容几乎完全相同 - 0.7-0.9:内容高度相似 - 0.5-0.7:内容中等相似 - 0.3-0.5:内容略有相似 - 0.3以下:内容差异很大
LPIPS分数解读: - 0.1以下:视觉上非常相似 - 0.1-0.3:视觉上较为相似 - 0.3-0.5:视觉上中等相似 - 0.5-0.7:视觉上略有相似 - 0.7以上:视觉上差异很大
5. 常见问题解答
Q1:为什么CLIP和LPIPS的分数含义相反?
A: 这是因为它们的计算方式不同。CLIP计算的是"相似度",所以数字越大越相似;LPIPS计算的是"差异度",所以数字越小越相似。就像考试分数(越高越好)和错误数量(越少越好)的区别。
Q2:两个分数差异很大怎么办?
A: 这是正常的!比如一张猫的照片和一张狗的画作,CLIP分数可能很低(动物不同),但LPIPS分数可能较高(如果画风相似)。这说明它们在不同维度上的相似性不同。
Q3:计算速度很慢怎么办?
A: - 确保设备设置为"auto",让系统自动选择最快的计算方式 - 如果使用LPIPS,可以尝试换成"alex"或"squeeze"网络 - 检查是否有可用的显卡,显卡加速会快很多
Q4:分数总是很低怎么办?
A: - 检查两张图片是否正确加载 - 确认图片格式是否支持(建议使用PNG或JPG) - 如果图片差异确实很大,低分数是正常的
Q5:如何批量处理多张图片?
A: - 可以使用ComfyUI的批处理功能 - 配合循环节点实现自动化比较 - 建议使用较快的网络设置以提高处理速度
6. 高级应用场景
6.1 图片质量控制流水线
在大批量生成AI图片时,可以设置自动化的质量控制流程: 1. 设置标准参考图 2. 使用Combined Similarity Score节点 3. 设置分数阈值(比如CLIP>0.6,LPIPS<0.4) 4. 自动保存符合要求的图片 5. 丢弃质量不达标的图片
6.2 风格一致性检查
在创作一系列相关图片时,确保风格一致: 1. 选择一张风格标准图 2. 使用LPIPS节点检查视觉风格 3. 设置较低的LPIPS阈值(如<0.3) 4. 确保所有图片都保持相似的视觉风格
6.3 内容审核辅助
在需要内容审核的场景中: 1. 准备标准的"安全图片"库 2. 使用CLIP节点检查内容相似性 3. 设置警告阈值,自动标记可能有问题的图片 4. 人工复审被标记的图片
6.4 创意灵感收集
在收集创意参考时: 1. 使用Combined Similarity Score节点 2. 设置较低的相似度阈值 3. 自动筛选出差异较大的图片 4. 确保收集到的参考图片具有多样性
通过这个插件,你可以让ComfyUI变得更加智能,不仅能生成图片,还能智能地评估和比较图片质量。这就像给你的AI工具箱添加了一双"火眼金睛",帮你快速找到最好的图片结果!