feat(plugin): send live_status and elapsed_time
This commit is contained in:
parent
e87bb63c6f
commit
97096a9035
@ -55,6 +55,7 @@ class SimplePrompt(BaseModel):
|
|||||||
uploading_nodes: set = set()
|
uploading_nodes: set = set()
|
||||||
done: bool = False
|
done: bool = False
|
||||||
is_realtime: bool = False,
|
is_realtime: bool = False,
|
||||||
|
start_time: Optional[float] = None,
|
||||||
|
|
||||||
streaming_prompt_metadata: dict[str, StreamingPrompt] = {}
|
streaming_prompt_metadata: dict[str, StreamingPrompt] = {}
|
||||||
|
|
||||||
@ -500,11 +501,23 @@ async def send_json_override(self, event, data, sid=None):
|
|||||||
if event == 'execution_start':
|
if event == 'execution_start':
|
||||||
update_run(prompt_id, Status.RUNNING)
|
update_run(prompt_id, Status.RUNNING)
|
||||||
|
|
||||||
|
if prompt_id in prompt_metadata:
|
||||||
|
prompt_metadata[prompt_id].start_time = time.perf_counter()
|
||||||
|
|
||||||
# the last executing event is none, then the workflow is finished
|
# the last executing event is none, then the workflow is finished
|
||||||
if event == 'executing' and data.get('node') is None:
|
if event == 'executing' and data.get('node') is None:
|
||||||
mark_prompt_done(prompt_id=prompt_id)
|
mark_prompt_done(prompt_id=prompt_id)
|
||||||
if not have_pending_upload(prompt_id):
|
if not have_pending_upload(prompt_id):
|
||||||
update_run(prompt_id, Status.SUCCESS)
|
update_run(prompt_id, Status.SUCCESS)
|
||||||
|
if prompt_id in prompt_metadata:
|
||||||
|
current_time = time.perf_counter()
|
||||||
|
if prompt_metadata[prompt_id].start_time is not None:
|
||||||
|
elapsed_time = current_time - prompt_metadata[prompt_id].start_time
|
||||||
|
print(f"Elapsed time: {elapsed_time} seconds")
|
||||||
|
await send("elapsed_time", {
|
||||||
|
"prompt_id": prompt_id,
|
||||||
|
"elapsed_time": elapsed_time
|
||||||
|
}, sid=sid)
|
||||||
|
|
||||||
if event == 'executing' and data.get('node') is not None:
|
if event == 'executing' and data.get('node') is not None:
|
||||||
node = data.get('node')
|
node = data.get('node')
|
||||||
@ -522,6 +535,11 @@ async def send_json_override(self, event, data, sid=None):
|
|||||||
prompt_metadata[prompt_id].last_updated_node = node
|
prompt_metadata[prompt_id].last_updated_node = node
|
||||||
class_type = prompt_metadata[prompt_id].workflow_api[node]['class_type']
|
class_type = prompt_metadata[prompt_id].workflow_api[node]['class_type']
|
||||||
print("updating run live status", class_type)
|
print("updating run live status", class_type)
|
||||||
|
await send("live_status", {
|
||||||
|
"prompt_id": prompt_id,
|
||||||
|
"current_node": class_type,
|
||||||
|
"progress": calculated_progress,
|
||||||
|
}, sid=sid)
|
||||||
await update_run_live_status(prompt_id, "Executing " + class_type, calculated_progress)
|
await update_run_live_status(prompt_id, "Executing " + class_type, calculated_progress)
|
||||||
|
|
||||||
if event == 'execution_cached' and data.get('nodes') is not None:
|
if event == 'execution_cached' and data.get('nodes') is not None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user