瀏覽代碼

模特图

rambo 3 月之前
父節點
當前提交
f467dc9f0c
共有 2 個文件被更改,包括 45 次插入5 次删除
  1. 1 1
      python/api.py
  2. 44 4
      python/service/online_request/module_online_data.py

+ 1 - 1
python/api.py

@@ -592,7 +592,7 @@ async def process_handle_detail(request: Request, params: HandlerDetail):
                     continue
                 shutil.copy(ceshi_image_path, save_image_path)
                 try:
-                    image_path = aigc_clazz.generateUpperShoes(
+                    image_path = aigc_clazz.generateModelFitting(
                         save_image_path, model_id, save_image_path
                     )
                     goods_art_dict_info["模特图"] = image_path

+ 44 - 4
python/service/online_request/module_online_data.py

@@ -54,7 +54,7 @@ class AIGCDataRequest(object):
         resultData = self.s.post(
             url, files={"file": open(local_path, "rb")}, headers=post_headers
         ).json()
-        
+
         return resultData["data"]["url"]
 
     def center_paste_image(
@@ -126,7 +126,7 @@ class AIGCDataRequest(object):
         """生成场景图"""
         url = settings.DOMAIN + "/api/ai_image/inspired/command_to_image"
         resultData = self.s.post(url, data=data, headers=self.post_headers).json()
-        
+
         code = resultData.get("code", 0)
         message = resultData.get("message", "")
         if code != 0:
@@ -144,7 +144,7 @@ class AIGCDataRequest(object):
         data = {"site": 1, "generate_ids": [id], "type": "aigc_pro"}
         resultData = self.s.post(url, json=data, headers=self.post_headers)
         resultData = resultData.json()
-        
+
         code = resultData.get("code", 0)
         message = resultData.get("message", "")
         if code != 0:
@@ -175,7 +175,7 @@ class AIGCDataRequest(object):
         """生成上脚图"""
         url = settings.DOMAIN + "/api/ai_image/main/upper_footer"
         resultData = self.s.post(url, data=data, headers=self.post_headers).json()
-        
+
         code = resultData.get("code", 0)
         message = resultData.get("message", "")
         if code != 0:
@@ -201,6 +201,46 @@ class AIGCDataRequest(object):
         print("上脚图save_image_path",result_image, save_image_path)
         return save_image_path
 
+    def generateModelFitting(self, local_path, model_id, save_path):
+        """生成上脚图"""
+        print("生成上脚图", local_path, model_id, save_path)
+        imageUrl = self.uploadImage(local_path)
+        data = {
+            "site": 1,
+            "scene_key": model_id,
+            "topsImg": imageUrl,
+            "generate_type": 1,
+            "face_type": 1,
+            "pname": "ModelFitting_clothing",
+        }
+        """生成上脚图"""
+        url = settings.DOMAIN + "/api/ai_image/clothing/model_fitting_vk"
+        resultData = self.s.post(url, data=data, headers=self.post_headers).json()
+
+        code = resultData.get("code", 0)
+        message = resultData.get("message", "")
+        if code != 0:
+            raise UnicornException(message)
+        generate_ids = resultData.get("data", None).get("generate_ids", [])
+        if len(generate_ids) == 0:
+            raise UnicornException("模特图生成失败")
+        generate_id = generate_ids[0]
+        search_times = 60
+        status = 0
+        result_image = None
+        while search_times > 0:
+            print(f"查询第{search_times}次")
+            status, result_image = self.searchProgress(generate_id)
+            if status in [-1, 2]:
+                break
+            time.sleep(1)
+            search_times -= 1
+        if not result_image:
+            raise UnicornException("模特图生成失败")
+        save_image_path = download_image_with_pil(result_image, save_path)
+        print("上脚图save_image_path", result_image, save_image_path)
+        return save_image_path
+
 
 class OnlineDataRequest(object):
     def __init__(self, token):