feat 新增接口描述 docs页面 ,新增S3 图片get upload 操作,整理代码

fix
This commit is contained in:
zhouchengrong
2024-06-25 16:58:17 +08:00
parent 558d86b312
commit db3d86204f
17 changed files with 1087 additions and 996 deletions

View File

@@ -1,5 +1,6 @@
import json
import logging
from fastapi import APIRouter, HTTPException
from app.core.config import DEBUG
@@ -16,6 +17,22 @@ logger = logging.getLogger()
# 属性识别
@router.post("/attribute_recognition", response_model=ResponseModel)
def attribute_recognition(request_item: list[AttributeRecognitionModel]):
"""
获取sketch的属性collar sleeve_length 等等
创建一个具有以下参数的请求体:
- **category**: sketch的类别 Dress
- **colony**: 服装类别,男装或女装
- **sketch_img_url**: 被提取属性的S3或minio url地址
示例参数:
[
{
"category": "Dress",
"colony": "Female",
"sketch_img_url": "aida-users/89/sketchboard/female/Dress/ae976103-d7ec-4eed-b5d1-3e5f04d8be26.jpg"
}
]
"""
try:
logger.info(f"attribute_recognition request item is : @@@@@@:{request_item}")
if DEBUG:
@@ -33,6 +50,20 @@ def attribute_recognition(request_item: list[AttributeRecognitionModel]):
# 类别识别
@router.post("/category_recognition")
def category_recognition(request_item: list[CategoryRecognitionModel]):
"""
获取sketch的类别dress blouse 等等
创建一个具有以下参数的请求体:
- **colony**: 服装类别male或Female
- **sketch_img_url**: 被提取sketch类别的S3或minio url地址
示例参数:
[
{
"colony": "Female",
"sketch_img_url": "aida-users/89/sketchboard/female/Dress/ae976103-d7ec-4eed-b5d1-3e5f04d8be26.jpg"
}
]
"""
try:
logger.info(f"category_recognition request item is : @@@@@@:{request_item}")
service = CategoryRecognition(request_data=request_item)

View File

@@ -1,6 +1,6 @@
import json
import logging
import time
from fastapi import APIRouter, HTTPException
from app.schemas.chat_robot import ChatRobotModel
@@ -13,6 +13,22 @@ logger = logging.getLogger()
@router.post("/chat_robot")
def chat_robot(request_data: ChatRobotModel):
"""
对话机器人
创建一个具有以下参数的请求体:
- **gender**: 服装类别
- **message**: 消息
- **session_id**: 会话id
- **user_id**: 用户id
示例参数:
{
"gender": "male",
"message": "你好",
"session_id": "string-89",
"user_id": 89
}
"""
try:
logger.info(f"chat_robot request item is : @@@@@@:{request_data}")
data = chat(post_data=request_data)

View File

@@ -15,6 +15,106 @@ logger = logging.getLogger()
@router.post("/design")
def design(request_data: DesignModel):
"""
创建一个具有以下参数的请求体:
示例参数:
{
"objects": [
{
"basic": {
"body_point_test": {
"waistband_right": [
336,
264
],
"hand_point_right": [
350,
303
],
"waistband_left": [
245,
274
],
"hand_point_left": [
219,
315
],
"shoulder_left": [
227,
155
],
"shoulder_right": [
338,
149
]
},
"layer_order": false,
"scale_bag": 0.7,
"scale_earrings": 0.16,
"self_template": true,
"single_overall": "overall",
"switch_category": ""
},
"items": [
{
"color": "229 214 200",
"icon": "none",
"image_id": 110205,
"offset": [
1,
1
],
"path": "aida-sys-image/images/female/trousers/0916000217.jpg",
"print": {
"IfSingle": false,
"print_path_list": []
},
"resize_scale": [
1.0,
1.0
],
"type": "Trousers"
},
{
"businessId": 493825,
"color": "209 125 29",
"elementId": 493825,
"icon": "none",
"image_id": 107101,
"offset": [
1,
1
],
"path": "aida-users/31/sketchboard/female/Blouse/de8f5656-d7ae-4642-bc90-f7f9d85da09b.jpg",
"print": {
"IfSingle": false,
"print_path_list": []
},
"resize_scale": [
1.0,
1.0
],
"type": "Blouse"
},
{
"body_path": "aida-users/31/models/female/845046c7-4f62-4f54-a4a9-c26d49c6969335b5b3a9-d335-4871-a46c-3cc3caf07da259629dfd1f1f555a2e2a9def7e719366.png",
"image_id": 82966,
"offset": [
1,
1
],
"resize_scale": [
1.0,
1.0
],
"type": "Body"
}
]
}
],
"process_id": "6878547032381675"
}
"""
try:
logger.info(f"design request item is : @@@@@@:{request_data.dict()}")
data = generate(request_data=request_data)
@@ -27,6 +127,16 @@ def design(request_data: DesignModel):
@router.post('/get_progress')
def get_progress(request_data: DesignProgressModel):
"""
获取design 进度
创建一个具有以下参数的请求体:
- **process_id**: 进度id
示例参数:
{
"process_id": "6878547032381675"
}
"""
try:
logger.info(f"get_progress request item is : @@@@@@:{request_data.dict()}")
process_id = request_data.process_id
@@ -43,6 +153,16 @@ def get_progress(request_data: DesignProgressModel):
@router.post('/model_process')
def model_process(request_data: ModelProgressModel):
"""
获取模特图片预处理
创建一个具有以下参数的请求体:
- **model_path**: 模特图片的minio或s3 url地址
示例参数:
{
"model_path": "aida-users/10/models/female/9c788f5b-b8c7-424c-b149-025aeb0bda51model.jpg"
}
"""
try:
logger.info(f"model_process request item is : @@@@@@:{request_data.dict()}")

