feat 模特预处理接口
fix
This commit is contained in:
@@ -3,8 +3,9 @@ import logging
|
|||||||
|
|
||||||
from fastapi import APIRouter, HTTPException
|
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.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.service import generate
|
||||||
from app.service.design.utils.redis_utils import Redis
|
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}")
|
logger.warning(f"get_progress Run Exception @@@@@@:{e}")
|
||||||
raise HTTPException(status_code=404, detail=str(e))
|
raise HTTPException(status_code=404, detail=str(e))
|
||||||
return ResponseModel(data=data)
|
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)
|
||||||
|
|||||||
@@ -52,3 +52,7 @@ class DesignModel(BaseModel):
|
|||||||
|
|
||||||
class DesignProgressModel(BaseModel):
|
class DesignProgressModel(BaseModel):
|
||||||
process_id: str
|
process_id: str
|
||||||
|
|
||||||
|
|
||||||
|
class ModelProgressModel(BaseModel):
|
||||||
|
model_path: str
|
||||||
|
|||||||
28
app/service/design/model_process_service.py
Normal file
28
app/service/design/model_process_service.py
Normal 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
|
||||||
@@ -55,12 +55,12 @@ if __name__ == '__main__':
|
|||||||
# url = "aida-collection-element/11523/Moodboard/f60af0d2-94c2-48f9-90ff-74b8e8a481b5.jpg"
|
# url = "aida-collection-element/11523/Moodboard/f60af0d2-94c2-48f9-90ff-74b8e8a481b5.jpg"
|
||||||
# url = "aida-sys-image/images/female/outwear/0628000054.jpg"
|
# url = "aida-sys-image/images/female/outwear/0628000054.jpg"
|
||||||
# url = "aida-users/89/product_image/string-89.png"
|
# 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/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"
|
# url = "aida-users/89/sketchboard/female/Dress/e6724ab7-8d3f-4677-abe0-c3e42ab7af85.jpeg"
|
||||||
read_type = "cv2"
|
read_type = "PIL "
|
||||||
if read_type == "cv2":
|
if read_type == "cv2":
|
||||||
img = oss_get_image(bucket=url.split('/')[0], object_name=url[url.find('/') + 1:], data_type=read_type)
|
img = oss_get_image(bucket=url.split('/')[0], object_name=url[url.find('/') + 1:], data_type=read_type)
|
||||||
cv2.imshow("", img)
|
cv2.imshow("", img)
|
||||||
|
|||||||
Reference in New Issue
Block a user