feat: 新增to product img flux2 版,停用sdxl版
All checks were successful
git commit AiDA python develop 分支构建部署 / scheduled_deploy (push) Has been skipped
All checks were successful
git commit AiDA python develop 分支构建部署 / scheduled_deploy (push) Has been skipped
fix:
This commit is contained in:
@@ -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 停用'''
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user