Return result code from sd node

This commit is contained in:
Song
2023-09-27 19:37:13 +08:00
parent 594901df90
commit babb0a7c71
6 changed files with 70 additions and 46 deletions
+23 -10
View File
@@ -9,7 +9,7 @@ import requests
from typing import Tuple
from pathlib import Path
from .compute_task import ComputeTask, ComputeTaskResult, ComputeTaskState, ComputeTaskType
from .compute_task import ComputeTask, ComputeTaskResult, ComputeTaskState, ComputeTaskType, ComputeTaskResultCode
from .compute_node import ComputeNode
from .storage import AIStorage, UserConfig
@@ -107,10 +107,19 @@ class Local_Stability_ComputeNode(ComputeNode):
def _run_task(self, task: ComputeTask):
task.state = ComputeTaskState.RUNNING
result = ComputeTaskResult()
result.result_code = ComputeTaskResultCode.ERROR
result.set_from_task(task)
model_name = task.params["model_name"]
prompt = task.params["prompt"]
negative_prompt = task.params["negative_prompt"]
if negative_prompt == None or negative_prompt == "":
negative_prompt = "sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, duplicate, mutated hands, mutated legs, (blurry:1.3), (bad anatomy:1.2), bad proportions, extra limbs, more than 2 nipples, extra legs, fused fingers, missing fingers, jpeg artifacts, signature, watermark, username, artist name, heterochromia, muscular legs, monochrome, grayscale, skin spots, acnes, skin blemishes, age spot, skin spots, acnes, logo, badhandv4, easynegative, cropped image, patreon,lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, ng_deepnegative_v1_75t, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry,(Tiptoe:1.3),looking at viewer, Twisted eyes"
logging.info(f"call local stability {model_name} prompts: {prompt}")
prompt += ",masterpiece, best quality:1.3"
logging.info(f"call local stability {model_name} prompts: {prompt}, nagative_prompt: {negative_prompt}")
if model_name is not None:
payload = {
@@ -123,12 +132,14 @@ class Local_Stability_ComputeNode(ComputeNode):
err_msg = f"Set local stability model failed. err:{err}"
logger.error(err_msg)
task.error_str = err_msg
return None
result.error_str = err_msg
return result
logging.info(f"set local stability model {model_name} success")
payload = {
"prompt": prompt,
"negative_prompt": negative_prompt,
"steps": 20
}
@@ -138,7 +149,8 @@ class Local_Stability_ComputeNode(ComputeNode):
err_msg = f"Failed. err:{err}"
logger.error(err_msg)
task.error_str = err_msg
return None
result.error_str = err_msg
return result
r = resp.json()
@@ -148,16 +160,17 @@ class Local_Stability_ComputeNode(ComputeNode):
file_name = os.path.join(self.output_dir, task.task_id + ".png")
image.save(file_name)
result = ComputeTaskResult()
result.set_from_task(task)
task.state = ComputeTaskState.DONE
result.result_code = ComputeTaskResultCode.OK
result.worker_id = self.node_id
result.result = {"file": file_name}
return result
task.error_str = "Unknown error!"
result.error_str = "Unknown error!"
task.state = ComputeTaskState.ERROR
return None
return result
def start(self):
if self.is_start:
@@ -170,9 +183,9 @@ class Local_Stability_ComputeNode(ComputeNode):
task = await self.task_queue.get()
logger.info(f"stability_node get task: {task.display()}")
result = self._run_task(task)
if result is not None:
task.state = ComputeTaskState.DONE
task.result = result
# if result is not None:
# task.state = ComputeTaskState.DONE
# task.result = result
asyncio.create_task(_run_task_loop())