diff --git a/apps/rmbg/service.py b/apps/rmbg/service.py index 4e69f68..e5b2c56 100644 --- a/apps/rmbg/service.py +++ b/apps/rmbg/service.py @@ -391,15 +391,13 @@ class RmbgService: self.executor, lambda: Image.open(image_path).convert("RGB") ) - image_no_bg = await self.process_image(image) + result = await self.process_image(image) + if isinstance(result, dict): + return result image_url = await loop.run_in_executor( - self.executor, self.save_image_to_file, image_no_bg + self.executor, self.save_image_to_file, result ) - - return { - "status": "success", - "image_url": image_url - } + return {"status": "success", "image_url": image_url} finally: if temp_file and os.path.exists(temp_file): @@ -424,15 +422,13 @@ class RmbgService: self.executor, lambda: Image.open(io.BytesIO(file_content)).convert("RGB") ) - image_no_bg = await self.process_image(image) + result = await self.process_image(image) + if isinstance(result, dict): + return result image_url = await loop.run_in_executor( - self.executor, self.save_image_to_file, image_no_bg + self.executor, self.save_image_to_file, result ) - - return { - "status": "success", - "image_url": image_url - } + return {"status": "success", "image_url": image_url} except Exception as e: raise Exception(f"处理图片失败: {e}") @@ -665,10 +661,13 @@ class RmbgService: # 降级到单张处理 for image, image_size, index, url_str, _ in valid_items: try: - processed_image = await self.process_image(image) - image_url = await loop.run_in_executor( - self.executor, self.save_image_to_file, processed_image - ) + result_data = await self.process_image(image) + if isinstance(result_data, dict): + image_url = result_data["image_url"] + else: + image_url = await loop.run_in_executor( + self.executor, self.save_image_to_file, result_data + ) completed_order += 1 success_count += 1 result = {