clip_demo / utils.py
Yougen's picture
Update utils.py
4142f6f verified
import os
from PIL import Image
from PIL import ImageFile
import requests
import base64
from io import BytesIO
clip_base = "CLIP(Base)"
description = "本项目为CLIP模型的DEMO,可用于图文检索和图像、文本的表征提取,应用于搜索、推荐等应用场景。"
yes = "是"
no = "否"
#server_ip = os.environ.get("CLIP_SERVER_IP", "9.135.121.52")
server_ip = os.environ.get("CLIP_SERVER_IP", "127.0.0.1")
clip_service_url_d = {
clip_base: f'http://{server_ip}/knn-service',
}
def pil_base64(image, img_format="JPEG"):
Image.MAX_IMAGE_PIXELS = 1000000000
ImageFile.LOAD_TRUNCATED_IMAGES = True
img_buffer = BytesIO()
image.save(img_buffer, format=img_format)
byte_data = img_buffer.getvalue()
base64_str = base64.b64encode(byte_data)
return base64_str.decode("utf-8")
def url2img(img_url, thumbnail=yes):
try:
print(img_url, thumbnail)
#image = Image.open(requests.get(img_url, stream=True).raw)
path = img_url.split("9.22.26.31")[1]
image = Image.open(path).convert("RGB")
max_ = max(image.size)
if max_ > 224 and thumbnail == yes:
ratio = max_ // 224
image.thumbnail(size=(image.width // ratio, image.height // ratio))
return image
except Exception as e:
print(e)