Files
AiDA_Python/app/api/api_image2sketch.py

47 lines
1.6 KiB
Python
Raw Normal View History

2024-08-14 16:45:34 +08:00
import json
import logging
2024-08-15 10:24:19 +08:00
import time
2024-08-14 16:45:34 +08:00
from fastapi import APIRouter, HTTPException
from app.schemas.image2sketch import Image2SketchModel
from app.schemas.response_template import ResponseModel
2024-09-30 10:57:12 +08:00
from app.service.image2sketch_2.server import processing_pipeline
2024-08-14 16:45:34 +08:00
router = APIRouter()
logger = logging.getLogger()
@router.post("/image2sketch")
def image2sketch(request_item: Image2SketchModel):
"""
创建一个具有以下参数的请求体:
- **image_url**: 提取图片url
- **style_image_url**: 被模仿sketch图片url
- **default_style**: 默认风格 粗1中2细3
- **sketch_bucket**: sketch保存的bucket
- **sketch_name**: sketch保存的object name
2024-08-14 16:45:34 +08:00
示例参数
{
"image_url": "test/image2sketch/real_Dress_3200fecdc83d0c556c2bd96aedbd7fbf.jpg_Img.jpg",
2024-09-30 10:57:12 +08:00
"default_style": 0,
"sketch_bucket": "test",
"sketch_name": "image2sketch/test.png"
2024-08-14 16:45:34 +08:00
}
"""
2024-08-14 17:24:03 +08:00
try:
2024-08-15 10:24:19 +08:00
start_time = time.time()
2024-08-14 17:24:03 +08:00
logger.info(f"image2sketch request item is : @@@@@@:{json.dumps(request_item.dict())}")
2024-09-30 10:57:12 +08:00
sketch_url = processing_pipeline(
image_url=request_item.image_url,
thickness=request_item.default_style,
sketch_bucket=request_item.sketch_bucket,
sketch_name=request_item.sketch_name
)
2024-08-15 10:24:19 +08:00
logger.info(f"run time is : {time.time() - start_time}")
2024-08-14 17:24:03 +08:00
except Exception as e:
logger.warning(f"image2sketch Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
2024-08-14 16:45:34 +08:00
return ResponseModel(data=sketch_url)