2024-10-07 10:27:25 +08:00
|
|
|
|
import json
|
2024-08-14 16:45:34 +08:00
|
|
|
|
import logging
|
|
|
|
|
|
|
|
|
|
|
|
from fastapi import APIRouter, HTTPException
|
|
|
|
|
|
|
|
|
|
|
|
from app.schemas.image2sketch import Image2SketchModel
|
|
|
|
|
|
from app.schemas.response_template import ResponseModel
|
2024-10-03 14:51:21 +08:00
|
|
|
|
from app.service.lineart.service import LineArtService
|
2024-08-14 16:45:34 +08:00
|
|
|
|
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
logger = logging.getLogger()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.post("/image2sketch")
|
|
|
|
|
|
def image2sketch(request_item: Image2SketchModel):
|
|
|
|
|
|
"""
|
|
|
|
|
|
创建一个具有以下参数的请求体:
|
2024-08-19 10:56:21 +08:00
|
|
|
|
- **image_url**: 提取图片url
|
2024-09-30 11:03:32 +08:00
|
|
|
|
- **default_style**: 原始、 1、2、3、4、5
|
2024-08-19 10:56:21 +08:00
|
|
|
|
- **sketch_bucket**: sketch保存的bucket
|
|
|
|
|
|
- **sketch_name**: sketch保存的object name
|
2024-08-14 16:45:34 +08:00
|
|
|
|
|
|
|
|
|
|
示例参数:
|
|
|
|
|
|
{
|
2024-09-20 17:03:48 +08:00
|
|
|
|
"image_url": "test/image2sketch/real_Dress_3200fecdc83d0c556c2bd96aedbd7fbf.jpg_Img.jpg",
|
2024-09-30 10:57:12 +08:00
|
|
|
|
"default_style": 0,
|
2024-09-20 17:03:48 +08:00
|
|
|
|
"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-10-07 10:27:25 +08:00
|
|
|
|
logger.info(f"image2sketch request item is : @@@@@@:{json.dumps(request_item.dict())}")
|
2024-10-03 14:51:21 +08:00
|
|
|
|
service = LineArtService(request_item)
|
|
|
|
|
|
result_url = service.get_result()
|
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-10-03 14:51:21 +08:00
|
|
|
|
return ResponseModel(data=result_url)
|