feat: 新增to product img flux2 版,停用sdxl版
All checks were successful
git commit AiDA python develop 分支构建部署 / scheduled_deploy (push) Has been skipped

fix:
This commit is contained in:
zcr
2026-01-26 15:19:28 +08:00
parent 863d9287dc
commit cdaeb6daac
2 changed files with 71 additions and 30 deletions

View File

@@ -1,9 +1,11 @@
import json import json
import logging import logging
import requests
from fastapi import APIRouter, BackgroundTasks, HTTPException from fastapi import APIRouter, BackgroundTasks, HTTPException
from app.schemas.generate_image import GenerateImageModel, GenerateProductImageModel, GenerateSingleLogoImageModel, GenerateRelightImageModel, GenerateMultiViewModel, BatchGenerateProductImageModel, BatchGenerateRelightImageModel, AgentTollGenerateImageModel from app.core.config import settings
from app.schemas.generate_image import GenerateImageModel, GenerateProductImageModel, GenerateSingleLogoImageModel, GenerateRelightImageModel, GenerateMultiViewModel, BatchGenerateProductImageModel, BatchGenerateRelightImageModel, AgentTollGenerateImageModel, Flux2ToProductImgModel
from app.schemas.pose_transform import BatchPoseTransformModel from app.schemas.pose_transform import BatchPoseTransformModel
from app.schemas.response_template import ResponseModel from app.schemas.response_template import ResponseModel
from app.service.generate_batch_image.service import start_product_batch_generate, start_relight_batch_generate, start_pose_transform_batch_generate from app.service.generate_batch_image.service import start_product_batch_generate, start_relight_batch_generate, start_pose_transform_batch_generate
@@ -154,49 +156,81 @@ def generate_single_logo_image(tasks_id: str):
return ResponseModel(data=data['data']) return ResponseModel(data=data['data'])
'''product image''' """product image flux2.0"""
@router.post("/generate_product_image") @router.post("/img_to_product")
def generate_product_image(request_item: GenerateProductImageModel, background_tasks: BackgroundTasks): async def img_to_product(request_data: Flux2ToProductImgModel):
""" """
创建一个具有以下参数的请求体: 创建一个具有以下参数的请求体:
- **tasks_id**: 任务id 用于取消生成任务和获取生成结果 - **tasks_id**: 任务id 用于取消生成任务和获取生成结果
- **prompt**: 想要生成图片的描述词 - **prompt**: 想要生成图片的描述词
- **image_url**: 被生成图片的S3或minio url地址 - **image_path**: 被生成图片的S3或minio url地址
- **image_strength**: 生成强度,越低越接近原图 - **infer_step**: 推理步数
- **product_type**: 输入single item 还是 overall item
### 请求体示例:
示例参数: ```json
point
{ {
"tasks_id": "123-89", "prompt": "Create realistic studio photo with real people model standing and wearing this garment, in white studio, Keep original model if present, or generate appropriate model, Standing pose, facing camera.",
"prompt": "the best quality, masterpiece. detailed, high-res, simple background, studio photography, extremely detailed, updo, detailed face, face, close-up, HDR, UHD, 8K realistic, Highly detailed, simple background, Studio lighting", "image_path":"aida-results/result_38151e0a-f83b-11f0-89f6-0242ac130002.png",
"image_url": "aida-results/result_00097282-ebb2-11ee-a822-b48351119060.png", "infer_step":4,
"image_strength": 0.8, "tasks_id":"123456-123"
"product_type": "overall"
} }
```
""" """
try: try:
logger.info(f"generate_product_image request item is : @@@@@@:{json.dumps(request_item.dict(),indent=4)}") logger.info(f"img_to_product request item is : @@@@@@:{json.dumps(request_data.dict(), indent=4)}")
service = GenerateProductImage(request_item) data = requests.post(f"http://{settings.A6000_SERVICE_HOST}:10090/api/v1/to_product", json=request_data.dict())
background_tasks.add_task(service.get_result) logger.info(f"img_to_product response @@@@@@:{json.dumps(json.loads(data.content), indent=4)}")
return ResponseModel(data=json.loads(data.content))
except Exception as e: except Exception as e:
logger.warning(f"generate_product_image Run Exception @@@@@@:{e}") logger.warning(f"img_to_product Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel()
@router.get("/generate_product_image_cancel_cancel/{tasks_id}") '''product image 停用'''
def generate_product_image(tasks_id: str):
try:
logger.info(f"generate_product_image_cancel_cancel request item is : @@@@@@:{tasks_id}") # @router.post("/generate_product_image")
data = generate_product_image_cancel(tasks_id) # def generate_product_image(request_item: GenerateProductImageModel, background_tasks: BackgroundTasks):
logger.info(f"generate_product_image_cancel_cancel response @@@@@@:{data}") # """
except Exception as e: # 创建一个具有以下参数的请求体:
logger.warning(f"generate_product_image_cancel_cancel Run Exception @@@@@@:{e}") # - **tasks_id**: 任务id 用于取消生成任务和获取生成结果
raise HTTPException(status_code=404, detail=str(e)) # - **prompt**: 想要生成图片的描述词
return ResponseModel(data=data['data']) # - **image_url**: 被生成图片的S3或minio url地址
# - **image_strength**: 生成强度,越低越接近原图
# - **product_type**: 输入single item 还是 overall item
#
#
# 示例参数:
# {
# "tasks_id": "123-89",
# "prompt": "the best quality, masterpiece. detailed, high-res, simple background, studio photography, extremely detailed, updo, detailed face, face, close-up, HDR, UHD, 8K realistic, Highly detailed, simple background, Studio lighting",
# "image_url": "aida-results/result_00097282-ebb2-11ee-a822-b48351119060.png",
# "image_strength": 0.8,
# "product_type": "overall"
# }
# """
# try:
# logger.info(f"generate_product_image request item is : @@@@@@:{json.dumps(request_item.dict(), indent=4)}")
# 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 @@@@@@:{data}")
# 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 停用''' '''relight image 停用'''

View File

@@ -32,6 +32,13 @@ class GenerateProductImageModel(BaseModel):
product_type: str product_type: str
class Flux2ToProductImgModel(BaseModel):
tasks_id: str
prompt: str
image_url: str
image_strength: int
class GenerateRelightImageModel(BaseModel): class GenerateRelightImageModel(BaseModel):
tasks_id: str tasks_id: str
prompt: str prompt: str