feat 新增 生成sketch时对图片清理背景,剔除带有污点的结果图
This commit is contained in:
@@ -75,26 +75,28 @@ class GenerateImage:
|
||||
self.generate_data['data'] = str(error)
|
||||
self.redis_client.set(self.tasks_id, json.dumps(self.generate_data))
|
||||
else:
|
||||
logger.info(1111111111111111111111111111)
|
||||
image_result = result.as_numpy("generated_image")[0]
|
||||
is_smudge = True
|
||||
if self.category == "sketch":
|
||||
# 去背景
|
||||
remove_bg_image = remove_background(np.asarray(image_result))
|
||||
# 污点检测
|
||||
is_smudge, not_smudge_image = stain_detection(remove_bg_image)
|
||||
if is_smudge: # 无污点
|
||||
image_result = not_smudge_image
|
||||
image_url = upload_png_sd(image_result, user_id=self.user_id, category=f"{self.category}", object_name=f"{self.tasks_id}.png")
|
||||
logger.info(f"upload image SUCCESS : {image_url}")
|
||||
self.generate_data['status'] = "SUCCESS"
|
||||
self.generate_data['message'] = "success"
|
||||
self.generate_data['data'] = str(image_url)
|
||||
self.redis_client.set(self.tasks_id, json.dumps(self.generate_data))
|
||||
else: # 有污点
|
||||
self.generate_data['status'] = "SUCCESS"
|
||||
self.generate_data['message'] = "success"
|
||||
self.generate_data['data'] = str(GI_SYS_IMAGE_URL)
|
||||
self.redis_client.set(self.tasks_id, json.dumps(self.generate_data))
|
||||
logger.info(f"stain_detection result : {self.generate_data}")
|
||||
image_result = not_smudge_image
|
||||
if is_smudge: # 无污点
|
||||
image_url = upload_png_sd(image_result, user_id=self.user_id, category=f"{self.category}", object_name=f"{self.tasks_id}.png")
|
||||
logger.info(f"upload image SUCCESS : {image_url}")
|
||||
self.generate_data['status'] = "SUCCESS"
|
||||
self.generate_data['message'] = "success"
|
||||
self.generate_data['data'] = str(image_url)
|
||||
self.redis_client.set(self.tasks_id, json.dumps(self.generate_data))
|
||||
else: # 有污点
|
||||
self.generate_data['status'] = "SUCCESS"
|
||||
self.generate_data['message'] = "success"
|
||||
self.generate_data['data'] = str(GI_SYS_IMAGE_URL)
|
||||
self.redis_client.set(self.tasks_id, json.dumps(self.generate_data))
|
||||
logger.info(f"stain_detection result : {self.generate_data}")
|
||||
|
||||
def read_tasks_status(self):
|
||||
status_data = self.redis_client.get(self.tasks_id)
|
||||
@@ -131,6 +133,7 @@ class GenerateImage:
|
||||
generate_data = None
|
||||
while time_out > 0:
|
||||
generate_data, _ = self.read_tasks_status()
|
||||
logger.info(generate_data)
|
||||
if generate_data['status'] in ["REVOKED", "FAILURE"]:
|
||||
ctx.cancel()
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user