Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
shahaibo
2025-03-19 15:05:48 +08:00
12 changed files with 438 additions and 2 deletions

View File

@@ -0,0 +1,19 @@
import io
import logging
from fastapi import APIRouter, HTTPException
from starlette.responses import StreamingResponse
from app.schemas.response_template import ResponseModel
from app.service.generate_image.agent_generate import GenerateImage
router = APIRouter()
logger = logging.getLogger()
@router.get("/agent_generate_image")
def generate_image(prompt: str):
server = GenerateImage()
byte_stream = server.get_result(prompt)
# 返回流式响应
return StreamingResponse(byte_stream, media_type="image/png")

View File

@@ -0,0 +1,40 @@
import json
import logging
from fastapi import APIRouter, HTTPException
from app.schemas.mannequin_edit import MannequinModel
from app.schemas.response_template import ResponseModel
from app.service.mannequins_edit.service import MannequinEditService
router = APIRouter()
logger = logging.getLogger()
@router.post("/mannequins_edit")
def mannequins_edit(request_data: MannequinModel):
"""
模特腿长调整
创建一个具有以下参数的请求体:
- **mannequins**: mannequins url等信息
- **scale**: 大腿小腿比例
- **bucket_name**: bucket name
- **mannequin_name**: 模特名称
示例参数:
- **{
"mannequins": "aida-sys-image/models/male/dc36ce58-46c3-4b6f-8787-5ca7d6fc26e6.png",
"scale": [0.75, 0.75],
"bucket_name": "test",
"mannequin_name": "mannequin_name"
}**
"""
try:
logger.info(f"mannequins_edit request item is : @@@@@@:{json.dumps(request_data.dict())}")
service = MannequinEditService(request_data)
data = service()
logger.info(f"mannequins_edit response @@@@@@:{json.dumps(data)}")
except Exception as e:
logger.warning(f"mannequins_edit Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data)

View File

@@ -0,0 +1,49 @@
import json
import logging
from fastapi import APIRouter, BackgroundTasks, HTTPException
from app.schemas.pose_transform import PoseTransformModel
from app.schemas.response_template import ResponseModel
from app.service.generate_image.service_pose_transform import PoseTransformService, infer_cancel as pose_transform_infer_cancel
router = APIRouter()
logger = logging.getLogger()
@router.post("/pose_transform")
def pose_transform(request_item: PoseTransformModel, background_tasks: BackgroundTasks):
"""
创建一个具有以下参数的请求体:
- **tasks_id**: 任务id 用于取消生成任务和获取生成结果
- **image_url**: 被生成图片的S3或minio url地址
- **pose_id**: 1
示例参数:
{
"tasks_id": "123-89",
"image_url": "aida-results/result_0000b606-1902-11ef-9424-0242ac180002.png",
"pose_id": "1"
}
"""
try:
logger.info(f"pose_transform request item is : @@@@@@:{json.dumps(request_item.dict())}")
service = PoseTransformService(request_item)
background_tasks.add_task(service.get_result)
except Exception as e:
logger.warning(f"pose_transform Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel()
@router.get("/pose_transform_cancel/{tasks_id}")
def pose_transform_cancel(tasks_id: str):
try:
logger.info(f"pose_transform_cancel request item is : @@@@@@:{tasks_id}")
data = pose_transform_infer_cancel(tasks_id)
logger.info(f"pose_transform_cancel response @@@@@@:{data}")
except Exception as e:
logger.warning(f"pose_transform_cancel Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data['data'])

View File

@@ -1,5 +1,6 @@
from fastapi import APIRouter
from app.api import api_agent_generate_image, api_recommendation
from app.api import api_attribute_retrieve, api_query_image
from app.api import api_brand_dna
from app.api import api_brighten
@@ -8,9 +9,10 @@ from app.api import api_design
from app.api import api_design_pre_processing
from app.api import api_generate_image
from app.api import api_image2sketch
from app.api import api_mannequins_edit
from app.api import api_pose_transform
from app.api import api_prompt_generation
from app.api import api_super_resolution
from app.api import api_recommendation
from app.api import api_test
router = APIRouter()
@@ -28,3 +30,6 @@ router.include_router(api_brighten.router, tags=['api_brighten'], prefix="/api")
router.include_router(api_query_image.router, tags=['api_query_image'], prefix="/api")
router.include_router(api_brand_dna.router, tags=['api_brand_dna'], prefix="/api")
router.include_router(api_recommendation.router, tags=['api_recommendation'], prefix="/api")
router.include_router(api_mannequins_edit.router, tags=['api_mannequins_edit'], prefix="/api")
router.include_router(api_agent_generate_image.router, tags=['api_agent_generate_image'], prefix="/api")
router.include_router(api_pose_transform.router, tags=['api_pose_transform'], prefix="/api")