From c28fa92e40776ccb95e6a9901331f456552da982 Mon Sep 17 00:00:00 2001
From: eastoc <454189292@qq.com>
Date: Wed, 14 Aug 2024 03:19:26 +0800
Subject: [PATCH] update readme
---
README.md | 70 ++++-
configs/semantic_sam_only_sa-1b_swinL.yaml | 2 +-
configs/semantic_sam_only_sa-1b_swinT.yaml | 2 +-
examples/SemanticSAM.png | Bin 0 -> 146317 bytes
examples/workflow.png | Bin 0 -> 197901 bytes
node.py | 8 +-
semantic_sam/BaseModel.py | 2 +-
semantic_sam/build_semantic_sam.py | 16 +-
.../language/LangEncoder/transformer.py | 2 +-
semantic_sam/language/encoder.py | 2 +-
semantic_sam/language/vlpencoder.py | 2 +-
semantic_sam/utils/misc.py | 2 +-
tasks/automatic_mask_generator.py | 2 +-
tasks/interactive_idino_m2m.py | 2 +-
tasks/interactive_idino_m2m_auto.py | 2 +-
tasks/interactive_predictor.py | 2 +-
workflow/workflow.json | 239 ++++++++++++++++++
17 files changed, 331 insertions(+), 24 deletions(-)
create mode 100644 examples/SemanticSAM.png
create mode 100644 examples/workflow.png
create mode 100644 workflow/workflow.json
diff --git a/README.md b/README.md
index 066bc32..34470f7 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,69 @@
-# ComfyUI_SemanticSAM
\ No newline at end of file
+# ComfyUI_SemanticSAM
+This is a ComfyUI node based-on [Semantic-SAM](https://github.com/UX-Decoder/Semantic-SAM) official implementation. We provide a workflow node for one-click segment. Compared with SAM, Semantic-SAM has better fine-grained capabilities and more candidate masks. Users can take this node as the pre-node for inpainting to obtain the mask region.
+
+This node have been valided on Ubuntu-20.04 & CUDA-11.8. Due to detectron2, this node is currently not supported on Windows (unless the compatibility of Detectron2 on Windows is addressed)
+
+
+## Get Start
+### 1. Prepare repo
+```sh
+cd ComfyUI/custom
+git clone https://github.com/eastoc/ComfyUI_SemanticSAM
+cd ComfyUI_SemanticSAM
+git clone https://github.com/facebookresearch/detectron2
+git clone https://github.com/facebookresearch/Mask2Former
+```
+Because detectron2 has not been updated, if the CUDA=11.8, you can
+```sh
+git clone https://github.com/johnnynunez/detectron2
+```
+or you can try other 3rd detectron2 implementation.
+
+### 2. Download models
+download Semantic-SAM model to ComfyUI_SemanticSAM/ckpt
+
+
+
+| Name |
+Training Dataset |
+Backbone |
+1-IoU@Multi-Granularity |
+1-IoU@COCO(Max|Oracle) |
+download |
+
+ | Semantic-SAM | config |
+SA-1B |
+SwinT |
+88.1 |
+54.5|73.8 |
+model |
+
+
| Semantic-SAM | config |
+SA-1B |
+SwinL |
+89.0 |
+55.1|74.1 |
+model |
+
+
+
+### 3. Install environment
+Install [PyTorch & torchvision](https://pytorch.org/) through the official method. We have been valid that from pytorch 1.13.0 to 2.3.0.
+
+Install Semantic-SAM dependencies
+```sh
+pip install -r requirements.txt
+```
+
+Install detectron2
+```sh
+cd detectron2
+pip install -e .
+cd ..
+```
+Install Mask2Former
+```sh
+cd Mask2Former/mask2former/modeling/pixel_decoder/ops
+sh make.sh
+```
+
diff --git a/configs/semantic_sam_only_sa-1b_swinL.yaml b/configs/semantic_sam_only_sa-1b_swinL.yaml
index c8c7399..294bfd6 100755
--- a/configs/semantic_sam_only_sa-1b_swinL.yaml
+++ b/configs/semantic_sam_only_sa-1b_swinL.yaml
@@ -38,7 +38,7 @@ MODEL:
AUTOGRESSIVE: True
BACKBONE:
NAME: swin
- PRETRAINED: 'custom_nodes/ComfyUI_Semantic_SAM/ckpt/swin_large_patch4_window12_384_22k.pth'
+ PRETRAINED: 'custom_nodes/ComfyUI_SemanticSAM/ckpt/swin_large_patch4_window12_384_22k.pth'
LOAD_PRETRAINED: true
SWIN:
PRETRAIN_IMG_SIZE: 384
diff --git a/configs/semantic_sam_only_sa-1b_swinT.yaml b/configs/semantic_sam_only_sa-1b_swinT.yaml
index e0bce43..53ff061 100755
--- a/configs/semantic_sam_only_sa-1b_swinT.yaml
+++ b/configs/semantic_sam_only_sa-1b_swinT.yaml
@@ -38,7 +38,7 @@ MODEL:
AUTOGRESSIVE: True
BACKBONE:
NAME: swin
- PRETRAINED: 'https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_tiny_patch4_window7_224.pth'
+ PRETRAINED: 'custom_nodes/ComfyUI_SemanticSAM/ckpt/swin_tiny_patch4_window7_224.pth'
LOAD_PRETRAINED: true
SWIN:
PRETRAIN_IMG_SIZE: 224
diff --git a/examples/SemanticSAM.png b/examples/SemanticSAM.png
new file mode 100644
index 0000000000000000000000000000000000000000..957f03e48609afa67d61e3d85df779e4bf23fda1
GIT binary patch
literal 146317
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