Spaces:
Running
on
T4
Running
on
T4
import requests, json | |
from PIL import Image | |
import matplotlib.pyplot as plt | |
import numpy as np | |
import base64 | |
import io | |
def request_post(url, data, timeout=600, headers = None): | |
if headers is None: | |
headers = { | |
# 'content-type': 'application/json' | |
# 'Connection': 'keep-alive', | |
'Accept': '*/*', # 接受任何类型的返回数据 | |
'Content-Type': 'application/json;charset=UTF-8', # 发送数据为json | |
# 'Content-Length': '156', | |
# 'Accept-Encoding': 'gzip, deflate', | |
# 'Accept-Language': 'zh-CN,zh;q=0.9', | |
# 'User-Agent': 'SamClub/5.0.45 (iPhone; iOS 15.4; Scale/3.00)', | |
# 'device-name': 'iPhone14,3', | |
# 'device-os-version': '15.4', | |
# 'device-type': 'ios', | |
# 'auth-token': authtoken, | |
# 'app-version': '5.0.45.1' | |
} | |
try: | |
response = requests.post(url=url, headers=headers, data=json.dumps(data), timeout=timeout) | |
response_data = response.json() | |
return response_data | |
except Exception as e: | |
print(f'request_post[Error]:' + str(e)) | |
print(f'url: {url}') | |
print(f'data: {data}') | |
print(f'response: {response}') | |
return None | |
url = "http://127.0.0.1:7860/imgCLeaner" | |
def imgFile_to_base64(image_file): | |
with open(image_file, "rb") as f: | |
im_bytes = f.read() | |
im_b64_encode = base64.b64encode(im_bytes) | |
im_b64 = im_b64_encode.decode("utf8") | |
return im_b64 | |
def base64_to_bytes(im_b64): | |
im_b64_encode = im_b64.encode("utf-8") | |
im_bytes = base64.b64decode(im_b64_encode) | |
return im_bytes | |
def base64_to_PILImage(im_b64): | |
im_bytes = base64_to_bytes(im_b64) | |
pil_img = Image.open(io.BytesIO(im_bytes)) | |
return pil_img | |
def cleaner_img(image_file, remove_texts, mask_extend=20, disp_debug=True): | |
data = {'remove_texts': remove_texts, | |
'mask_extend': mask_extend, | |
'img': imgFile_to_base64(image_file), | |
} | |
ret = request_post(url, data, timeout=600, headers = None) | |
if ret['code'] == 0: | |
if disp_debug: | |
for img in ret['result']['imgs']: | |
pilImage = base64_to_PILImage(img) | |
plt.imshow(pilImage) | |
plt.show() | |
plt.clf() | |
plt.close('all') | |
img_len = len(ret['result']['imgs']) | |
pilImage = base64_to_PILImage(ret['result']['imgs'][img_len-1]) | |
else: | |
pilImage = None | |
return pilImage, ret | |
image_file = 'dog.png' | |
remove_texts = "小狗 . 椅子" | |
mask_extend = 20 | |
pil_image, ret = cleaner_img(image_file, remove_texts, mask_extend, disp_debug=False) | |
plt.imshow(pil_image) | |
plt.show() | |
plt.clf() | |
plt.close() | |