Преглед изворни кода

```
refactor(api): 移除废弃的场景图处理和模特图生成逻辑

移除了不再使用的场景图处理代码块,包括图像粘贴、产品场景生成相关功能,
以及废弃的同步模型生成逻辑和_process_single_model_item函数。

这些代码已被新的处理流程替代,清理后使代码更加简洁和易于维护。
```

rambo пре 1 месец
родитељ
комит
753cd179ed
1 измењених фајлова са 0 додато и 78 уклоњено
  1. 0 78
      python/api.py

+ 0 - 78
python/api.py

@@ -681,24 +681,9 @@ async def _process_scene_images(aigc_clazz, run_main, return_data_check_before_d
                             msg_type="scene_progress",
                             progress=product_scene_progress
                         )
-                    aigc_clazz.center_paste_image(ceshi_image_path, save_image_path)
-                    image_path = aigc_clazz.generateProductScene(
-                        save_image_path, product_scene_prompt, save_image_path
-                    )
-                    goods_art_dict_info_item["场景图"] = image_path
-                    new_goods_dict[goods_art_no_info]["货号资料"][idx_key] = goods_art_dict_info_item
-                    product_scene_progress["folder"] = save_image_path.replace("场景图.jpg", "")
-                    await sendAsyncMessage(
-                        msg="场景图处理完成",
-                        goods_arts=[goods_art_no],
-                        status="场景图处理完成",
-                        msg_type="scene_progress",
-                        progress=product_scene_progress
-                    )
                 else:
                     goods_art_dict_info_item["场景图"] = ""
                     new_goods_dict[goods_art_no_info]["货号资料"][idx_key] = goods_art_dict_info_item
-                    print("场景图处理异常",e)
                     os.remove(save_image_path)
                     # product_scene_finish_progress -= 1
                     product_scene_error_progress += 1
@@ -740,70 +725,7 @@ async def _process_scene_images(aigc_clazz, run_main, return_data_check_before_d
         return_data_check_before_detail["data"]["goods_no_dict"] = new_goods_dict
         
     return return_data_check_before_detail
-def _sync_model_gen_logic(aigc_clazz, goods_art_dict_info_item, man_id, women_id, save_root_path):
-    """纯同步逻辑,用于在线程池中执行"""
-    ceshi_image_path = goods_art_dict_info_item.get("pics").get("侧视-抠图")
-    save_image_path = f"{save_root_path}模特图.jpg"
-    
-    if os.path.isfile(save_image_path):
-        return {"success": True, "path": save_image_path}
-        
-    try:
-        shutil.copy(ceshi_image_path, save_image_path)
-        # 假设性别信息在货号资料里,或者需要从外部传入。这里参考原代码逻辑:
-        # 原代码: gender = goods_art_dict_info.get("性别","女") -> 这里的 goods_art_dict_info 是款号级别的
-        # 为了在线程池中运行,我们需要把 model_id 算好传进来,或者把整个款号信息传进来
-        # 这里简化处理,假设我们只处理生成步骤,model_id 由调用方决定
-        
-        # 由于线程池函数无法轻松访问闭包变量,最稳妥的方式是将所有依赖项作为参数传入
-        # 但为了保持代码简洁,我们直接在主异步函数中计算 model_id,然后传给一个只负责“复制+生成”的同步函数
-        
-        # 重新设计:
-        gender = "女" # 默认,实际应从数据源获取
-        # 由于 _process_single_model_item 签名限制,我们直接在下面主函数中内联线程池调用更清晰
-        
-        image_path = aigc_clazz.generateUpperShoes(save_image_path, man_id if "男" in gender else women_id, save_image_path)
-        return {"success": True, "path": image_path}
-    except Exception as e:
-        if os.path.exists(save_image_path):
-            try: os.remove(save_image_path)
-            except: pass
-        return {"success": False, "error": str(e)}
-async def _process_single_model_item(aigc_clazz, goods_art_dict_info_item, man_id, women_id, save_root_path):
-    """将单个货号的模特图生成逻辑提取出来,放在线程池中运行"""
-    def sync_generate():
-        ceshi_image_path = goods_art_dict_info_item.get("pics").get("侧视-抠图")
-        save_image_path = f"{save_root_path}模特图.jpg"
-        
-        # 如果已存在则直接返回
-        if os.path.isfile(save_image_path):
-            return {"success": True, "path": save_image_path}
-            
-        try:
-            # 同步文件复制
-            shutil.copy(ceshi_image_path, save_image_path)
-            
-            gender = goods_art_dict_info_item.get("性别", "女") # 注意:这里可能需要从外层传入性别,或者从 goods_art_dict_info 获取
-            # 修正:性别通常在 goods_art_dict_info (款号级别) 而不是货号级别,需根据实际数据结构调整
-            # 假设我们在外层已经确定了 model_id,这里只负责生成
-            # 为了简化,我们假设 model_id 已经由外层确定并传入,或者在这里重新判断
-            
-            # 注意:原代码中 gender 是从 goods_art_dict_info (款号信息) 获取的
-            # 这里我们需要确保能访问到正确的性别信息。
-            # 由于函数签名限制,建议在外层处理好 model_id 后传入
-            
-            # 这里暂时保留原逻辑的简化版,实际使用时请确保 model_id 正确传递
-            # 由于无法直接访问外层的 gender 变量,建议修改函数签名传入 model_id
-            raise Exception("请使用带 model_id 的版本") 
-        except Exception as e:
-            if os.path.exists(save_image_path):
-                try: os.remove(save_image_path)
-                except: pass
-            return {"success": False, "error": str(e)}
 
-    loop = asyncio.get_event_loop()
-    # 注意:由于需要访问 gender 来决定 model_id,建议重构为传入 model_id
-    return await loop.run_in_executor(None, lambda: _sync_model_gen_logic(aigc_clazz, goods_art_dict_info_item, man_id, women_id, save_root_path))
 async def _process_model_images(aigc_clazz, run_main, return_data_check_before_detail, upper_footer_params):
     """处理模特图生成"""
     # 参数验证