import json import logging from fastapi import APIRouter, BackgroundTasks, HTTPException from app.schemas.generate_image import GenerateImageModel, GenerateProductImageModel, GenerateSingleLogoImageModel from app.schemas.response_template import ResponseModel from app.service.generate_image.service_generate_image import GenerateImage, infer_cancel as generate_image_infer_cancel from app.service.generate_image.service_generate_product_image import GenerateProductImage, infer_cancel as generate_product_image_cancel from app.service.generate_image.service_generate_relight_image import GenerateRelightImage, infer_cancel as generate_relight_image_cancel from app.service.generate_image.service_generate_single_logo import GenerateSingleLogoImage, infer_cancel as generate_single_logo_cancel router = APIRouter() logger = logging.getLogger() '''generate image''' @router.post("/generate_image") def generate_image(request_item: GenerateImageModel, background_tasks: BackgroundTasks): try: logger.info(f"generate_image request item is : @@@@@@:{request_item}") service = GenerateImage(request_item) background_tasks.add_task(service.get_result) except Exception as e: logger.warning(f"generate_image Run Exception @@@@@@:{e}") raise HTTPException(status_code=404, detail=str(e)) return ResponseModel() @router.get("/generate_cancel/{tasks_id}") def generate_image(tasks_id: str): try: logger.info(f"generate_cancel request item is : @@@@@@:{tasks_id}") data = generate_image_infer_cancel(tasks_id) logger.info(f"generate_cancel response @@@@@@:{json.dumps(data, indent=4)}") except Exception as e: logger.warning(f"generate_cancel Run Exception @@@@@@:{e}") raise HTTPException(status_code=404, detail=str(e)) return ResponseModel(data=data['data']) '''single logo''' @router.post("/generate_single_logo") def generate_single_logo(request_item: GenerateSingleLogoImageModel, background_tasks: BackgroundTasks): try: logger.info(f"generate_single_logo request item is : @@@@@@:{request_item}") service = GenerateSingleLogoImage(request_item) background_tasks.add_task(service.get_result) except Exception as e: logger.warning(f"generate_single_logo Run Exception @@@@@@:{e}") raise HTTPException(status_code=404, detail=str(e)) return ResponseModel() @router.get("/generate_single_logo_cancel/{tasks_id}") def generate_single_logo_image(tasks_id: str): try: logger.info(f"generate_single_logo_cancel request item is : @@@@@@:{tasks_id}") data = generate_single_logo_cancel(tasks_id) logger.info(f"generate_single_logo_cancel response @@@@@@:{json.dumps(data, indent=4)}") except Exception as e: logger.warning(f"generate_single_logo_cancel Run Exception @@@@@@:{e}") raise HTTPException(status_code=404, detail=str(e)) return ResponseModel(data=data['data']) '''product image''' @router.post("/generate_product_image") def generate_product_image(request_item: GenerateProductImageModel, background_tasks: BackgroundTasks): try: logger.info(f"generate_product_image request item is : @@@@@@:{request_item}") service = GenerateProductImage(request_item) background_tasks.add_task(service.get_result) except Exception as e: logger.warning(f"generate_product_image Run Exception @@@@@@:{e}") raise HTTPException(status_code=404, detail=str(e)) return ResponseModel() @router.get("/generate_product_image_cancel_cancel/{tasks_id}") def generate_product_image(tasks_id: str): try: logger.info(f"generate_product_image_cancel_cancel request item is : @@@@@@:{tasks_id}") data = generate_product_image_cancel(tasks_id) logger.info(f"generate_product_image_cancel_cancel response @@@@@@:{json.dumps(data, indent=4)}") except Exception as e: logger.warning(f"generate_product_image_cancel_cancel Run Exception @@@@@@:{e}") raise HTTPException(status_code=404, detail=str(e)) return ResponseModel(data=data['data']) '''relight image''' @router.post("/generate_relight_image") def generate_relight_image(request_item: GenerateProductImageModel, background_tasks: BackgroundTasks): try: logger.info(f"generate_relight_image request item is : @@@@@@:{request_item}") service = GenerateRelightImage(request_item) background_tasks.add_task(service.get_result) except Exception as e: logger.warning(f"generate_relight_image Run Exception @@@@@@:{e}") raise HTTPException(status_code=404, detail=str(e)) return ResponseModel() @router.get("/generate_relight_image_cancel_cancel/{tasks_id}") def generate_relight_image(tasks_id: str): try: logger.info(f"generate_relight_image_cancel_cancel request item is : @@@@@@:{tasks_id}") data = generate_relight_image_cancel(tasks_id) logger.info(f"generate_relight_image_cancel_cancel response @@@@@@:{json.dumps(data, indent=4)}") except Exception as e: logger.warning(f"generate_relight_image_cancel_cancel Run Exception @@@@@@:{e}") raise HTTPException(status_code=404, detail=str(e)) return ResponseModel(data=data['data'])