Spaces:
Running
on
T4
Running
on
T4
liuyizhang
commited on
Commit
•
0dae273
1
Parent(s):
97f95b2
update app.py, add tencent_utils.py
Browse files- app.py +13 -2
- requirements.txt +8 -0
- tencent_utils.py +54 -0
app.py
CHANGED
@@ -46,6 +46,9 @@ lama_cleaner_enable = True
|
|
46 |
|
47 |
kosmos_enable = False
|
48 |
|
|
|
|
|
|
|
49 |
if os.environ.get('IS_MY_DEBUG') is not None:
|
50 |
sam_enable = False
|
51 |
ram_enable = False
|
@@ -93,6 +96,11 @@ if kosmos_enable:
|
|
93 |
|
94 |
from kosmos_utils import *
|
95 |
|
|
|
|
|
|
|
|
|
|
|
96 |
config_file = 'GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py'
|
97 |
ckpt_repo_id = "ShilongLiu/GroundingDINO"
|
98 |
ckpt_filenmae = "groundingdino_swint_ogc.pth"
|
@@ -558,6 +566,9 @@ def get_time_cost(run_task_time, time_cost_str):
|
|
558 |
def run_anything_task(input_image, text_prompt, task_type, inpaint_prompt, box_threshold, text_threshold,
|
559 |
iou_threshold, inpaint_mode, mask_source_radio, remove_mode, remove_mask_extend, num_relation, kosmos_input, cleaner_size_limit=1080):
|
560 |
|
|
|
|
|
|
|
561 |
run_task_time = 0
|
562 |
time_cost_str = ''
|
563 |
run_task_time, time_cost_str = get_time_cost(run_task_time, time_cost_str)
|
@@ -943,12 +954,12 @@ if __name__ == "__main__":
|
|
943 |
])
|
944 |
|
945 |
DESCRIPTION = f'### This demo from [Grounded-Segment-Anything](https://github.com/IDEA-Research/Grounded-Segment-Anything). <br>'
|
946 |
-
if ram_enable:
|
947 |
-
DESCRIPTION += f'RAM from [RelateAnything](https://github.com/Luodian/RelateAnything). <br>'
|
948 |
if lama_cleaner_enable:
|
949 |
DESCRIPTION += f'Remove(cleaner) from [lama-cleaner](https://github.com/Sanster/lama-cleaner). <br>'
|
950 |
if kosmos_enable:
|
951 |
DESCRIPTION += f'Kosmos-2 from [Kosmos-2](https://github.com/microsoft/unilm/tree/master/kosmos-2). <br>'
|
|
|
|
|
952 |
DESCRIPTION += f'Thanks for their excellent work.'
|
953 |
DESCRIPTION += f'<p>For faster inference without waiting in queue, you may duplicate the space and upgrade to GPU in settings. \
|
954 |
<a href="https://huggingface.co/spaces/yizhangliu/Grounded-Segment-Anything?duplicate=true"><img style="display: inline; margin-top: 0em; margin-bottom: 0em" src="https://bit.ly/3gLdBN6" alt="Duplicate Space" /></a></p>'
|
|
|
46 |
|
47 |
kosmos_enable = False
|
48 |
|
49 |
+
# qwen_enable = True
|
50 |
+
# from qwen_utils import *
|
51 |
+
|
52 |
if os.environ.get('IS_MY_DEBUG') is not None:
|
53 |
sam_enable = False
|
54 |
ram_enable = False
|
|
|
96 |
|
97 |
from kosmos_utils import *
|
98 |
|
99 |
+
from tencent_utils import get_tmt_client, getTextTrans_tmt
|
100 |
+
tmt_client = get_tmt_client()
|
101 |
+
def getTextTrans(text, source='zh', target='en'):
|
102 |
+
return getTextTrans_tmt(tmt_client, text, source, target)
|
103 |
+
|
104 |
config_file = 'GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py'
|
105 |
ckpt_repo_id = "ShilongLiu/GroundingDINO"
|
106 |
ckpt_filenmae = "groundingdino_swint_ogc.pth"
|
|
|
566 |
def run_anything_task(input_image, text_prompt, task_type, inpaint_prompt, box_threshold, text_threshold,
|
567 |
iou_threshold, inpaint_mode, mask_source_radio, remove_mode, remove_mask_extend, num_relation, kosmos_input, cleaner_size_limit=1080):
|
568 |
|
569 |
+
text_prompt = getTextTrans(text_prompt, source='zh', target='en')
|
570 |
+
inpaint_prompt = getTextTrans(inpaint_prompt, source='zh', target='en')
|
571 |
+
|
572 |
run_task_time = 0
|
573 |
time_cost_str = ''
|
574 |
run_task_time, time_cost_str = get_time_cost(run_task_time, time_cost_str)
|
|
|
954 |
])
|
955 |
|
956 |
DESCRIPTION = f'### This demo from [Grounded-Segment-Anything](https://github.com/IDEA-Research/Grounded-Segment-Anything). <br>'
|
|
|
|
|
957 |
if lama_cleaner_enable:
|
958 |
DESCRIPTION += f'Remove(cleaner) from [lama-cleaner](https://github.com/Sanster/lama-cleaner). <br>'
|
959 |
if kosmos_enable:
|
960 |
DESCRIPTION += f'Kosmos-2 from [Kosmos-2](https://github.com/microsoft/unilm/tree/master/kosmos-2). <br>'
|
961 |
+
if ram_enable:
|
962 |
+
DESCRIPTION += f'RAM from [RelateAnything](https://github.com/Luodian/RelateAnything). <br>'
|
963 |
DESCRIPTION += f'Thanks for their excellent work.'
|
964 |
DESCRIPTION += f'<p>For faster inference without waiting in queue, you may duplicate the space and upgrade to GPU in settings. \
|
965 |
<a href="https://huggingface.co/spaces/yizhangliu/Grounded-Segment-Anything?duplicate=true"><img style="display: inline; margin-top: 0em; margin-bottom: 0em" src="https://bit.ly/3gLdBN6" alt="Duplicate Space" /></a></p>'
|
requirements.txt
CHANGED
@@ -38,4 +38,12 @@ mmcv==2.0.0
|
|
38 |
mmengine
|
39 |
openmim==0.3.9
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
|
|
38 |
mmengine
|
39 |
openmim==0.3.9
|
40 |
|
41 |
+
tiktoken
|
42 |
+
einops
|
43 |
+
transformers_stream_generator==0.0.4
|
44 |
+
tensorboard
|
45 |
+
bitsandbytes
|
46 |
+
auto-gptq
|
47 |
+
|
48 |
+
tencentcloud-sdk-python
|
49 |
|
tencent_utils.py
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json, os
|
2 |
+
from tencentcloud.common import credential
|
3 |
+
from tencentcloud.common.profile.client_profile import ClientProfile
|
4 |
+
from tencentcloud.common.profile.http_profile import HttpProfile
|
5 |
+
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
|
6 |
+
from tencentcloud.tmt.v20180321 import tmt_client, models
|
7 |
+
|
8 |
+
def get_tmt_client():
|
9 |
+
try:
|
10 |
+
# 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
|
11 |
+
# 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
|
12 |
+
# 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
|
13 |
+
SecretId = os.environ.get("TENCENTCLOUD_SECRET_ID")
|
14 |
+
SecretKey = os.environ.get("TENCENTCLOUD_SECRET_KEY")
|
15 |
+
cred = credential.Credential(SecretId, SecretKey)
|
16 |
+
# 实例化一个http选项,可选的,没有特殊需求可以跳过
|
17 |
+
httpProfile = HttpProfile()
|
18 |
+
httpProfile.endpoint = "tmt.tencentcloudapi.com"
|
19 |
+
|
20 |
+
# 实例化一个client选项,可选的,没有特殊需求可以跳过
|
21 |
+
clientProfile = ClientProfile()
|
22 |
+
clientProfile.httpProfile = httpProfile
|
23 |
+
# 实例化要请求产品的client对象,clientProfile是可选的
|
24 |
+
client = tmt_client.TmtClient(cred, "ap-shanghai", clientProfile)
|
25 |
+
print(f'client_{client}')
|
26 |
+
return client
|
27 |
+
except TencentCloudSDKException as err:
|
28 |
+
print(f'client_err_{err}')
|
29 |
+
return None
|
30 |
+
|
31 |
+
def getTextTrans_tmt(tmt_client, text, source='zh', target='en'):
|
32 |
+
def is_chinese(string):
|
33 |
+
for ch in string:
|
34 |
+
if u'\u4e00' <= ch <= u'\u9fff':
|
35 |
+
return True
|
36 |
+
return False
|
37 |
+
|
38 |
+
if tmt_client is None:
|
39 |
+
return text
|
40 |
+
if not is_chinese(text) and target == 'en':
|
41 |
+
return text
|
42 |
+
try:
|
43 |
+
req = models.TextTranslateRequest()
|
44 |
+
params = {
|
45 |
+
"SourceText": text,
|
46 |
+
"Source": source,
|
47 |
+
"Target": target,
|
48 |
+
"ProjectId": 0
|
49 |
+
}
|
50 |
+
req.from_json_string(json.dumps(params))
|
51 |
+
resp = tmt_client.TextTranslate(req)
|
52 |
+
return resp.TargetText
|
53 |
+
except Exception as e:
|
54 |
+
return text
|