View File

@@ -1,6 +1,8 @@
import json
import logging
from fastapi import APIRouter, HTTPException
from app.schemas.pre_processing import DesignPreProcessingModel
from app.schemas.response_template import ResponseModel
from app.service.design_pre_processing.service import DesignPreprocessing
@@ -11,6 +13,22 @@ logger = logging.getLogger()
@router.post("/design_pre_processing")
def design_pre_processing(request_data: DesignPreProcessingModel):
"""
design 预处理 获取sketch的基本信息
创建一个具有以下参数的请求体:
- **sketches**: sketch url等信息
示例参数:
{
"sketches": [
{
"image_category": "dress",
"image_id": "107903",
"image_url": "aida-sys-image/images/female/dress/0628000000.jpg"
}
]
}
"""
try:
logger.info(f"design_pre_processing request item is : @@@@@@:{request_data}")
server = DesignPreprocessing()

View File

@@ -18,6 +18,25 @@ logger = logging.getLogger()
@router.post("/generate_image")
def generate_image(request_item: GenerateImageModel, background_tasks: BackgroundTasks):
"""
创建一个具有以下参数的请求体:
- **tasks_id**: 任务id 用于取消生成任务和获取生成结果
- **prompt**: 想要生成图片的描述词
- **image_url**: 图生图的输入minio或S3 url 地址
- **mode**: 生成模式img2img或者txt2img
- **category**: 生成图片的类别sketch print 等等
- **gender**: 生成sketch专用服装类别
示例参数:
{
"tasks_id": "123-89",
"prompt": "skeleton sitting by the side of a river looking soulful, concert poster, 4k, artistic",
"image_url": "aida-collection-element/87/Printboard/842c09cf-7297-42d9-9e6e-9c17d4a13cb5.jpg",
"mode": "img2img",
"category": "sketch",
"gender": "male"
}
"""
try:
logger.info(f"generate_image request item is : @@@@@@:{request_item}")
service = GenerateImage(request_item)
@@ -45,6 +64,19 @@ def generate_image(tasks_id: str):
@router.post("/generate_single_logo")
def generate_single_logo(request_item: GenerateSingleLogoImageModel, background_tasks: BackgroundTasks):
"""
创建一个具有以下参数的请求体:
- **tasks_id**: 任务id 用于取消生成任务和获取生成结果
- **prompt**: 想要生成图片的描述词
- **seed**: 固定的prompt和固定的seed 每次的生成结果都是一样的
示例参数:
{
"tasks_id": "123-89",
"prompt": "an apple",
"seed": "2"
}
"""
try:
logger.info(f"generate_single_logo request item is : @@@@@@:{request_item}")
service = GenerateSingleLogoImage(request_item)
@@ -72,6 +104,19 @@ def generate_single_logo_image(tasks_id: str):
@router.post("/generate_product_image")
def generate_product_image(request_item: GenerateProductImageModel, background_tasks: BackgroundTasks):
"""
创建一个具有以下参数的请求体:
- **tasks_id**: 任务id 用于取消生成任务和获取生成结果
- **prompt**: 想要生成图片的描述词
- **image_url**: 被生成图片的S3或minio url地址
示例参数:
{
"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"
}
"""
try:
logger.info(f"generate_product_image request item is : @@@@@@:{request_item}")
service = GenerateProductImage(request_item)
@@ -99,6 +144,19 @@ def generate_product_image(tasks_id: str):
@router.post("/generate_relight_image")
def generate_relight_image(request_item: GenerateProductImageModel, background_tasks: BackgroundTasks):
"""
创建一个具有以下参数的请求体:
- **tasks_id**: 任务id 用于取消生成任务和获取生成结果
- **prompt**: 想要生成图片的描述词
- **image_url**: 被生成图片的S3或minio url地址
示例参数:
{
"tasks_id": "123-89",
"prompt": "beautiful woman, detailed face, sunshine, outdoor, warm atmosphere",
"image_url": "aida-sys-image/images/female/blouse/0628000098.jpg"
}
"""
try:
logger.info(f"generate_relight_image request item is : @@@@@@:{request_item}")
service = GenerateRelightImage(request_item)

View File

@@ -14,6 +14,16 @@ logger = logging.getLogger()
@router.post("/translateToEN")
def prompt_generation(request_data: PromptGenerationImageModel):
"""
翻译prompt接口
创建一个具有以下参数的请求体:
- **text**: 待翻译语句
示例参数:
{
"text": "你好"
}
"""
try:
logger.info(f"prompt_generation request item is : @@@@@@:{request_data}")
data = translate_to_en(request_data.text)

View File

@@ -13,6 +13,19 @@ logger = logging.getLogger()
@router.post("/super_resolution")
def super_resolution(request_item: SuperResolutionModel, background_tasks: BackgroundTasks):
"""
创建一个具有以下参数的请求体:
- **sr_image_url**: 超分图片的minio或s3 url地址
- **sr_xn**: 超分的倍数只接受2或4
- **sr_tasks_id**: 任务id 用于取消超分任务和获取超分结果
示例参数:
{
"sr_image_url": "aida-sys-image/images/female/blouse/0628000098.jpg",
"sr_xn": 2,
"sr_tasks_id": "12341556-89"
}
"""
try:
logger.info(f"super_resolution request item is : @@@@@@:{request_item}")
service = SuperResolution(request_item)