fix(rmbg): 修复队列模式下process_image返回类型不一致问题
- 修复remove_background和remove_background_from_file方法中,队列模式返回dict但代码尝试调用save方法的问题 - 在调用处添加类型检查,兼容队列模式(返回dict)和非队列模式(返回Image) - 修复process_batch降级处理中的相同问题 修复前错误: 'dict' object has no attribute 'save'
This commit is contained in:
parent
409802d5d7
commit
46845e5f57
@ -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 = {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user