runnable version
parent
24268ef702
commit
63b69324bc
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 9dac4c605b40d87d82bfff5961467556f4d381a9
|
||||
15
README.md
15
README.md
|
|
@ -1,29 +1,18 @@
|
|||
# Segment Anything for Stable Diffusion WebUI
|
||||
|
||||
**This branch is still developing. I discourage you to use it before I remove this warning from README.**
|
||||
This **developing** branch attempts to enable [GroundingDINO](https://github.com/IDEA-Research/GroundingDINO), achieving the goal of text prompt->object detection->segment anything->stable diffusion inpainting.
|
||||
|
||||
This branch attemts to enable [GroundingDINO](https://github.com/IDEA-Research/GroundingDINO), achieving the goal of text prompt->object detection->segment anything->stable diffusion inpainting.
|
||||
|
||||
Warning: You may have a lot trouble using this extension from this branch, due to several incompability of SAM, GroundingDINO, etc. Please follow these steps to bypass potential error.
|
||||
|
||||
- If you see `ModuleNotFoundError: No module named 'groundingdino'` on your terminal, restart your webui may help.
|
||||
- You may need a long time to get GroundingDINO and its dependency build, because they have C++.
|
||||
Warning: You may need a long time to get GroundingDINO and its dependency build, because they have C++.
|
||||
|
||||
To use this extension, simply run `git checkout GroundingDINO` on your terminal after `cd` to this extension directory. This branch will be merged to master branch someday, when I think it is stable enough.
|
||||
|
||||
## Help Wanted
|
||||
|
||||
If anyone know a good solution of installing `GroundingDINO`, please let me know and submit a pull request. My way of installment (in `install.py`) needs a restart, which is honestly not clean. I have not found another way of installing `GroundingDINO`
|
||||
|
||||
## Next Step:
|
||||
|
||||
- Find a smooth way to install GroundingDINO without restart
|
||||
- point + detection, find a best way to satisfy need:
|
||||
- 0 point + N detection->box: BHW, mask: BCHW
|
||||
- ALL point + 1 detection->3 images
|
||||
- Preview detection + select the best
|
||||
|
||||
|
||||
## How to Use
|
||||
|
||||
TODO
|
||||
|
|
|
|||
|
|
@ -8,10 +8,7 @@ with open(req_file) as file:
|
|||
for lib in file:
|
||||
lib = lib.strip()
|
||||
if not launch.is_installed(lib):
|
||||
if lib == "groundingdino":
|
||||
lib = "git+https://github.com/IDEA-Research/GroundingDINO"
|
||||
launch.run_pip(
|
||||
f"install {lib}", f"sd-webui-segment-anything requirement: {lib}")
|
||||
|
||||
# dino_dir = os.path.join(current_dir, "GroundingDINO")
|
||||
# launch.git_clone("https://github.com/IDEA-Research/GroundingDINO.git", dino_dir, "GroundingDINO")
|
||||
# launch.run(f"{launch.python} -m pip install -e {dino_dir}")
|
||||
launch.git_clone()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
batch_size = 1
|
||||
modelname = "groundingdino"
|
||||
backbone = "swin_B_384_22k"
|
||||
position_embedding = "sine"
|
||||
pe_temperatureH = 20
|
||||
pe_temperatureW = 20
|
||||
return_interm_indices = [1, 2, 3]
|
||||
backbone_freeze_keywords = None
|
||||
enc_layers = 6
|
||||
dec_layers = 6
|
||||
pre_norm = False
|
||||
dim_feedforward = 2048
|
||||
hidden_dim = 256
|
||||
dropout = 0.0
|
||||
nheads = 8
|
||||
num_queries = 900
|
||||
query_dim = 4
|
||||
num_patterns = 0
|
||||
num_feature_levels = 4
|
||||
enc_n_points = 4
|
||||
dec_n_points = 4
|
||||
two_stage_type = "standard"
|
||||
two_stage_bbox_embed_share = False
|
||||
two_stage_class_embed_share = False
|
||||
transformer_activation = "relu"
|
||||
dec_pred_bbox_embed_share = True
|
||||
dn_box_noise_scale = 1.0
|
||||
dn_label_noise_ratio = 0.5
|
||||
dn_label_coef = 1.0
|
||||
dn_bbox_coef = 1.0
|
||||
embed_init_tgt = True
|
||||
dn_labelbook_size = 2000
|
||||
max_text_len = 256
|
||||
text_encoder_type = "bert-base-uncased"
|
||||
use_text_enhancer = True
|
||||
use_fusion_layer = True
|
||||
use_checkpoint = True
|
||||
use_transformer_ckpt = True
|
||||
use_text_cross_attention = True
|
||||
text_dropout = 0.0
|
||||
fusion_dropout = 0.0
|
||||
fusion_droppath = 0.1
|
||||
sub_sentence_present = True
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
batch_size = 1
|
||||
modelname = "groundingdino"
|
||||
backbone = "swin_T_224_1k"
|
||||
position_embedding = "sine"
|
||||
pe_temperatureH = 20
|
||||
pe_temperatureW = 20
|
||||
return_interm_indices = [1, 2, 3]
|
||||
backbone_freeze_keywords = None
|
||||
enc_layers = 6
|
||||
dec_layers = 6
|
||||
pre_norm = False
|
||||
dim_feedforward = 2048
|
||||
hidden_dim = 256
|
||||
dropout = 0.0
|
||||
nheads = 8
|
||||
num_queries = 900
|
||||
query_dim = 4
|
||||
num_patterns = 0
|
||||
num_feature_levels = 4
|
||||
enc_n_points = 4
|
||||
dec_n_points = 4
|
||||
two_stage_type = "standard"
|
||||
two_stage_bbox_embed_share = False
|
||||
two_stage_class_embed_share = False
|
||||
transformer_activation = "relu"
|
||||
dec_pred_bbox_embed_share = True
|
||||
dn_box_noise_scale = 1.0
|
||||
dn_label_noise_ratio = 0.5
|
||||
dn_label_coef = 1.0
|
||||
dn_bbox_coef = 1.0
|
||||
embed_init_tgt = True
|
||||
dn_labelbook_size = 2000
|
||||
max_text_len = 256
|
||||
text_encoder_type = "bert-base-uncased"
|
||||
use_text_enhancer = True
|
||||
use_fusion_layer = True
|
||||
use_checkpoint = True
|
||||
use_transformer_ckpt = True
|
||||
use_text_cross_attention = True
|
||||
text_dropout = 0.0
|
||||
fusion_dropout = 0.0
|
||||
fusion_droppath = 0.1
|
||||
sub_sentence_present = True
|
||||
|
|
@ -1 +1,2 @@
|
|||
segment_anything
|
||||
groundingdino
|
||||
|
|
@ -7,10 +7,10 @@ from modules import scripts, shared
|
|||
from modules.devices import device, torch_gc, cpu
|
||||
|
||||
# Grounding DINO
|
||||
import GroundingDINO.groundingdino.datasets.transforms as T
|
||||
from GroundingDINO.groundingdino.models import build_model
|
||||
from GroundingDINO.groundingdino.util.slconfig import SLConfig
|
||||
from GroundingDINO.groundingdino.util.utils import clean_state_dict
|
||||
import groundingdino.datasets.transforms as T
|
||||
from groundingdino.models import build_model
|
||||
from groundingdino.util.slconfig import SLConfig
|
||||
from groundingdino.util.utils import clean_state_dict
|
||||
|
||||
|
||||
dino_model_cache = OrderedDict()
|
||||
|
|
@ -21,12 +21,12 @@ dino_model_info = {
|
|||
"repo_id": "ShilongLiu/GroundingDINO",
|
||||
"GroundingDINO_SwinT_OGC (694MB)": {
|
||||
"checkpoint": "groundingdino_swint_ogc.pth",
|
||||
"config": os.path.join(scripts.basedir(), "GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py"),
|
||||
"url": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/groundingdino_swint_ogc.pth"
|
||||
"config": os.path.join(dino_model_dir, "GroundingDINO_SwinT_OGC.py"),
|
||||
"url": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/groundingdino_swint_ogc.pth",
|
||||
},
|
||||
"GroundingDINO_SwinB (938MB)": {
|
||||
"checkpoint": "groundingdino_swinb_cogcoor.pth",
|
||||
"config": os.path.join(scripts.basedir(), "GroundingDINO/groundingdino/config/GroundingDINO_SwinB.cfg.py"),
|
||||
"config": os.path.join(dino_model_dir, "GroundingDINO_SwinB.cfg.py"),
|
||||
"url": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/groundingdino_swinb_cogcoor.pth"
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue