feat 模特预处理接口

fix
This commit is contained in:
zhouchengrong
2024-06-24 16:35:34 +08:00
parent d827147e8a
commit 26a56b4d9f
4 changed files with 49 additions and 3 deletions

View File

@@ -3,8 +3,9 @@ import logging
from fastapi import APIRouter, HTTPException
from app.schemas.design import DesignModel, DesignProgressModel
from app.schemas.design import DesignModel, DesignProgressModel, ModelProgressModel
from app.schemas.response_template import ResponseModel
from app.service.design.model_process_service import model_transpose
from app.service.design.service import generate
from app.service.design.utils.redis_utils import Redis
@@ -38,3 +39,16 @@ def get_progress(request_data: DesignProgressModel):
logger.warning(f"get_progress Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data)
@router.post('/model_process')
def model_process(request_data: ModelProgressModel):
try:
logger.info(f"model_process request item is : @@@@@@:{request_data.dict()}")
data = model_transpose(image_path=request_data.model_path)
logger.info(f"model_process response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
logger.warning(f"model_process Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data)

View File

@@ -52,3 +52,7 @@ class DesignModel(BaseModel):
class DesignProgressModel(BaseModel):
process_id: str
class ModelProgressModel(BaseModel):
model_path: str

View File

@@ -0,0 +1,28 @@
import io
from app.service.utils.oss_client import oss_get_image, oss_upload_image
def model_transpose(image_path):
bucket = image_path.split("/", 1)[0]
object_name = image_path.split("/", 1)[1]
new_object_name = f'{object_name[:object_name.rfind(".")]}.png'
image = oss_get_image(bucket=bucket, object_name=object_name, data_type="PIL")
image = image.convert("RGBA")
data = image.getdata()
#
new_data = []
for item in data:
if item[0] >= 230 and item[1] >= 230 and item[2] >= 230:
new_data.append((255, 255, 255, 0))
else:
new_data.append(item)
image.putdata(new_data)
image_data = io.BytesIO()
image.save(image_data, format='PNG')
image_data.seek(0)
image_bytes = image_data.read()
oss_upload_image(bucket=bucket, object_name=new_object_name, image_bytes=image_bytes)
image_path = f"{bucket}/{new_object_name}"
return image_path

View File

@@ -55,12 +55,12 @@ if __name__ == '__main__':
# url = "aida-collection-element/11523/Moodboard/f60af0d2-94c2-48f9-90ff-74b8e8a481b5.jpg"
# url = "aida-sys-image/images/female/outwear/0628000054.jpg"
# url = "aida-users/89/product_image/string-89.png"
url = "aida-users/89/single_logo/123-89.png"
url = "test/845046c7-4f62-4f54-a4a9-c26d49c6969335b5b3a9-d335-4871-a46c-3cc3caf07da259629dfd1f1f555a2e2a9def7e719366.png"
# url = 'aida-users/89/relight_image/123-89.png'
# url = 'aida-users/89/relight_image/123-89.png'
# url = 'aida-users/89/relight_image/123-89.png'
# url = "aida-users/89/sketchboard/female/Dress/e6724ab7-8d3f-4677-abe0-c3e42ab7af85.jpeg"
read_type = "cv2"
read_type = "PIL "
if read_type == "cv2":
img = oss_get_image(bucket=url.split('/')[0], object_name=url[url.find('/') + 1:], data_type=read_type)
cv2.imshow("", img)